Я пытаюсь запустить стандартный пример ActiveMQ http://activemq.apache.org/cms/example.html на Windows с VS 2008 в 32-битном консольном приложении C ++.
Проект построен, но когда я запускаю программу, я получаю исключение.
Необработанное исключение в 0x768b3e28 в XXXXXX.exe: Microsoft C ++ исключение: std :: length_error в ячейке памяти 0x0100f880 ..
Я получаю точно такое же исключение с теми же адресами памяти при попытке запустить отдельный проект и с другой сторонней DLL (log4CXX).
Настройки пути
Файл DLL находится в Windows / System32, а также в Windows / SysWOW64.
У меня есть путь к файлу заголовка, добавленный в Свойства конфигурации> C / C ++> Дополнительные каталоги включения.
В компоновщике> Ввод> Дополнительные зависимости у меня есть ws2_32.lib libapr-1.lib activemq-cpp.lib.
В компоновщике> Общие> Дополнительные каталоги библиотек я указал путь к папкам, в которых находятся файлы lib.
Путь к файлам lib и header включен, и я считаю, что поэтому нет никаких проблем при создании проекта.
Ошибка была просто потому, что dll не была найдена программой. Мне просто пришлось поместить dll в папку системной библиотеки (C: / Windows / SysWoW64) для 32-битной dll на 64-битной машине.
Других решений пока нет …