【发布时间】:2010-09-22 09:19:36
【问题描述】:
我有一个 Delphi 2007 程序,它调用一个 Delphi 2010 DLL。该程序很大,还没有移植到 2010 年,所以我现在无法更改。
我使用 SimpleShareMem Unit 传递字符串,但也尝试使用 borlndmm.dll 进行 ShareMem。
对于一个函数,我现在将一个字符串从 Delphi 2007 程序传递给 dll(因此是 AnsiString)。调试dll时,这个AnsiString看起来很正常,可以在监视列表中查看。但如果我做一个简单的思考,就像
AnAnsiString := PassedAnsiString;
变量 AnAnsistring 获取值 '???????'#0#0#0'???A',但 PassedAnsiString 在监视列表中仍然可读。还有一个字符串追加像
AnAnsiString := PassedAnsiString + NotPassedAnsiString;
使用'???????'#0#0#0'???A' 作为值。
问题出在哪里?它是 2007 2010 年的问题吗?如何解决? 感谢您的帮助。
【问题讨论】: