gpt4 book ai didi

c++ - Nikon Camera SDK 不可重入

转载 作者:搜寻专家 更新时间:2023-10-31 00:21:38 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com