У меня есть интересная проблема, касающаяся камеры машинного зрения, 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.
Кто-нибудь видел подобное несопоставимое поведение раньше?
Вот небольшая статистика:
Если вам нужна дополнительная информация, просто спросите.
Задача ещё не решена.
Других решений пока нет …