У меня проблемы с имён DLL с Delphi. Функция Delphi DLL объявляется как здесь:Передача PChar из Delphi DLL в C
function TEST() : PChar; cdecl;
begin
Result := '321 Test 123';
end;
В C++ я называю это так:
typedef char *TestFunc(void);
TestFunc* Function;
HINSTANCE hInstLibrary = LoadLibrary("Test.dll");
if (hInstLibrary)
{
Function = (TestFunc*)GetProcAddress(hInstLibrary, "TEST");
if (Function)
{
printf("%s", Function());
}
}
Проблема заключается в том, что я только получать первую букву строки. Как я могу сказать C++, что строка не заканчивается после первого символа?
Благодаря
Какая версия delphi? Вам нужно знать, имеет ли символ 1 или 2 байта. –
Или попробуйте использовать PAnsiChar. –
Я использую Delphi Xe2 – Henry