![]() |
集成SmsCore.dll的C#应用程序在windows2008R2下启动异常
hi,请教大家一个急待解决的问题:
我有个短信猫,是PL-2303的,通过这个页面:WAVECOM GSM GPRS CDMA MODEM 下载的“金笛短信开发控件(JindiSMSApi.DLL)”的dll文件,在VS.2008的C#语言开发平台里,添加引用SmsCore.dll,写了一个小应用程序,用于接收短信进行处理,在windows2003系统下运行很正常,但近期重新安装了系统为windows2008R2后,下载了支持64位的驱动安装,驱动正常,但应用程序就启动不了了,在下面这行代码出现异常: ModemServiceClass msc = new ModemServiceClass(); 具体的出错信息是: 检索 COM 类工厂中 CLSID 为 {E57BCAD3-7BBB-55B9-B6AA-CEC66BFB9077} 的组件时失败,原因是出现以下错误: 80040154 未处理 System.Runtime.InteropServices.COMException Message="检索 COM 类工厂中 CLSID 为 {E57BCAD3-7BBB-55B9-B6AA-CEC66BFB9077} 的组件时失败,原因是出现以下错误: 80040154。" Source="callnisms" ErrorCode=-2147221164 StackTrace: 在 callnisms.CallBacks..ctor() 在 callnisms.Program.Main() InnerException: 请问有什么方法解决这个问题呢?是该批dll文件本身就不支持64位系统吗? 但下载页面“http://www.sendsms.cn/soft14_DLL.htm”的金笛“金笛短信开发控件(JindiSMSApi.DLL)”试用版打开与读取短信猫又正常! 求解! |
哈哈哈哈~~~!!!搞定了,原来是项目属性里的目标平台设置的问题,目标平台不能选择any cpu或X64,而要选择X86,因为所引用的dll文件是32位的,这个是改变不了的,用any cpu或x64的方式编译,都会因为调用不了32位的dll而异常,而全部编译为32位的,反而是可以在64位系统兼容运行的!
|
msc.ModemReceivedMsg += new _IModemServiceEvents_ModemReceivedMsgEventHandler(msc_ModemReceivedMsg);
msc.ModemReceivedCall += new _IModemServiceEvents_ModemReceivedCallEventHandler(msc_ModemReceivedCall); sigh~还是有点问题,这两个加载的事件触发,其中来电事件正常,但来短信的事件有问题,触发不了,还导致短信猫设备丢失,要重新启动才能识别。不知这个问题又该如何解决? |
呃,木有人回复解答,我一怒之下,抛弃了金笛的这些dll文件,自己找资料直接重新写了个短信猫工具类,直接读写操作串口,彻底解决了问题了,效果好得很,完全不需要金笛的API dll了!
|
您好,dll不支持64位系统。如果有需要的话,加我QQ 1299332764
|
所有时间均为北京时间。现在的时间是 17:36。 |
Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.