1
我不能在delphi中使用dll的函數。我在轉換類型時遇到了一些問題。從C++傳遞var字符串到Delphi dll
這是我想打電話給德爾福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);
有人請幫助。 P.S.這裏類似的問題C++ consuming delphi DLL(但我的函數使用字符串,而不是WideString的)
你可以改變字符串爲pchar? – Passella
您只能從使用構建該DLL的相同版本的Delphi編譯的代碼中調用該函數。與sharemem也。在繼續之前,您需要修復您的DLL。你需要了解的是,本地字符串類型是一個Delphi特定類型。使用WideString是解決問題的好方法。 –
我無法更改dll(從以前的開發人員'按原樣'從源代碼中獲取此信息) –