現在、Delphi DLL を動的にインポートする際に問題が発生しています。Delphi DLL 関数は次のように宣言されます。
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++ に伝えるにはどうすればよいですか?
ありがとう