如何通过LoadLibrary方法调用CH341DLL.dll?

我已经通过隐式调用dll方法通过了程序的调试. 现在想通过动态加载的方法调用dll. 但是不能打开设备, 请高手指点: 我用的代码如下: typedef HANDLE (WINAPI *DllFunction)(long iIndex ); hinstDLL=NULL; hinstDLL=LoadLibrary("CH341DLL.dll"); if (hinstDLL) { DllFunction CH341OpenDevice; CH341OpenDevice = (DllFunction)GetProcAddress (hinstDLL,"CH341OpenDevice"); if(CH341OpenDevice(mIndex) == INVALID_HANDLE_VALUE) { m_open = false; } else m_open = true;

} FreeLibrary(hinstDLL);

在VB中调用如下,可以参考下面代码在VC中调用

If LoadLibrary("CH341DLL.DLL") = Null Then ' 加载DLL失败,可能未安装到系统中 MsgBox "无法加载CH341的DLL" End If


最好查看一下LoadLibrary的返回值


LoadLibrary已经调用成功,dll加载成功, 但调用CH341OpenDevice(mIndex)时出错。


那可能在vc中需要把LIB添加到工程的链接库中


这样的话就变成了隐式调用了.不是动态价值dll.

请技术人员帮我解决这种问题. 谢谢!


你的代码基本是正确的,是可以用的. 你打开失败,有一个疑问,你代码中变量mIndex值是多少,如果你PC机中就一个CH375设备,mIndex=0. 另外,提醒一下,iIndex的类型应为ULONG.


请问CH341DLL.h在那找?


从网上下一个CH341DRV.Zip,这个包里有.


大家好,请问下我在调用CH341DLLA64.DLL时出现了问题,该如何解决?

代码如下:load CH341DLLA64.DLL

出现错误提示如下:cannot find symbol "Ch_Init"

请问我该怎么解决这个问题?


您好,请问您当前在什么系统下,使用什么语言来进行的调用?看起来好像是您系统那边缺失"Ch_init"符号。


系统是Win10,使用的是Tcl,不知如何解决这个问题


只有登录才能回复,可以选择微信账号登录