2009年3月8日 星期日

處理「該記憶體不能為read或written」辦法

常常在使用者新增或移除不完全某些軟體,又或是操作上及系統上的錯誤

會造成這種情況,再來使用該軟體時常常會出現一個警告視窗

告訴你,「該記憶體不能為read或written」然後只有個確定可以點選

點選確定後發生錯誤的軟體就消失啦。

在此提供一個小方法可以請大家嘗試看看

開始 \ 執行 \ 輸入 cmd \ 確定

命令提示字元出來的時候

將以下參數貼上並執行 ( Enter給它按下去 )


for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1


軟體安裝的時候會將它所屬的DLL註冊到電腦

讓電腦知道這個軟體在執行的時候需要去讀(Call)哪一些DLL檔案

當系統發生錯誤或是使用者不當操作時,往往會造成軟體毀損

這個參數應該可以解決掉不少問題。


What is DLL ?

DLL

動態連結程式庫 (DLL) 是具有函式的共用程式庫功能的可執行檔。動態連結提供一種方法,讓處理序 (Process) 呼叫不是可執行程式碼部分的函式。函式的可執行程式碼位於 DLL 裡,它包含一或多個已編譯、連結的函式,並且儲存在與使用它們的處理序不同的地方。DLL 也有助於共用資料和資源。多個應用程式可以同時存取記憶體中 DLL 單一複本的內容。

動態連結與靜態連結的不同處在於,前者允許可執行模組 (.DLL 或 .EXE 檔) 只包含在執行階段時用來找出 DLL 函式可執行程式碼的所需資訊。在靜態連結中,連結器 (Linker) 會從靜態連結程式庫取得所有參考函式,並且將它與您的程式碼一起放入可執行檔。

不使用靜態連結而改用動態連結可提供許多優點。DLL 節省記憶體、降低交換、節省磁碟空間、較容易升級、提供售後支援、提供擴充 MFC 程式庫類別機制、支援多種語言程式和簡化國際版本的建立。

※以上文字來自微軟MSDN※




沒有留言: