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

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

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

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

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

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

1

Решение

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

2

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

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

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

0

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