【发布时间】:2013-05-30 15:03:49
【问题描述】:
我有一个使用 EDSDK v2.13 的命令行应用程序。
但是,当我注册回调时,会出现一系列属性事件,然后什么都没有。
我已经修复了这样的循环:
while(!_kbhit())
{
EdsOpenSession(camera);
Sleep(10);
EdsCloseSession(camera);
}
这看起来非常笨拙。是 SDK 坏了,还是我遗漏了什么?
【问题讨论】:
我有一个使用 EDSDK v2.13 的命令行应用程序。
但是,当我注册回调时,会出现一系列属性事件,然后什么都没有。
我已经修复了这样的循环:
while(!_kbhit())
{
EdsOpenSession(camera);
Sleep(10);
EdsCloseSession(camera);
}
这看起来非常笨拙。是 SDK 坏了,还是我遗漏了什么?
【问题讨论】:
如果您在 Windows 上使用 EDSDK,您的主线程中必须有一个 Windows 消息循环,否则不会发生回调。 (这是因为 EDSDK 使用过时的 COM STA 线程模型,而不是真正的线程。)
【讨论】:
佳能 EDSDK 卡在 90 年代,使用起来很糟糕。而且玩了几天后,它似乎没有尼康那么复杂。
这些公司应该在他们所有的相机上实现一个基于 http 的 API,就像索尼正在做的那样。
【讨论】: