Debug Assertion Failed!
Program: ...o\documents\visual studio 2013\Projects\MFCOS\Debug\MFCOS.exe
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp
Line: 150
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
比較小白,就是在一個.cpp中呼叫了另一個.cpp里的函式,大概就是多次獲取edit編輯框里的內容,然后再執行調度……然后就出現了這個…求大神幫忙解決QAQ
講不太清楚,上代碼吧……
void CCHPF::OnClickedButton1() //添加行程,功能:重置編輯框為可編輯狀態
{
// TODO: 在此添加控制元件通知處理程式代碼
UpdateData(false);
UpdateData(true);
CHPF().input();
m_name = "";
m_prioritynumber = "";
m_runningtime = "";
UpdateData(false);
}
void CCHPF::OnClickedButton2() //完成行程添加,開始調度 【!!!!點擊這個按鈕出錯的!!!!】
{
// TODO: 在此添加控制元件通知處理程式代碼
//UpdateData(false);
UpdateData(true);
CHPF().mmain();
UpdateData(false);
}
//另附上呼叫的兩個函式的代碼
input():
void CHPF::input() /* 建立行程控制塊函式*/
{
p = getpch(PCB);
strcpy_s(p->name, CCHPF().name);
p->super ,CCHPF().prioritynumber;
p->ntime = CCHPF().runningtime;
p->rtime = 0; p->state = 'w';
p->link = NULL;
sort(); /* 呼叫 sort 函式*/
}
mmain():
void CHPF::mmain()
{
int len, h = 0;
len = space();
while ((len != 0) && (ready != NULL))
{
h++;
printf("\n The execute number:%d \n", h);
p = ready;
ready = p->link;
p->link = NULL;
p->state = 'R';
check();
running();
}
}
熱切的希望能勾搭一個厲害的大神教我……【
uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。uj5u.com熱心網友回復:
您好,我還是不太明白……我在這個帖子里貼出了原始碼,請問能請您看一下嘛?可能只是很簡單的常識錯誤,而我不太懂……第一次用MFC,馬上就要交作業了……
http://bbs.csdn.net/topics/392175053
uj5u.com熱心網友回復:
單步除錯。 崩潰看堆疊uj5u.com熱心網友回復:
之前有個大神在你的另一個帖子說過了,ON_EN_CHANGE和UpdateData死回圈了我非常不習慣使用UpdateData,因為我修改變數后就重繪UI,看似一句UpdateData搞定,但是,實際上我們還是會按需更新。
比如更新Edit文字,直接使用SetWindowText。
OK,回到你的問題,在OnChange里面不要呼叫UpdateData,通過GetWindowText來獲取Edit文字
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/98244.html
標籤:基礎類
上一篇:求個VB大神 寫個程式
