日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]Mogre 环境配置问题(Exception from HRESULT: 0x800736B1)

發布時間:2024/6/5 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]Mogre 环境配置问题(Exception from HRESULT: 0x800736B1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

樣例程序做好啦,運行報錯

Unhandled Exception: System.IO.FileLoadException: Could not load file or assemby "Mogre, Version=1.4.8.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem. (Exception from HRESULT: 0x800736B1)
郁悶了幾天,終于解決了。

要安裝

Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

安裝 vc2005 sp1 就不行

下載地址:vcredist_x86.exe

?

?

轉載請保留本行原始鏈接信息 : http://www.zeali.net/entry/476 MADE 1n ZEAL 標簽 ( 開發/理論 ): vs.net?,?error Could not load file or assembly '... ...' or one of its dependencies. 由于應用程序配置不正確,應用程序未能啟動 ...

  兩個工程分別是 .net2005下的 C# 和 C++ , C++ 工程使用 C++/CLI 封裝了幾個功能函數并在 C# 工程中加載使用封裝類。在本地運行正常,但發布到其他機器上卻出現異常對話框:“??Could not load file or assembly '... ...' or one of its dependencies. 由于應用程序配置不正確,應用程序未能啟動。重新安裝應用程序可能會糾正這個問題。 ( Exception from HRESULT: 0x800736B1 )?”。

  這個錯誤看上去好像是 C++ DLL庫本身的問題,其實并不盡然。由于使用了混合模式編譯托管 DLL ,所以該 DLL 又會用到非托管的 CRT ( C Run-Time )庫。如果機器上沒有安裝這些被使用到的運行時組件,就會產生類似 HRESULT: 0x8007 的錯誤。最簡單的方法是下載安裝 Microsoft Visual C++ 2005 Redistributable Package (x86)以得到代碼運行所需的 msvcr80.dll 及 msvcm80.dll 等;也可以到系統盤下的 Program Files\Common Files\Merge Modules 目錄下找到包含 CRT 字樣的 msm 文件,把這些文件添加到你的安裝程序里面可以達到同樣的效果;如果 C++ 生成的不是 dll 而是可執行文件的話,也可以按照微軟的說明直接把需要的dll拷貝到應用程序目錄下。更為細致的分析說明可以參考這里:Bootstrapper for the VC++ 2005 Redists (with MSI 3.1)。

  要注意的是,如果你編譯 C++ 托管程序集的時候使用的是 Debug 配置的話,生成的 DLL 需要調用的就是 CRT 對應的 debug 版本( msvcr80d.dll 及 msvcm80d.dll 等 )而不是上面那些 Redistributable Package 里面的文件。這樣的話即使你使用任何一種方法去安裝那些運行時庫文件也還是同樣會得到錯誤異常對話框。了解生成的 DLL 到底是 Debug 還是 Release 版本最簡單的方法是用文本編輯器打開該 DLL 文件,找到以下類似的內容(一般位于文件末尾處):

view plaincopy to clipboardprint?
  • <assembly?xmlns="urn:schemas-microsoft-com:asm.v1"? ??
  • ??????????manifestVersion="1.0">???
  • ??<dependency>???
  • ????<dependentAssembly>???
  • ??????<assemblyIdentity?type="win32"? ???
  • ????????????????????????name="Microsoft.VC80.DebugCRT"? ???
  • ????????????????????????version="8.0.50608.0"? ??
  • ????????????????????????processorArchitecture="x86"? ??
  • ????????????????????????publicKeyToken="1fc8b3b9a1e18e3b">??
  • ??????</assemblyIdentity>??
  • ????</dependentAssembly>??
  • ??</dependency>??
  • ?</assembly>??
  • <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"> </assemblyIdentity> </dependentAssembly> </dependency></assembly>

    ?

      如果看到 Microsoft.VC80.DebugCRT ,那說明該 dll?Link的目標是 CRT的Debug版本,如果是 Microsoft.VC80.CRT 則 link 到再分發版本。當我在 VS.net2005 的 IDE 中通過批生成來生成 C# exe 和 C++ dll 的時候,如果當前的活動解決方案配置是 Debug 的話,在 C# 項目的Release輸出目錄下拷貝的會是 C++ dll 的 Debug 版本文件而不是 Release 版本!所以在發布生成之后確認對應文件的版本還是相當有必要的。

      另一個可能性是如果你的硬盤分區為 FAT32 格式的話, VS.net 在編譯 C++ dll 的時候有可能會因為時間戳計算的失誤而沒有把正確的 Manifest 信息(基本上就是上面提到的那部分 xml 配置信息)寫到 dll 里面,導致程序運行時得不到正確的 dependency 信息產生加載錯誤。所以如果上述操作仍然無法解決錯誤的話,考慮在“屬性->配置屬性->清單工具->常規”下把“使用FAT32解決辦法”選項設置為"是"。

    ?

    Microsoft.VC90.DebugCRT.manifest
    msvcm90d.dll
    msvcp90d.dll
    msvcr90d.dll

    轉載于:https://www.cnblogs.com/aooyu/archive/2009/12/17/1626587.html

    總結

    以上是生活随笔為你收集整理的[转]Mogre 环境配置问题(Exception from HRESULT: 0x800736B1)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。