XE6 Ansi / Unicode-String链接器错误(未解析的外部)

时间:2014-05-09 14:42:25

标签: linker unicode-string ansistring c++builder-xe6

我的senario将我的项目从XE3移植到XE6。

当我将调用约定从C切换到stdcall时,我有这些未解决的extrenals。

从那里开始,UnicodeString(),~UnicodeString()(任何其他)变得无法解析。

我在XE3和XE6之间比较ustring.h。看起来有很多变化。

例如:UnicodeString析构函数。

在XE3中,它被标记为:

  __fastcall ~UnicodeString();

在XE6中,它被标记为:

  ~UnicodeString();

我修改了声明,是:

  __cdecl ~UnicodeString();

这会更正链接器错误。

这是正常的,这是正确的纠正措施吗?

要解决问题:

  • 创建一个新的C ++包;
  • 创建一个从TEdit派生的新组件,并将其添加到 包。
  • 构建和链接=>一切都好;
  • 而不是转到项目选项,并将调用约定切换为stdcall;
  • 构建和链接=>未解决的外部发生;

提前感谢您的回答。

<磷>氮。 Fortin的

1 个答案:

答案 0 :(得分:0)

您是否碰巧在XE6上使用32位XE3和64位?如果是这样,64位通常不支持多个调用约定,因此几乎所有内容都是cdecl。这是正常的