MFC 真是怪了,一步步除錯執行正確,Ctrl F5執行就出錯

時間 2022-07-11 12:05:02

1樓:何處淬吳鉤

確認控制代碼無效?

ftarget只是一個控制代碼值,即使不關閉也可重新賦值,問題就在createfile上。

這樣的話問題不一定在程式本身。檢查目錄下有沒有同名檔案,以及是否有許可權刪除,等等。

2樓:敲響鍵盤

問題出在控制代碼沒有正確關閉,或者開啟的檔案沒有關閉。

有以下解決辦法.

按照你說的第一次正確執行,

ftarget 可另開一個指標ftarget 1,ftarget 2……

你這個應該是隻能把別人的綁到你的程式中來,應該不能把自己的綁到人家的程式上去吧.

3樓:匿名使用者

可不可以給**,[email protected]

mfc中有沒有類似重新整理的函式,如ctrl+f5的功能的函式,就是沒點選一次按鈕都相當於第一次執行這個程式。

4樓:空雪夢見

你實在是沒辦法除錯出程式的bug,但是你確定第一次執行一定是正確的(不能出現偶然第一次執行不正確)

你可以把你運算的**弄到一個exe或者dll裡面去,介面上通過createprocess來呼叫exe或者loadlibrary、getprocaddress來呼叫dll,這樣每次「點選按鈕」就都是「第一次執行這段**」。如果是dll,在呼叫完函式後要freelibrary。

exe的情況,引數、資料之類的,最簡單的方法是通過檔案的方式傳遞,介面生成一個檔案裡面放要傳遞的資料,然後exe執行了讀取檔案獲得資料,執行完了之後執行結果寫入另一個檔案。介面那邊等待exe執行結束,然後從檔案讀取結果。想要**啥的好看一點,可以使用匿名管道而不是臨時檔案。

dll的情況,那就直接呼叫就可以了。

為了確保介面本身的程序的乾淨,建議使用exe方式。

5樓:匿名使用者

這個是你的**問題

還原到剛執行的情況,其實就是reset / clear 之類把該賦值為初始值的賦值為初始值,後新增的刪除,等等debug版沒有問題

那就看看debug中都編譯了什麼,沒編譯什麼編譯開關嘛,release時,debug的一些東西就會去掉了你可以一步一步把各個值都顯示出來,寫到log檔案等也可以,看到哪一步是正確的,從哪一步開始就不正確了,以此確定錯誤位置,繼續分析該處問題的各種可能,進而修正之

6樓:匿名使用者

如果你自己沒搞特殊的條件編譯,一個程式release是有問題的,debug是正確的。

通常是因為你的指標或者陣列越界了,在debug版的可執行檔案中比release版多了很多記憶體區域用於輔助除錯的,在debug版本中越界到了這些記憶體中,程式正常執行了。

但在release版本,你的越界把其餘變數的記憶體搞壞了,所以結果就不對了。

建議去檢查一下越界問題。或者最簡單的辦法就把debug版本給使用者把。

7樓:匿名使用者

很有可能是你的變數初始化不乾淨,debug版預設初始化為0的release不一定能初始化為0,建議你檢查一下變數的初始化。

vc高手進來,能否講解一下vc6.0中除錯(f5)和執行(ctrl+f5)的區別是什麼?系統的工作機理有什麼不同,謝謝

8樓:瓊頭浪子

f5是對**進行編譯,使源**(.cpp)變成目標**(.obj);

f5+ctrl是對目標**進行組建,進一步變成可執行**(.exe);

9樓:匿名使用者

除錯,要載入除錯**;

執行,只是將已編譯好的**程式直接執行;

10樓:

這個還真是不太清楚~

貌似f5是呼叫堆疊,可以逐句執行的~

而ctrl+f5純粹就是作為程式執行的,無法單步除錯~

vs2010中 c#專案,帶除錯執行f5正常,不帶除錯ctrl f5能夠執行,但是進度條是在資料接

11樓:匿名使用者

f5可以斷點,ctrl+f5那樣不可以斷點除錯f5:除錯執行,可以設定斷點,並單步執行,便於查詢bugctrl+f5(開始執行(不除錯)):直接執行,只得到最終結果ctrl+f5強制執行,也就是不用除錯了

12樓:老實人愛知識

初始化程式有迴圈並且加sleep或者載入第三方元件了吧

vs2008寫簡單程式後無法除錯,啟動除錯(f5)和執行(ctrl+f5)的選項是灰色的,不能點

13樓:

和系統絕對沒有關係的。。。應該是你建的檔案不對。。有的是不能執行的

14樓:

你是怎麼做的哦,不是所有的檔案都可以f5的哦

c語言程式設計執行程式時f5 與ctrl+f5 有什麼區別

15樓:匿名使用者

f5是除錯,ctrl+f5是執行。沒有斷點時一樣,有斷點時f5將在斷點處暫停,進行除錯。

1、在c語言程式設計執行程式時,如果按f5鍵是起除錯程式的作用,如果是按 ctrl+f5 鍵是起執行程式的作用, 如果程式設定有斷點,按f5鍵在斷點處會暫停程式,而按 ctrl+f5 鍵是不起作用的。

2、c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansic,作為c語言最初的標準。

16樓:楊塵一

在c語言程式設計執行程式時,如果按f5鍵是起除錯程式的作用,如果是按 ctrl+f5 鍵是起執行程式的作用, 如果程式設定有斷點,按f5鍵在斷點處會暫停程式,而按 ctrl+f5 鍵是不起作用的。

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。

17樓:匿名使用者

一個是直接執行,不除錯;一個是執行,遇到斷點停止等待

