有谁用过smspud.dll做过delphi开发? ( 积分: 175 )

  • 主题发起人 主题发起人 HLHGOD
  • 开始时间 开始时间
H

HLHGOD

Unregistered / Unconfirmed
GUEST, unregistred user!
小可正在学习如何通过GSM Modem发短信,但厂家提供的smspud.dll在delphi中调用老是出错,有对串口编程熟悉的大虾请指点一下。
procedure TForm1.Button1Click(Sender: TObject);
var
StrCenterNumber:PChar;
begin
getmem(StrCenterNumber,16);
if OpenComm(PChar('COM1'),CBR_9600,NOPARITY,8,ONESTOPBIT) then
begin
SetSendModule(0);
GetCenterNumber(StrCenterNumber);
try
// SetCenterNumber(StrCenterNumber);//这句一执行就出错
edit1.Text:=StrCenterNumber;//取不出短信中心的号
except
end;
end;
closeComm;
freeMem(StrcenterNumber);

end;
 
GetCenterNumber(StrCenterNumber);
与 SetCenterNumber(StrCenterNumber);'应该是一组吧'
get调用没问题,set也应该没问题的
const char * 用pchar应该是可以的
会不会是调用惯例的问题?
 
就是奇怪,GetCenterNumber(StrCenterNumber);就没问题,但一用SetCenterNumber(StrCenterNumber);就出现错误,我也没搞懂
 
function SetCenterNumber(count CenterNumber:PChar):boolean ;stdcall;external 'smspdu.dll';

这样试试看!
因为参数是只读的
 
我已经试了,还是不行
 
什么错误?
 
stdcall?
cedcall?
 
1、厂家提供的动态库一般都有VC的原型声明,把它贴出来看看
2、你说的出错是指什么?把StrCenterNumber显示出来看看,也许是参数不符合要求,
比如他要求是+8613012345678这样的,而你读进来却不是等等
 
自己从底层写起会更好一点,研究一下GSM的AT指令集。
 
【精华】 一些迅雷下载合集!
http://74.53.87.91/viewthread.php?tid=84105&fromuid=1211598
 
C++ 中 BOOL 不等同 Delphi 的 Boolean, 改用 BOOL 或 LoogBool
 
指针的问题,一般要考虑他的执行方法。。直接转换当然不行
 
getmem(StrCenterNumber,16);//是否足够大
 
GSM短信远程抄表系统管理端源代码(pc控制手机模块收发GSM短信)
http://www.pgz8.cn/Software/Catalog93/4151.html

串口操作等,都是自己写的代码.不用现成控件的.你可以下载来看看,还有实现了pc控制手机模块收发gsm短信,函数都是自己写的。线程方式操作,提高效率。

可能对你有帮助.
 

Similar threads

后退
顶部