Eclipse中applet工程,每次调用dll打开关闭串口:
一个打开按钮:CreadFile(),WriteFile(),ReadFile(),CloseHandle().都是同步形式,
当我再次点击这个按钮时就报错了,不是打开--creatfile报错,而是writefile是报错,
getlasterror()返回的是空的--afxmessagebox(getlasterror());一是不了解,java调用这个dll,究竟是怎么一回事,二是,本身也不了解windows 下dll工作的方式,三是,串口打开,关闭是不是还有什么技巧呢?
一个打开按钮:CreadFile(),WriteFile(),ReadFile(),CloseHandle().都是同步形式,
当我再次点击这个按钮时就报错了,不是打开--creatfile报错,而是writefile是报错,
getlasterror()返回的是空的--afxmessagebox(getlasterror());一是不了解,java调用这个dll,究竟是怎么一回事,二是,本身也不了解windows 下dll工作的方式,三是,串口打开,关闭是不是还有什么技巧呢?
情况是这样的:我使用两个按钮:每个按钮的处理函数都是从dll中来的A&B这两个函数的名称不一样(在这之前是一样的)
这个来自dll的处理按钮事件的函数--A&B,调用dll中的同一个函数就可以运行。但是同样的一个函数一样不能执行两次,比如这里,同一个按钮点击第二次的时候就会报错:报错是向串口发送数据失败!
现在把调用方式重新整理如下:
问题的开始:1111
两个按钮--b1&b2,调用同一个函数---A,A呢又调用dll里面的另外一个函数GET().
问题:b1&b2任何一个按钮点击后,再点击同一个按钮或者另外一个都会:写串口错误。
现在:2222
两个按钮--b1&b2,调用不同的函数--A&B,A&B调用dll里面的另外一个函数GET().
问题:b1&b2两个按钮都可以点击一次,点击第二次的时候就会出问题:写串口错误。
通过上面问题表现的分析:
被按钮直接调用的函数只能执行一次,而被他们的下一级函数则没有问题,并且应该不是串口打开关闭的问题。
因为2222的时候,是同一个二级函数(在 这里是GET())在打开,写,读,关闭串口都没有问题。问题就出在了一级函数(按钮事件的处理函数那里。)即使是同一个按钮,按第二次的时候都会报错。
问题来源:java的applet中调用dll。