2016-04-10 14 views
0

Я пытаюсь запустить из примера ActiveMQ пример http://activemq.apache.org/cms/example.html в Windows с VS 2008 в 32-разрядном приложении консоли C++.Идет загрузка третьей части DLL с Unhandled Exception во время выполнения (Log4CXX, ActiveMQ)

Проект построен, но когда я запускаю программу, я получаю исключение.

Необработанное исключение при 0x768b3e28 в XXXXXX.exe: Microsoft 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

Вам ** do ** нужен как файл .lib, так и DLL-файл в месте, где программа может его найти. На Linux .so - это комбинация из них, но в Windows это отдельные файлы. –

+0

. Должен ли DLL для запуска программы? Будет ли VC не строить его вместе с моим проектом, о котором я говорю. – Bokhari

+0

Спасибо @BoPersson, это был действительно глупый вопрос. Я нашел dll, и приложение теперь должно работать. – Bokhari

ответ

0

Ошибка была просто потому, что программа DLL не была найдена программой. Мне просто пришлось поместить dll в папку системной библиотеки (C:/Windows/SysWoW64) для 32-разрядной dll на 64-разрядной машине.