gpt4 book ai didi

python - 将完整的 LPCSTR 从 python 文本传递到 c++ dll

转载 作者:太空狗 更新时间:2023-10-29 23:12:41 27 4
gpt4 key购买 nike

我有一个简单的 c++ dll,它调用 MessageBox 来显示文本

#include <Windows.h>

#define LIBDLL extern "C" __declspec(dllexport)

LIBDLL void Display(LPCTSTR lpInput) {
MessageBox(0, lpInput, 0, 0);
}

bool __stdcall DllMain(void* hModule, unsigned long dwReason, void* lpReserved) {
switch (dwReason)
{

case 1:
break;
case 0:
break;

case 2:
break;

case 3:
break;

}

return true;
}

而 Python 代码只是将一个字符串传递给 dll 中的 Display,它看起来像这样

import ctypes
sampledll = ctypes.WinDLL('SampleDll.dll')
sampledll.Display('Some Text')

它只显示第一个字母,即使我使用的是 std::cout

MessageBox output

如何让它显示我传递给它的所有文本?

最佳答案

终于解决了这个问题。事实证明,在将文本传递给 dll 之前,我必须对其进行编码。

所以不要这样做

sampledll.Display('Some Text')

应该是这样

sampledll.Display('Some Text'.encode('utf-8))

关于python - 将完整的 LPCSTR 从 python 文本传递到 c++ dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44253215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com