一个界面程序连续运行出错

twins222 2009-10-12 09:41:39
我编写了一个MFC程序,运行一次是没有问题的,但是运行一次以后这个界面不关闭,继续运行一次就会出错,例如:WritValue(18,m_DataNum,m_WritePassWord);第一次运行的时候返回值是对的 但是连续第二次运行返回值就是不对的 为什么呢?第一次我运行完以后需要关闭什么东西吗?
...全文
69 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyfeng2008 2009-11-28
  • 打赏
  • 举报
回复
给大家推荐一个调试工具Tracer,一个用于在Release后运行于真实环境下的应用软件的调试工具(当然也可以调试Debug版本的)而无需VC++环境,它可以捕获应用软件的TRACE输出信息进行跟踪显示,同时还能对应用软件在运行时出现的异常崩溃进行源码级的定位,非常方便程序员快速定位并解决应用软件开发中的深度BUG。有需要这个工具的朋友,请email:hynoo.tech@gmail.com
lstc 2009-10-21
  • 打赏
  • 举报
回复
仔细看SuperPro的例子
QQ:476833461
joimson 2009-10-12
  • 打赏
  • 举报
回复
跟踪调试呗
twins222 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hcyang 的回复:]
//  m_WritePassWord = _tcstoul(str17, NULL, 16);

为什么要注释掉呢?m_WritePassWord的值什么时候设置?
[/Quote]
那个是要写死在程序中的,我已经搞定了 改了一下程序的结构,现在可以了 结贴给分了
hcyang 2009-10-12
  • 打赏
  • 举报
回复
// m_WritePassWord = _tcstoul(str17, NULL, 16);

为什么要注释掉呢?m_WritePassWord的值什么时候设置?
twins222 2009-10-12
  • 打赏
  • 举报
回复
怎么没有人回答了呢 自己顶
twins222 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xianglitian 的回复:]
你是在作加密狗吧
同一个硬件能打开两次么?
[/Quote]
我是把一个狗插上以后执行以下程序,然后这个程序我不关闭,将另一个狗插上,然后再继续执行程序,前面判断狗的地方都没有错误。只是在写函数这里出现了错误 返回值是不对的。
向立天 2009-10-12
  • 打赏
  • 举报
回复
你是在作加密狗吧
同一个硬件能打开两次么?
twins222 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liumenghappy 的回复:]
把status1 = WritValue(18,m_DataNum,m_WritePassWord)注释掉,看看还有错误没?
[/Quote]
呵呵 你又来回答我了,注释掉是不行的,我就是用它来做东西的,第一次返回值是没有错误的,但是第二次的返回值就不对了,我感觉是第一次做完以后有些资源没有清理,没有关闭 所以导致了错误 但是不知道什么地方 应该怎么办
liumenghappy 2009-10-12
  • 打赏
  • 举报
回复
把status1 = WritValue(18,m_DataNum,m_WritePassWord)注释掉,看看还有错误没?
twins222 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xianglitian 的回复:]
WritValue(18,m_DataNum,m_WritePassWord);?
=========================================
你是不是往文件里写东西了
第二次运行的时候创建同名文件应该是失败了
结果你还执行写操作当然会出错
[/Quote]
我是往数据库中写数据了,但是数据库不是我在程序中创建的,是建立的数据库直接放在工程目录下,然后直接写进去的,不知道有没有关系,况且这个函数不是往数据库中写东西,而是往一个硬件设备中写。
向立天 2009-10-12
  • 打赏
  • 举报
回复
WritValue(18,m_DataNum,m_WritePassWord);?
=========================================
你是不是往文件里写东西了
第二次运行的时候创建同名文件应该是失败了
结果你还执行写操作当然会出错
twins222 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chenyu2202863 的回复:]
贴源码~
[/Quote]
GetDlgItem(IDC_EDIT1)->GetWindowText(str11);
GetDlgItem(IDC_EDIT2)->GetWindowText(str12);
GetDlgItem(IDC_COMBO1)->GetWindowText(str13);
GetDlgItem(IDC_COMBO2)->GetWindowText(str14);
GetDlgItem(IDC_DATETIMEPICKER1)->GetWindowText(str15);
GetDlgItem(IDC_COMBO3)->GetWindowText(str16);
GetDlgItem(IDC_EDIT3)->GetWindowText(str17);
m_DataNum = atoi(str11);
m_DataOEM = atoi(str12);
MaxTagNum = atoi(str13);
ClientNum = atoi(str14);
AfxExtractSubString(yearS,str15,0,'-');
AfxExtractSubString(monthS,str15,1,'-');
AfxExtractSubString(dayS,str15,2,'-');
YearS = atoi(yearS);
MonthS = atoi(monthS);
DayS = atoi(dayS);
// m_WritePassWord = _tcstoul(str17, NULL, 16);
status1 = WritValue(18,m_DataNum,m_WritePassWord);
。。。。。。。
。。。。。。。
。。。。。。。




BOOL CWriteLockDlg::WritValue(int inputadress, int inputvalue,int inputpassword)
{
SP_STATUS spStatus;
spStatus = RNBOsproWrite(ApiPacket,inputpassword,inputadress,inputvalue,0);
return spStatus;
}

第一次执行到WritValue的时候是对的,第二次参数也都传进来了 执行WritValue返回值就是不对的了
chenyu2202863 2009-10-12
  • 打赏
  • 举报
回复
贴源码~

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