Разное поведение в dll при запуске хост-приложения из IDE Codeblocks

У меня есть интересная проблема, касающаяся камеры машинного зрения, DLL, хост-приложения и CodeBlocks.

У меня есть DLL, которая перечисляет камеры Matrix Vision и направляет вызовы от хост-приложения к любой камере, к которой обращается хост-приложение.

У меня есть камера bluefox-IGC, которую я буду называть камерой SD, и камера BlueFox3-1100C, которую я буду называть камерой HD.

В dll первое, что нужно сделать, это создать новый DeviceManager (класс Matrix-Vision) и спросить его, сколько устройств подключено:

FDeviceManager =new DeviceManager;

// Check to see if any devices are currently connected.
Count =FDeviceManager->deviceCount();
if ( Count == 0)
{
OutputDebugStr("WARNING: No cameras found by camera driver.");
return CAM_FAILURE;
}

Когда я запускаю хост-приложение из Windows File Manager, будут найдены как SD, так и HD камера. Если присутствует только 1 SD-камера, Count = 1. Если присутствует только 1 HD-камера, Count = 1. Если присутствует каждая из них, Count = 2. Нет проблем.

Однако, если я запускаю хост-приложение из IDE CodeBlocks, HD-камеры никогда не обнаруживаются. Итак, 1 SD Camera -> Count = 1. 1 HD Camera -> Count = 0. 1 SD + 1 HD -> Count = 1.

Я даже не уверен, в каком направлении смотреть здесь.

Поскольку среда IDE четко выполняет приложение хоста в пространстве памяти среды IDE, я мог видеть, что это проблема с CodeBlocks.

Кто-нибудь видел подобное несопоставимое поведение раньше?

Вот небольшая статистика:

  • ОС Windows 7 Pro 64-битная SP1
  • Хост-приложение является 32-битным, скомпилировано с TDM-GCC-32
  • dll 32-битный, скомпилированный с TDM-GCC-32

Если вам нужна дополнительная информация, просто спросите.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]