2016-04-10 68 views
0

我试图在Windows上使用VS 2008在32位C++控制台应用程序中运行开箱即用的ActiveMQ示例http://activemq.apache.org/cms/example.html加载第三方DLL在运行时出现未处理异常(Log4CXX,ActiveMQ)

该项目已建成,但是当我运行该程序时,我收到异常。

在0x768b3e28在XXXXXX.exe

未处理的异常:微软C++异常:性病:: length_error内存位置0x0100f880 ..

试图运行时,我得到正好与相同的内存地址相同的异常一个单独的项目和另一个第三方DLL(log4CXX)。

路径设置

的DLL文件是Windows/System32下,以及在Windows/SysWOW64中。

我已经将头文件路径添加到配置属性> C/C++>其他包含目录。 在链接器>输入>附加依赖关系中,我有ws2_32.lib libapr-1.lib activemq-cpp.lib。 在链接器>常规>附加库目录中,我指定了存在lib文件的文件夹的路径。 包含lib和头文件的路径,我相信这就是为什么在构建项目时没有问题。

+1

您**需要**需要.lib文件和.dll文件,在程序可以找到它的地方。在Linux上,.so是这些的组合,但在Windows中它们是单独的文件。 –

+0

因此,运行程序必须具有哪些DLL? VC会不会与我指的项目一起构建它。 – Bokhari

+0

谢谢@BoPersson,这真是一个愚蠢的问题。我发现DLL和应用程序现在应该工作。 – Bokhari

回答

0

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

相关问题