为什么同一个DLL中的函数,两种调用格式,一个调用 成功,另一个调用失败,而两个调用看不出什么差别。在线急等。

eisldkw 2020-08-08 10:39:36
函数的 声明

Public Declare Function Sms_Connection Lib "sms.dll" (ByVal CopyRight As String, ByVal Com_Port As Integer, ByVal Com_BaudRate As Integer, Mobile_Type As String, CopyRightToCOM As String) As Long


调用程序如下:

Dim TypeStr As String
Dim CopyRightToCOMStr As String
Dim CopyRightStr As String
CopyRightStr = "//上海迅赛信息技术有限公司,网址www.xunsai.com//"

TypeStr = " "
CopyRightToCOMStr = " "


dim Scom as integer
Scom = 14


If Sms_Connection(CopyRightStr, CInt(Port.Text), 9600, TypeStr, CopyRightToCOMStr) Then


If Sms_Connection(CopyRightStr, CInt(Scom), 9600, TypeStr, CopyRightToCOMStr) Then

为什么 同样的一个函数Sms_Connection调用 ,第一个调用格式成功执行,第二个调用格式调用 失败呢
...全文
108 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
三楼の郎 2020-08-10
不是,互联网网关直接把目的手机号和短信内容通过互联网提交给移动、联通,显示的号码通常是106、109开头的特殊号码,通过短信猫发的显示的是的手机号,你可以百度下“华兴软通”,若干年前我们用过他们的接口
回复
eisldkw 2020-08-10
引用 3 楼 三楼一郎 的回复:
显然你这个应该是一个串口短信猫的接口程序,我估计问题可能是Sms_Connection函数里面用完了串口没正确释放,导致你第二次调用的时候因串口被占用而失败,你可以把第一次调用的语句注释掉关机重启后再试试或者每次调用Sms_Connection函数后都重启一遍电脑,不客气的说做这些串口短信猫的厂家提供的接口程序十个有九个都是有问题的,好在AT指令集都通用所以最好还是自己写一个,或者放弃短信猫走互联网短信网关
非常感谢。互联网的短信网关是不是 也是用类似短信猫这样的设备来发短信的?
回复
三楼の郎 2020-08-09
显然你这个应该是一个串口短信猫的接口程序,我估计问题可能是Sms_Connection函数里面用完了串口没正确释放,导致你第二次调用的时候因串口被占用而失败,你可以把第一次调用的语句注释掉关机重启后再试试或者每次调用Sms_Connection函数后都重启一遍电脑,不客气的说做这些串口短信猫的厂家提供的接口程序十个有九个都是有问题的,好在AT指令集都通用所以最好还是自己写一个,或者放弃短信猫走互联网短信网关
回复
eisldkw 2020-08-08
引用 1 楼 X-i-n 的回复:
首先,Scom已经是integer了,再用CInt()是多此一举。当然这个和你的问题没关系。 其次,所谓的“调用失败”你没有给出任何描述,无从判断。 如果只从代码层面看,这两行没有区别。你可以debug里输出一下Scom和CInt(Port.Text)对比一下,看看值是不是一样。
非常感谢。返回失败,就是这个函数返回为false.
回复
X-i-n 2020-08-08
首先,Scom已经是integer了,再用CInt()是多此一举。当然这个和你的问题没关系。 其次,所谓的“调用失败”你没有给出任何描述,无从判断。 如果只从代码层面看,这两行没有区别。你可以debug里输出一下Scom和CInt(Port.Text)对比一下,看看值是不是一样。
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7453

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告