0

32 ビット C++ コンソール アプリケーションで VS 2008 を使用する Windowsで、すぐに使用できる ActiveMQ サンプルhttp://activemq.apache.org/cms/example.htmlを実行しようとしています。

プロジェクトはビルドされますが、プログラムを実行すると例外が発生します。

XXXXXX.exe の 0x768b3e28 で未処理の例外: Microsoft C++ 例外: メモリ位置 0x0100f880 での std::length_error..

別のプロジェクトを別のサードパーティ DLL (log4CXX) で実行しようとすると、同じメモリ アドレスでまったく同じ例外が発生します。

パス設定

DLL ファイルは Windows/System32 と Windows/SysWOW64 にあります。

[構成プロパティ] > [C/C++] > [追加のインクルード ディレクトリ] にヘッダー ファイルのパスを追加しました。リンカー > 入力 > 追加の依存関係で、ws2_32.lib libapr-1.lib activemq-cpp.lib を作成しました。リンカ > 一般 > 追加のライブラリ ディレクトリで、lib ファイルが存在するフォルダへのパスを指定しました。ライブラリとヘッダー ファイルへのパスが含まれているため、プロジェクトのビルドに問題はないと思います。

4

1 に答える 1

0

このエラーは、プログラムが dll を見つけられなかったためです。64 ビット マシン上の 32 ビット dll のシステム ライブラリ フォルダー (C:/Windows/SysWoW64) に dll を配置するだけで済みました。

于 2016-07-28T18:55:43.707 に答える