2010-02-24 69 views
1

我用ATL VS 2008創建了一個簡單的COM對象。我可以在我的機器上成功註冊dll並使用它。ATL DLL無法註冊到XP

但是,我試圖註冊與XP安裝的機器與DLL 沒有 VS 2008安裝。但這似乎並不成功。

然後,我安裝了VC 2008可再發行版SP1,並嘗試過。仍然註冊失敗。

然後,我做了一個靜態構建的DLL並嘗試使用同一臺機器,但仍然沒有成功。

你能幫我弄清楚這裏發生了什麼嗎?

謝謝

編輯

我發現ATL DLL可以與以下運行時庫

\ VC \ REDIST \ 86 \ Microsoft.VC90.ATL \
atl90重新分配。 dll, Microsoft.VC90.ATL.manifest

任何想法將這些文件放在客戶機中的位置?

編輯

的方式被嘗試次數後,終於我做了兩個ATL和MFC 一個靜電積聚。 令人驚訝的是它的工作。但我沒有使用ATL dll內的任何MFC庫,有人請解釋,爲什麼需要MFC庫?

回答

1

在Visual Studio Tools文件夾應該是一個叫做depends.exe

用它來裝載它失敗的機器上的ATL DLL的工具,它應該告訴你,如果你有任何丟失的DLL。

+0

謝謝您的信息,我會嘗試並將結果返回 – Nimo

0

您可能需要確保你安裝了正確的VC2008運行時, 我有4個在我的機器上:

  • 9.0.21022,
  • 9.0.30729,
  • 9.0.30929.17,
  • 9.0.3.30729.4148。

你可以檢查你的dll依賴於哪個版本的.manifest文件。並且還要確保將.manifest文件和dll一起發佈,除非您知道如何不依賴它。

+0

我有v9.0.21022.8,如何找到兼容的redistributable軟件包? – Nimo

+0

from microsoft:http://www.microsoft.com/downloads/details.aspx?FamilyID = 9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang = en或從SDK文件夾c:/ Program Files/Microsoft SDKs/Windows/v6 .0A /引導程序/包/ vcredist_x86 –