18樓:

f5表示執行的時候可以除錯。如果你設定了斷點,程式就會執行到斷點停下來。ctrl+f5表示直接執行程式不除錯。

19樓:淋浴尖叫

f5是除錯。ctrl+f5 是執行。

在c語言程式設計執行程式時,如果按f5鍵是起除錯程式的作用,可以設定斷點,檢視記憶體引數等。如果是按 ctrl+f5 鍵是起執行程式的作用, 如果程式設定有斷點,按f5鍵在斷點處會暫停程式,而按 ctrl+f5 鍵是不起作用的。

20樓:阿凱琴絃

沒啥不一樣的

ctrl+f5程式執行結束的時候會有一行

press any key to continue...

按任意鍵繼續...

f5沒有

21樓:趙

ctrl+f5重新整理是指清空快取,也可以理解為你所說的強行重新整理.

單獨的f5重新整理是指重新整理當前活動頁面.其實沒什麼太大區別。

22樓:匿名使用者

c語言和f5沒有任何毛線關係

你說的是編譯器的快捷鍵

我猜想一個是編譯,一個是編譯並且執行

編譯就是把你寫的**轉換為機器語言,編譯執行就是編譯為機器語言之後再執行

23樓:易水飛霜

f5是除錯命令,遇到斷點時會停止。

ctrl+f5是執行命令,忽視斷點讓程式執行完畢。

比如,你在程式裡設定2個斷點。當執行ctrl+f5,程式會順序執行,無視斷點。當執行f5時,程式走到斷點1時會切換至**介面,可以檢視此時的變數資料;檢視完畢後按f5,程式走到斷點2時暫停,切換回**介面;繼續按f5,程式執行至結尾。

順便多一句嘴,設定斷點是用f9

24樓:匿名使用者

vc++6.0中:f5是除錯(debug)與 ctrl+f5 執行(execute)

除錯可以設定斷點,檢視記憶體引數等。

25樓:範謙

f5除錯狀態下執行,ctrl+f5直接執行程式,效果一樣的

26樓:馬二黑圈叉

vs2015的話

f5是除錯狀態下執行程式

ctrl+f5是直接讓ide編譯後執行程式,不除錯.

別的ide不記得是不是這樣了.

27樓:安徽新華電腦專修學院

f5是除錯執行,ctrl+f5是非除錯執行。

28樓:

以visual studio系列為例,f5表示「開始除錯,並執行到斷點為止。程式並不是直接執行完,還可以看執行過程中的變數的資料等,方便我們找出bug」,而ctrl + f5表示「直接執行完畢,給我們看結果就行,如果中途出現bug,會執行失敗,無法知道程式內部細節」。即一個是除錯,一個是執行。

29樓:匿名使用者

1、f5是除錯, ctrl+f5 是執行

2、當沒有斷點時沒啥區別,你設定斷點後就發現還是有區別的,f5將會在斷點處暫停。

3、英文解釋:

"start debugging f5"

"start without debugging ctrl+f5"

30樓:匿名使用者

f5是除錯模式啟動,就是加了斷點之後,程式執行到斷點處會停下來,你可以檢視當前的各個變數的值,甚至修改一些資訊。

ctrl+f5,是直接執行,不會在斷點處停下來。

深層知識參考:

偵錯程式為了能夠允許程式加斷點除錯,是會 設定除錯中斷指令,在exe程式的需要停下來的位置插入中斷指令。如何知道該在什麼位置呢?這就需要編譯器的配合了,如何知道exe的二進位制指令碼與源**的關係呢?

這更需要編譯器的配合了,它會生成符號表來記錄。

非除錯模式(ctrl+f5),就不會出現所說的中斷指令插入的處理,程式自然執行。

31樓:匿名使用者

f5:啟動除錯

ctrl+f5:啟動執行

32樓:修改暱稱然後解除安裝笑嘻嘻

一個是除錯,一個是執行。

33樓:匿名使用者

一個只是執行,另一個是編譯+執行。

34樓:不說無所謂謂謂

vs裡f5是除錯,ctrl+f5是執行

35樓:文薦小鋪

一個全部執行 一個逐條執行

女生是如何一步步對男朋友失望的

豬豬看世界 女人對男人失望,這也是一個量變到質變的過程,是通過男人點點滴滴的表現讓女人逐漸的產生不滿。從而徹底的對這個男人失望透頂,最終覺得離開他。就像我們常說的壓死駱駝的最後一根稻草,這都是一點一點積累而來的。所謂路遙知馬力,日久見人心。這兩個人長期相處的日子裡,女人並不會停止對你的考驗和觀察。在...

謝娜是如何一步步喪失觀眾緣的

之前,謝娜是比較討人喜歡的,因為她的性格比較的好,但是後來她在綜藝節目上過分的誇張,她的一些舉動讓人無法理解,然後我覺得她也不尊重人,有時候在別人說話的時候,她就會插嘴,我覺得這會讓觀眾非常的反感,就一步步喪失觀眾緣了。看其他節目其實謝娜挺會照顧人的,也挺會開導別人,說起喪失觀眾緣可能是因為人紅是非...

王者榮耀張大仙是怎麼一步步成為一哥的

若黎明依舊 我當時是從王者必修課知道張大仙的,然後才去企鵝看的他,那個時候他的露娜是真的秀,而且我去看的時候他就已經隱隱約約有成為企鵝王者一哥的趨勢了,後來沒多久人氣就可以輕鬆壓下其他主播了,所以我不知道他是怎麼成為一哥的,不過我倒是見證了他怎麼一步步變成一姐的? 師太你的奶有毒 看見有人給張大仙刷...