C 外部元件發生異常原因分析 分析

2021-04-13 00:06:53 字數 1260 閱讀 2186

在專案中,用from2 啟動 report 正常,用from1 啟動 report 失敗,日誌:

由於from2 和 report 是同乙個人開發的,直接啟動 reportcontroller 是沒有問題的,而我們自己通過相同的方法啟動 reportcontroller 就出現了問題。開始以為是我們程式那裡出現了問題,跟蹤**發現這個異常不固定,很難確定是那裡出現了問題。

雖然顯示的外部組建發生異常,可應用程式中沒有呼叫任何其他的第三方應用程式哦。

對比form1 和form2 發現:

form1:

[stathread]

public static void main(string args)

再查詢了一下msdn ,發現 :

「此方法啟用應用程式的 windows xp 視覺化樣式。如果控制項和作業系統支援視覺化樣式,則控制項將以這種樣式進行繪製。若要使 enablevisualstyles 生效,必須在應用程式中建立任何控制項之前呼叫它;enablevisualstyles 通常是 main 函式的第一行。當呼叫 enablevisualstyles 時,無需單獨的清單即可啟用視覺化樣式。

對於支援 flatstyle 屬性的控制項,請確保將 flatstyle 屬性設定為 flatstyle.system 值。」

搜尋 flatstyle ,發現在 report 裡面很多自定義控制項這麼寫的:

this.***controlname.flatstyle = system.windows.form.flatstyle.system;

也就是說,控制項是使用的系統的樣式。在使用系統樣式的時候必須告訴系統啟用虛擬樣式。

否則可能出現上述應用程式異常。

在google 上搜尋了一下,發現很多上述類似異常的都或多或少提及到xp 樣式了。

相關資源:

2)vs2005 中解決方法:

microsoft msdn 論壇的一些相關資訊:

空指標異常的原因分析

不懂為什麼會引發空指標異常 description author version 1.0 class base public void test 號test方法 public class subextends base public static void main string args 系統試圖...

c 呼叫python出現異常的原因分析

pyimport importmodule 失敗可能的原因 沒有形成module。解決方法 按python規定,新建乙個 module name 的資料夾,裡面有乙個 init py 和 mod程式設計客棧uleuigcxiw name.py 檔案 pyobject getattrstring pm...

C 記憶體洩漏原因分析

一.記憶體洩漏 1.什麼是記憶體洩漏 記憶體洩漏是指在程式中申請了記憶體沒有呼叫釋放函式,導致記憶體沒有被系統 程式記憶體會不斷增大,最後導致系統記憶體不足,程式卡頓或崩潰。2.記憶體洩漏的原因 1 呼叫new或者malloc申請記憶體後沒有主動呼叫delete或者free。2 在使用多型特性時,基...