易语言调用DLL执行子程序后就会自动关闭是怎么回事?求高人

调用的DLL,调用不会出现关闭,但调用完后如果读变量里的内容就会关闭,想了好久都没解决,求高手出来指导下。万分感谢。... 调用的DLL,调用不会出现关闭,但调用完后如果读变量里的内容就会关闭,想了好久都没解决,求高手出来指导下。万分感谢。 展开
 我来答
咝哥
2015-04-14 · 超过67用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:148万
展开全部
既然是读变量的话然后程序就自动关闭了,有可能是引用内存错误,你先去看看这个变量是指针变量还是数值变量.. 追问: 我改怎么看?拜托大侠指点迷津。 回答: 去看看DLL调用命令,要不你就说说你调用的是哪一个函数吧.. 追问: 这是开发文档我不知道我哪里写错了。 短信动态库说明 1对外接口函数说明 一,启动服务 int _stdcall SMSStartService(int nPort,DWORD BaudRate = 57600, int Parity=2, int DataBits = 8,int StopBits=0,int FlowControl=0,char* csca="card") 参数:nPort 串口号 如1 则表示COM1 BaudRate 拨特率 115200 Parity 校验位 2 DataBits 数据位 8 StopBits停止位 0 FlowControl 流控制 0 Csca 短信中心号码,可以使用默认值,若设置则格式如:” +8613800591500” 返回值:1成功,0失败 二, 发送短消息 DWORD _stdcall SMSSendMessage(char* Msg,char* PhoneNo) 参数:Msg消息内容,如果为中文则一条最多70个字,多于70个字分多条短信发送 如果全为英文则一条最多为140个字符,多余于140则分多条发送 PhoneNo 目标号码 格式如“13800591500” 返回值无意义,查询短信成功与否请调用函数四 三, 接收短消息 int _stdcall SMSGetNextMessage(SMSMessageStruct* Msg) 结构体类如下 typedef struct _sms_msg_t_ { char Msg[256]; //短信内容 char PhoneNo[32]; //对方手机号码 char ReceTime[32]; //接收时间 } SMSMessageStruct; 参数Msg读取的短消息 返回1有短信 0无 四, 查询发送状态报告 int _stdcall SMSReport(SMSReportStruct* rept) 五, 停止服务 int _stdcall SMSStopSerice() 六, 最近一次错误 int _stdcall SMSGetLastError(char* err) 参数err为错误内容 返回错误长度 2调用方法以及用例 2.1.1 声明 //消息结构体 类型声明 typedef struct _sms_msg_t_ { char Msg[256]; //短信内容 char PhoneNo[32]; //对方手机号码 char ReceTime[32]; //接收时间 } SMSMessageStruct; //消息状态报告结构体 类型声明 typedef struct _sms_report_t_ { DWORD index; //短消息编号:index,从0开始递增 char Msg[256]; //短信内容 int Success; //是否发送成功 0为失败,非0为成功 char PhoneNo[32]; //目标手机号码 } SMSReportStruct; //启动服务函数类型说明 typedef int (_stdcall *pSMSStartServiceFun)(int nPort,DWORD BaudRate = 57600, int Parity=2, int DataBits = 8,int StopBits=0,int FlowControl=0,char* csca="card"); //读取短信函数类型说明 typedef int (_stdcall *pSMSGetNextMessageFun)(SMSMessageStruct* Msg); //发送消息类型说明 typedef DWORD (_stdcall *pSMSSendMessageFun)(char* Msg,char* PhoneNo); //读取状态报告类型说明 typedef int (_stdcall *pSMSReportFun)(SMSReportStruct* rept); //停止服务函数类型说明 typedef int (_stdcall *pSMSStopSericeFun)(); 2.1.2调用过程 HINSTANCE hDll = LoadLibrary("MC8331AT.dll"); //调用程序目录下须要有此动态库文件 pSMSSendMessageFun SMSSendMessageFun; //函数定义 SMSSendMessageFun = (pSMSSendMessageFun)GetProcAddress(hDll, "SMSSendMessage"); //获取函数指针 If(SMSSendMessageFun != NULL) SMSSendMessageFun(“短信内容”, “手机号码”); //发送短信 FreeLibrary(hDll); //释放动态库 3备注 1, SMSStartService 和SMSStopSerice 应该配对出现,在程序退出之前一定要释放资源 2, SMSGetNextMessage 这个需要一个定时器和线程来管理。如果短信多了而不调用此函数,新的短信会覆盖以前的未读取短信 回答: 能不能留个联系方式,这样方便点.. 追问: 下面是我写的代码,请高人帮我看看。 .版本 2 .支持库 spec .程序集 窗口程序集1 .程序集变量 ID, 整数型 .子程序 _按钮1_被单击 .判断开始 (启动服务 (2, 115200, 2, 8, 0, 0, “+8613800898500”) = 1) 信息框 (“启动成功”, 0, ) 时钟1.时钟周期 = 100 按钮1.禁止 =真 按钮2.禁止 =假 .默认 信息框 (“启动失败”, 0, ) 时钟1.时钟周期 = 0 按钮1.禁止 =假 按钮2.禁止 =真 .判断结束 .子程序 _按钮2_被单击 .判断开始 (停止服务 () = 1) 信息框 (“关闭成功”, 0, ) 按钮1.禁止 =假 按钮2.禁止 =真 .默认 信息框 (“关闭失败”, 0, ) 按钮1.禁止 =真 按钮2.禁止 =假 .判断结束 .子程序 _按钮3_被单击 ID = 发送短消息 (编辑框1.内容, 编辑框2.内容) .子程序 _时钟1_周期事件 .局部变量 收到消息, SMSMessageStruct .局部变量 发送状态, 消息报告 .如果真 (查询发送状态报告 (发送状态) = 1) 调试输出 (发送状态.返回结果) 调试输出 (发送状态.目标手机号码) 调试输出 (发送状态.内容) .如果真结束 .版本 2 .数据类型 SMSMessageStruct, , 消息结构体 .成员 Msg, 文本型, , , //短信内容 .成员 PhoneNo, 文本型, , , //对方手机号码 .成员 ReceTime, 文本型, , , //接收时间 .数据类型 消息报告, 公开, 消息状态报告结构体 .成员 索引, 长整数型 .成员 内容, 文本型 .成员 返回结果, 逻辑型 .成员 目标手机号码, 文本型 .版本 2 .DLL命令 启动服务, 整数型, "SMSDLL.dll", "SMSStartService", , 返回值:1成功,0失败 .参数 nPort, 整数型, , 串口号 如1 则表示COM1 .参数 BaudRate, 整数型, , 拨特率 115200 .参数 Parity, 整数型, , 校验位 2 .参数 DataBits, 整数型, , 数据位 8 .参数 StopBits, 整数型, , 停止位 0 .参数 FlowControl, 整数型, , 流控制 0 .参数 Csca, 文本型, , 短信中心号码,可以使用默认值,若设置则格式如:" +8613800591500" .DLL命令 发送短消息, 整数型, "SMSDLL.dll", "SMSSendMessage", , 返回值无意义,查询短信成功与否请调用函数四 .参数 Msg, 文本型, , 消息内容 .参数 PhoneNo, 文本型, , 目标号码 格式如"13800591500" .DLL命令 接收短消息, 整数型, "SMSDLL.dll", "SMSGetNextMessage", , 返回 1有短信 0无 .参数 Msg, SMSMessageStruct .DLL命令 查询发送状态报告, 整数型, "SMSDLL.dll", "SMSReport" .参数 rept, 消息报告, 传址 .DLL命令 停止服务, 整数型, "SMSDLL.dll", "SMSStopSerice" .DLL命令 最近一次错误, 整数型, "SMSDLL.dll", "SMSGetLastError", , 返回错误长度 .参数 err, 文本型, , 错误内容 回答: 具体在哪一个地方出现错误了.. 追问: 你QQ多少我加你。 在时钟读接收信息变量里的内容的时候软件就自动关闭了 回答: 283779332,麻烦你在验证的时候写上来自问问吧,,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式