gpt4 book ai didi

c++ - 如何将字符串从 DLL 返回到 Inno Setup?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:48 24 4
gpt4 key购买 nike

我需要向调用 Inno Setup 脚本返回一个字符串值。问题是我找不到管理分配内存的方法。如果我在 DLL 端进行分配,那么在脚本端就没有任何东西可以解除分配。我不能使用输出参数,因为 Pascal 脚本中也没有分配函数。我该怎么办?

最佳答案

下面是一个示例代码,说明如何分配从 DLL 返回的字符串:

[Code]
Function GetClassNameA(hWnd: Integer; lpClassName: PChar; nMaxCount: Integer): Integer;
External 'GetClassNameA@User32.dll StdCall';

function GetClassName(hWnd: Integer): string;
var
ClassName: String;
Ret: Integer;
begin
{ allocate enough memory (pascal script will deallocate the string) }
SetLength(ClassName, 256);
{ the DLL returns the number of characters copied to the buffer }
Ret := GetClassNameA(hWnd, PChar(ClassName), 256);
{ adjust new size }
Result := Copy(ClassName, 1 , Ret);
end;

关于c++ - 如何将字符串从 DLL 返回到 Inno Setup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9686455/

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