【发布时间】:2016-05-06 09:56:31
【问题描述】:
我不能在 delphi 中使用 dll 的功能。我在类型转换方面遇到了一些问题。
这是我要调用 Delphi DLL 的函数:
function SyncFunc(var Type:string; var MaxUsers:integer; var ErrCode :Word):boolean;
C++ 代码:
unsigned char(WINAPI *SyncFunc)(PCHAR Type, INT *MaxUsers, WORD *ErrCode);
HMODULE hLib;
BOOL Res = FALSE;
WORD ErrCode = 0;
INT MaxUsers = 0;
CHAR Type[256];
hLib = LoadLibrary("delphi.dll");
Res = SyncFunc(Type, &MaxUsers, &ErrCode);
请有人帮忙。 附言类似的问题在这里C++ consuming delphi DLL(但我的函数使用字符串,而不是WideString)
【问题讨论】:
-
你能把字符串改成 pchar 吗?
-
您只能从使用构建 DLL 的相同版本的 Delphi 编译的代码中调用该函数。也有sharemem。在继续之前,您需要修复您的 DLL。您需要了解的是,本机字符串类型是 Delphi 特定的类型。使用 WideString 是解决问题的好方法。
-
我无法更改 dll(从以前的开发人员那里得到的,没有来源)