2011-09-13 25 views
0

我在我的應用程序中使用第三方DLL,它註定要在Windows XP嵌入式SP1系統上運行。XP嵌入式CRT版本問題.. LoadLibraryEx失敗

但是,它在我的開發盒上運行良好,但是當我嘗試在目標平臺上運行它時,它會失敗,並顯示以下事件。當我調用LoadLibraryEx加載第三方DLL時,會發生此事件。

Event Type: Error 
Event Source: SideBySide 
Event Category: None 
Event ID: 32 
Date:  9/8/2011 
Time:  9:42:28 AM 
User:  N/A 
Computer: OEM-J1XMVGHGNVX 
Description: 
The description for Event ID (32) in Source (SideBySide) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Microsoft.VC80.CRT, The referenced assembly is not installed on your system. 

我發現,安裝Microsoft Visual C++ 2005再發行組件包就能解決問題,但我不能這樣做,因爲它是一個嵌入式平臺,微星並沒有在其上運行。我試圖將dll文件msvcm80.dll,msvcp80.dll和msvcr80.dll複製到系統中,但這並沒有解決問題。

回答

0

我找到了解決方案,並在此處發佈,以供有人在類似問題中苦苦掙扎。

我將CRT80相關的文件夾和文件從我工作的計算機WinSxS目錄複製到目標平臺,並且工作正常。

我複製了包含CRT dll的名爲「x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_e6967989」的目錄。從「策略」和「清單」目錄複製相關文件。

0

把你所有的EXE和DLL放在一個目錄中,包括CRT。複製作品提供你把他們放在正確的地方。

+0

謝謝!我試過一樣,它不起作用。我還確保該目錄包含在%PATH%環境變量中。 –

+0

PATH不需要; 'LoadLibraryEx'首先檢查模塊目錄。你可以在目標上運行Dependency Walker嗎? – MSalters

+0

Even dependency walker說:「錯誤:」d:\ xxx \ yyy.DLL「的並排配置信息包含錯誤。由於應用程序配置不正確,此應用程序無法啓動。重新安裝應用程序可能會解決此問題(14001)。 警告:由於延遲加載相關模塊中缺少導出功能,至少有一個模塊具有未解析的導入。「 –