0

我正在尝试在 32 位 C++ 控制台应用程序中使用 VS 2008 在 Windows 上运行开箱即用的 ActiveMQ 示例http://activemq.apache.org/cms/example.html 。

该项目已构建,但是当我运行该程序时,出现异常。

XXXXXX.exe 中 0x768b3e28 处的未处理异常:Microsoft C++ 异常:内存位置 0x0100f880 处的 std::length_error..

当尝试运行一个单独的项目和另一个 3rd 方 DLL (log4CXX) 时,我得到了完全相同的内存地址相同的异常。

路径设置

DLL 文件位于 Windows/System32 以及 Windows/SysWOW64 中。

我已将头文件路径添加到 Configuration Properties > C/C++ > Additional Include Directories。在链接器 > 输入 > 附加依赖项中,我有 ws2_32.lib libapr-1.lib activemq-cpp.lib。在链接器 > 常规 > 附加库目录中,我指定了存在 lib 文件的文件夹的路径。包含 lib 和头文件的路径,我相信这就是构建项目没有问题的原因。

4

1 回答 1

0

该错误仅仅是因为程序没有找到该dll。对于 64 位机器上的 32 位 dll,我只需将 dll 放在系统库文件夹 (C:/Windows/SysWoW64) 上。

于 2016-07-28T18:55:43.707 回答