2010-01-13 76 views
4

我有一個簡單的C DLL(不是COM)。我還有一個運行它的C#2.0應用程序(dllimport)。該DLL被放置在應用程序的exe文件中。我知道DLL是好的,並且我的應用程序稱它成功讀取它,但是當我將它們移動到另一臺計算機時,它說它可以加載DLL。C DLL中不加載C#

錯誤:「無法加載dll name.dll。由於應用程序配置不正確,此應用程序啓動失敗。」

我用visual studio 2005來創建dll。目標計算機是一個並排的計算機。 當我拿着包含CRT的文件夾並沒有運行。 謝謝

+1

您是否收到錯誤消息或異常?它究竟說什麼? 「 – mdm 2010-01-13 16:11:29

+0

」無法加載dll name.dll。由於應用程序配置不正確,此應用程序啓動失敗。「 – 2010-01-13 16:22:56

+0

您應該將標題更改爲「C++中不加載C DLL」。我以爲你試圖將C#DLL加載到C中! – 2010-01-13 16:58:04

回答

0

我用了很多從人們寫的評論,他們是正確的。我使用了:Dependency Walker工具和進程監視器和進程瀏覽器。我的應用程序在運行時沒有檢測到正確的msvr80。 我安裝了可分解的軟件包,但是VC++ amd沒有幫助。 answear在這裏進行了另一次討論,它Side-by-side configuration error (Microsoft.VC80.CRT v8.0.50608.0) 這是一個安全更新問題:Microsoft.VC80.CRT v8.0.50727.4053(通過安全更新安裝)。

4

該C DLL可以有各種依賴。嘗試使用Dependency Walker工具來確定是否有任何這些工具。

+0

我使用了dpendency walker,發現dll依賴被發現。 我用visual studio 2005來創建dll。目標計算機是一個並排的計算機。當我拿着包含CRT的文件夾並沒有運行時。謝謝 – 2010-01-21 16:30:38

2

Windows可能檢測到您的應用程序存在並行版本配置問題。

例如,C DLL通常會針對特定版本的Microsoft C運行時庫進行編譯,而該C C DLL可能不會安裝在第二臺計算機上。它也不一定是C運行時庫,它可能是一些其他庫。

如何診斷?

看看這篇文章,http://blogs.msdn.com/junfeng/archive/2006/04/14/576314.aspx作爲一個起點,雖然沒有保證。

+0

我用visual studio 2005來創建dll。目標計算機是一個並排的計算機。當我拿着包含CRT的文件夾並沒有運行時。謝謝 – 2010-01-21 16:31:12