Обратные вызовы EDSDK не работают

У меня есть работающее приложение командной строки, использующее EDSDK v2.13.

Однако, когда я регистрирую обратные вызовы, происходит всплеск событий свойств, а затем ничего.

Я исправил эту петлю следующим образом:

while(!_kbhit())
{
  EdsOpenSession(camera);
  Sleep(10);
  EdsCloseSession(camera);
}

Это кажется ужасно глупым. SDK сломан или я что-то упустил?


person ahnkle    schedule 30.05.2013    source источник


Ответы (2)


Если вы используете EDSDK в Windows, у вас должен быть цикл обработки сообщений Windows в основном потоке, иначе обратные вызовы не будут выполняться. (Это связано с тем, что EDSDK использует устаревшую модель потоковой передачи COM STA вместо реальных потоков.)

person Seth    schedule 04.09.2013

Canons EDSDK застрял в 90-х, ужасно использовать. И после нескольких дней игры с ним он кажется гораздо менее сложным, чем Никоны.

Эти компании должны внедрить API на основе http на всех своих камерах, как это делает Sony.

person mms    schedule 27.02.2015