gpt4 book ai didi

delphi - 强制转换 AnsiString (myPAnsiChar) 实际上有什么作用?

转载 作者:行者123 更新时间:2023-12-03 15:19:41 28 4
gpt4 key购买 nike

我有一个 C DLL,它返回一个指向由 C DLL 管理的 PAnsiChar 字符串的指针。我想复制该字符串,以便可以在 Delphi 端对其进行管理。

如果我将返回的 PAnsiChar 转换为 AnsiString,如“str := AnsiString (myPAnsiChar)”中所示,转换实际上会做什么?转换是否为 PAnsiChar 指向的字符串分配新内存,或者我应该首先复制来自 DLL 的字符串?

最佳答案

是的。编译器将转换转换为 RTL 例程调用,将字符串复制到新的 AnsiString 中。如果您在启用“调试 DCU”的情况下进行构建,则可以在调试器中跟踪它并查看其工作原理。例如:

var
fromTheDll: PAnsiChar;
localCopy: string;

localCopy := fromTheDll; //Delphi copies the string to fromTheDll variable

关于delphi - 强制转换 AnsiString (myPAnsiChar) 实际上有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8031083/

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