我的方案是将我的项目从 XE3 移植到 XE6。
当我将调用约定从 C 切换到 stdcall 时,我有这些未解决的外部变量。
从那里开始,UnicodeString()、~UnicodeString()(任何其他)变得无法解析。
我会比较 XE3 和 XE6 之间的 ustring.h。看起来那里有很多变化。
例如:UnicodeString 析构函数。
在 XE3 中,它被标记为:
__fastcall ~UnicodeString();
在 XE6 中,它被标记为:
~UnicodeString();
我将声明修改为:
__cdecl ~UnicodeString();
这更正了链接器错误。
这是正常的吗,是正确的纠正吗?
要获得问题:
- 创建一个新的 C++ 包;
- 创建一个从 TEdit 派生的新组件,并将其添加到包中。
- 构建和链接 => 一切正常;
- 而不是去项目选项,并将调用约定切换到stdcall;
- 构建和链接 => 未解决的外部发生;
提前感谢您的回答。
N.福廷