- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
Nikon SDK 允许使用 C 编程语言通过 USB 从 PC 到相机的请求/响应系统。在两个单独的线程中创建两个相机对象时,不可能同时向两个单独的相机发送两个命令。一个摄像头将收到命令并发回响应,然后第二个摄像头将收到命令并发回响应。我认为这与 Nikon SDK 访问的 DLL 使用全局变量有关。 DLL 不是开源的,所以我无法更改或验证这一点。我确实制作了两个单独的 DLL 拷贝,每个线程都访问了一个单独的拷贝。是否可以同时发送两个命令并获得响应?
最佳答案
即使您制作了 DLL 的两个拷贝,它们都被加载到相同的地址空间/进程中,因此任何冲突仍然会重叠。
我首先要尝试的是两个单独的 EXE,每个都加载原始 DLL,以便它们在不同的进程中运行。如果这允许独立且同时控制两个摄像头,您只需要构建某种进程隔离系统:-)
我知道的唯一方法(这并不容易)是围绕 Nikon DLL 构建 COM 包装器并使用 IIS 将两个实例隔离到它们自己的进程中。一种更简单的方法可能是为每个摄像头构建您自己的“服务器”,在 EXE 进程中运行,并从第三个主进程向它发送消息(可能只是 Windows 消息)。
关于c++ - Nikon Camera SDK 不可重入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4349442/
我正在使用 Nikon Raw SDK,这可能是一个长篇大论,因为没有多少人使用它。但希望这里有一些一般性建议。 我已经编写了一个基于 SDK 示例的控制台应用程序,它读取 .Nef 文件,然后使用
Nikon SDK 允许使用 C 编程语言通过 USB 从 PC 到相机的请求/响应系统。在两个单独的线程中创建两个相机对象时,不可能同时向两个单独的相机发送两个命令。一个摄像头将收到命令并发回响应,
我正在使用 Nikon D5200 相机通过 Windows 应用程序拍摄照片。为此,我使用 Nikon SDK c# Wrapper。我已经用NIKON D5200 SDK 下载了MD3 文件Typ
我是一名优秀的程序员,十分优秀!