我这个程序退出时为什么会提示非法操作?(100分)

  • 主题发起人 主题发起人 墨剑
  • 开始时间 开始时间

墨剑

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中调用的ST6699考勤机中的那个_download函数,调用成功且下载了数据。
但是当程序退出的时候就会出现此程序执行了非法操作。请问这是为什么?有没有方法屏蔽
掉这个错误?
 
有没有方法在退出时屏蔽掉这种错误提示?
 
并且在98下运行一点错也没有,在2000下就出现这个问题
 
可能是内存分配的问题
 
我感觉肯定是内存分配上的问题,_download这个函数如果需要参数,参数类型都是什么。
你的释放是不是有问题。
 
既然98没错,就是你2000的错。
:)
 
我是这样申明的:
function _DOWNLOAD(address:byte;portno:integer):integer;stdcall;far;external 'w_kqrec.dll';

然后我使用是这样的(因为我的考勤机编号和端口都是1):
dlnum:=_DOWNLOAD(1,1); //如果下载成功,返回-1;
数据下载成功,且显示正确
但退出时提示非法操作
 
问问厂家这个函数是否支持2000,数据下载成功放在什么上,
 
数据下载到本机并且我已经转换。如果不找厂家的话,我想是否有可能将这个错误
屏蔽掉不让用户看到?
 
有些动态连接库是不支持win 2000的
可以问问厂家索要
 
我想是你也许就是转换的错,因为转换一般要出现内存分配的
你把你转换的的那部分去掉,看看是否出错,如果出错就是内存分配的事了,
一般分配内存sizeof(变量类型),不知你注意了没有,
要不把变量分配给一个静态的数组,一般不回出错,
 
我遇见过这样的问题,ST6699原来的那个dll文件有那种问题,我后来向厂家重新索要了
一个,就没有问题了,他们那个后来升级了的,如果你要的话我发到你的邮箱
 
thank you very much
 
后退
顶部