0

我们有很多已编译的 C++ 工具,包括一些静态链接的 C++ 库。我们扩展了一些库,当然还重新编译了它 -> 现在新的 dll 与旧的 C++ 工具不兼容!

错误:

TransceiveDataRaw@CCommonUtils@RegTestAPI@@QAEIPAEH0AAHPBD2@Z 在动态链接库 IFX_CC_RegTestBase.dll 中找不到

有没有办法在不重新编译我们的工具(有数百个工具)的情况下忽略这个名字的修改?

4

1 回答 1

0

可能不是。不同的 C++ 编译器(有时是同一编译器的不同版本)使用不同的名称修饰方案,在某种程度上这是一种安全机制。除了名称修改系统之外,还有给定编译器独有的运行时机制,这些机制也不兼容:例如,虚拟方法分派。这些不会链接的事实可能使您免于构建只会崩溃和烧毁的可执行文件。

于 2012-03-30T14:25:57.590 回答