0

我有一个 Visual C++ 程序,它需要使用另一个程序来运行一些特定的功能来与我的 USB 设备进行通信。第二个程序由 USB Device 公司提供。

该公司还提供DLL和库来访问通信模块。

程序运行得很好。我可以很好地与 USB 设备通信。

问题是与USB设备的通信不是我的Visual C++程序的唯一功能,所以即使没有安装通信模块也应该可以打开程序。

使用RegOpenKeyEx方法,我成功检查了通信模块是否安装。因此,如果通信模块不可用,我可以避免调用函数来访问 USB 设备。

问题是我的程序仍然无法在没有通信模块的计算机中打开。我出现错误:“应用程序无法正确启动(0x000007b)。单击确定关闭应用程序。”

有可能解决我的问题吗?

4

1 回答 1

2

您需要动态加载它,而不是静态链接到 DLL。然后您可以根据是否已安装来选择是否加载它。是一篇展示如何执行此操作的文章,是一个 SO question,其中包含有关访问动态加载的 DLL 内容的更多详细信息。

于 2013-06-12T13:03:11.730 回答