簡體   English   中英

在64位計算機上注冊C ++ DLL

[英]Registering C++ DLL on 64-bit machine

我有一個編寫的C ++ DLL無法在64位計算機上注冊。 請注意32位計算機上的DLL寄存器的32位版本。

我們在發布模式下使用Visual Studio 2010在64位Windows 7計算機上構建DLL,並以x64平台為目標。 我想在64位Windows 10計算機(目標)上安裝DLL。 目標計算機安裝了針對64位的VS 2010 Redist。 當我嘗試使用以下方式注冊程序時:

C:\\ WINDOWS \\ SYSTEM32 \\ REGSVR32.EXE

它失敗並說該程序“可能與您正在運行的此版本的Windows不兼容。請檢查該模塊是否與regsvr32.exe的x86(32位)或x64(64位)版本兼容”。 。

我使用一個名為Dependencies的程序,該程序試圖弄清楚DLL需要什么依賴關系。 依賴關系說,我的DLL需要ATL100.dll。 但是,它是由VS 2010 redist安裝的,並且確實位於C:\\ windows \\ system32中。 DLL本身不依賴於任何第三方程序。

有人對下一步要注冊該文件有什么想法嗎?

我想到了。 我必須卸載64位和32位VS 2010 redist。 從C:\\ windows \\ system32和syswow64目錄中刪除ATL100.dll,然后重新啟動計算機。 重新啟動后,我重新安裝了兩個redist安裝程序。 然后,我能夠從管理命令提示符下注冊文件。

也許我們安裝了ATL100.dll文件,當我安裝64位Redist時,它沒有覆蓋ATL100.dll。 保留已過時的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM