1

我有 VS2010,我需要构建应用程序。我也有 .dll 与 .lib 和 .h 用 VS2005 构建。该库依赖于 log4cxx.dll(我构建了 2010 并下载了 2005 二进制文件)。当我调用返回对构建对象的引用的库接口方法时,它会抛出 AV 异常。我无法使用其他版本构建我的应用程序,并且我已经尝试更改为多线程调试我的应用程序类型。

4

1 回答 1

1

您获得的对象很可能具有另一种内存布局。如果您跨运行时边界传递 c++ 对象,您应该确保接收对象具有相同的布局。例如,如果 VS2005 编译器已对其字段重新排序以进行优化,而 VS2010 则以其他方式完成。或者您使用的类之一(例如 std::string)在版本之间发生了变化。阅读如何从 COM 方法返回对象。

一个运行时中的对象分配和另一个运行时中的释放也存在问题......

作为一种解决方案,您可以尝试安装 VS2005,但不能保证最终结果相同

于 2013-03-14T12:47:17.570 回答