金笛工业手机论坛

金笛工业手机论坛 (http://bbs.sendsms.cn/)
-   短信开发资料 (http://bbs.sendsms.cn/f21/)
-   -   集成SmsCore.dll的C#应用程序在windows2008R2下启动异常 (http://bbs.sendsms.cn/t2294/)

Lvyou 2011-08-29 00:00

集成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)”试用版打开与读取短信猫又正常!

求解!

Lvyou 2011-08-29 10:57

哈哈哈哈~~~!!!搞定了,原来是项目属性里的目标平台设置的问题,目标平台不能选择any cpu或X64,而要选择X86,因为所引用的dll文件是32位的,这个是改变不了的,用any cpu或x64的方式编译,都会因为调用不了32位的dll而异常,而全部编译为32位的,反而是可以在64位系统兼容运行的!

Lvyou 2011-08-29 14:03

msc.ModemReceivedMsg += new _IModemServiceEvents_ModemReceivedMsgEventHandler(msc_ModemReceivedMsg);

msc.ModemReceivedCall += new _IModemServiceEvents_ModemReceivedCallEventHandler(msc_ModemReceivedCall);

sigh~还是有点问题,这两个加载的事件触发,其中来电事件正常,但来短信的事件有问题,触发不了,还导致短信猫设备丢失,要重新启动才能识别。不知这个问题又该如何解决?

Lvyou 2011-09-01 11:32

呃,木有人回复解答,我一怒之下,抛弃了金笛的这些dll文件,自己找资料直接重新写了个短信猫工具类,直接读写操作串口,彻底解决了问题了,效果好得很,完全不需要金笛的API dll了!

水哭了 2011-09-05 17:42

您好,dll不支持64位系统。如果有需要的话,加我QQ 1299332764


所有时间均为北京时间。现在的时间是 09:16

Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.