MFC项目下,WCHBLEInit()初始化报错问题

你好,我在使用官方提供的WCHBLelib示例demo,可以正常运行。然后我用VS2019创建新的MFC项目,参考demo添加代码后也能正常运行。但是当我在一个已有的MFC项目里新增对话框,然后参考demo添加同样的代码,新增的对话框在初始化时调用WCHBLEInit()函数就会报错,报错如下图所示。不知道是哪里出了问题,是否有大佬指教?谢谢image.png

看起来是库没有加载成功,可以在程序里包含一下:

#include "WCHBLEDLL.h"
#pragma comment (lib,"WCHBLEDLL.lib")


还是不行,感觉库应该是加载成功了,因为Win10环境下,我注释掉初始化代码,程序依旧能正常执行,后面的蓝牙查询和连接设备,读取数据都能正常运行。

image.png

另外,我的这个MFC程序是用的VS2010开发的项目,最近升级到VS2019下的,不知道跟这个有没有关系。


您发送邮件至sry@wch.cn,这里我们的软件工程师会沟通解决一下。


好的,邮件已发,感谢指导!


邮件没有人回复啊 --


看了一下,邮件没有收到。解决方法:

  加try -catch把这个异常捕获了,不用管这个异常。原因是WCHBLEInit还是调用了类似AfxOleInit的函数,如果MFC在APP初始化时也调用了类似的函数,WCHBLEInit再调用这个函数时就会抛出异常。


好像确实是AfxOleInit()问题,我的MFC程序用了一些Active X控件,所以需要这个OLE初始化操作。我尝试按照您说的使用try catch语句来屏蔽这个WCHBLEIint()的报错,但是在try语句中无法捕获这个异常。还是会出现下图的报错。image.png

image.png


这里您留一个邮箱,我们提供一份新的库进行验证使用。


个人信息保护,已隐藏;多谢!!


已发送至邮箱,请查收。


非常感谢,新的库文件已经测试,已回复邮箱,但是不知道您这边收到没有。测试发现WCHBLEInit()函数能够正常运行,但是在尝试打开蓝牙设备时,卡死在g_devhandle = WCHBLEOpenDevice(g_blepath, FunDevConnChange);

似乎是回调函数FunDevConnChange没有执行。



相应的邮件已回复,请查收。


抱歉,邮箱没有查收到新邮件


邮件没有收到,有可能是被当做垃圾邮箱了。打开设备失败的问题,用WCHBLelib示例demo是否正常?


垃圾邮件里也没有,示例demo是正常的。感觉还是那个WCHBLEInit()初始化的问题。


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