none
開發出來的windows form應用程式一直出現 winmm.dll 的 .NET Runtime 2.0 Error Reporting RRS feed

  • 問題

  • 這一段時間用了visual studio 2008 standard edition開發一個windows form的Application,

    在執行時卻不斷的出現錯誤導致程式被關閉,

    查詢了事件檢視簿,

    總是出現

    來源:.NET Runtime 2.0 Error Reporting

    類型:錯誤

    事件ID:1000

    描述:

    Faulting application xxx.exe, version 1.0.0.0, stamp 4b74fbc4, faulting module winmm.dll, version 5.1.2600.5512, stamp 48038646, debug? 0, fault address 0x0000593d.

    請在 http://go.microsoft.com/fwlink/events.asp 查看說明及支援中心,以取得其他資訊。

     

    網路上找到的資料關於winmm.dll,

    好像是主要負責媒體播放相關的Lib,

    一開始以為是因為程式使用了SoundPlayer 播放聲音的關係,

    後來取消掉SoundPlayer的部份後,

    這個錯誤還是不停的產生.

    在開發的過程中也只有使用了SQL Compact Edition3.5的Lib,

    目前的執行環境安裝了.

    Microsoft .Net Framework 2.0 SP2

    Microsoft .Net Framework 3.0 SP2

    Microsoft .Net Framework 3.5 SP1

    實在是不知道到底那裡有問題,

    還是那裡的設定有不相容?

    (若在程式中有使用Timer,會和winmm.dll有關嗎?)

    2010年3月22日 上午 08:51

所有回覆

  • Hi!

    1. 您的程式在開發的電腦上可以順利執行嗎?

    2. 您將程式發佈到其他電腦時,有把 SQL Compact Edition 3.5 的 dll (ex.SqlServerCe.dll) 或者其他引用到的 dll 也發佈過去嗎?


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年3月22日 上午 09:22
    版主
  • 找一下程式中是不是還有呼叫 Winmm.Dll相關函數的部份沒有刪除掉的 ? 或直接在參考中先把它移除

    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年3月22日 上午 10:44
    版主
  • 1. 在開發的電腦是可以順利執行的, 但在安裝至User的電腦後, 大約一天會出現2~3次類似情形 (被強制關閉程式後, 重新開啟, 過一陣子就又發生錯誤).

    2. SQL CE 3.5的dll我有照MSDN的方式一起發佈出去.

     

    因為得到的資訊是說,

    不一定是什麼特定動作,

    往往只點到某個button或form就會發生錯誤導致關閉,

    所以一直沒有頭緒,

    我也已經把User的電腦搬回來,

    測了很多久卻一直沒出現這個問題,

    但是事件檢視簿卻的確有錯誤記錄存在,

    若是User端有安裝其他軟體,

    或開啟其他程式,

    是不是也會產生衝突呢 ?

    謝謝~

    2010年3月22日 上午 11:13
  • 目前程式中只剩下SQL CE 3.5 的dll是另外加入參考的,

    其餘的都是visual studio專案建立時就預設的,

    因為其實我也沒有特地去參考winmm.dll,

    我最初使用的是System.Media.SoundPlayer,

    只是我也不知道它有沒有參考到作業系統的winmm.dll,

    所以就先把它拿掉,

    結果錯誤還是一直持續在發生中,

    真是想破頭也想不出為什麼......

    2010年3月22日 上午 11:22
  • 你的錯誤訊息是非 .Net Debug 能阻擋的部分所產生的錯誤訊息,最好檢查那些非 .Net 的控制項,比如說 COM 控制項。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年3月22日 下午 02:49
  • 你的錯誤訊息是非 .Net Debug 能阻擋的部分所產生的錯誤訊息,最好檢查那些非 .Net 的控制項,比如說 COM 控制項。
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。


    謝謝您的提點,

    想再問一下,

    要怎麼樣才能去檢查非.NET的控制項?

    像是錯誤報告中提到 faulting module winmm.dll, version 5.1.2600.5512,

    我在網路上找到的一段資料是

    winmm.dll is statically linked to the following files:

    ADVAPI32.dll
    GDI32.dll
    KERNEL32.dll
    ntdll.dll
    RPCRT4.dll
    USER32.dll

    This means that when winmm.dll is loaded, the above files are automatically loaded too. If one of these files is corrupted or missing, winmm.dll won't be loaded.

    是不是代表也有可能是以上的dll有問題?

    還有一個小疑問,

    因為程式內我有建立了UserControl

    裡面各有一個Button和Label的元件 (都是.Net 的元件)

    那這算不算是非.Net的控制項?

    謝謝您的回應~

    2010年3月23日 上午 02:34
  • .Net 能過濾的訊息盒是另一種,有三個按鈕,左邊按鈕按下去可以展開看 .Net 的錯誤,純粹使用 .Net 構成的元件,仍是 .Net 能過濾的,不能過濾的是封裝遞送後的。

    封裝遞送後的,可能是函數型 DLL / COM DLL (ActiveX DLL) / ActiveX OCX / ActiveX EXE 等。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年3月23日 下午 12:34