我曾嘗試使用下面的代碼:如何在Windows 7 64位上註冊DLL文件?
cd c:\windows\system32
regsvr32.exe dllname.ax
但是這不是爲我工作。如何在Windows上使用64位處理器註冊DLL文件?
我曾嘗試使用下面的代碼:如何在Windows 7 64位上註冊DLL文件?
cd c:\windows\system32
regsvr32.exe dllname.ax
但是這不是爲我工作。如何在Windows上使用64位處理器註冊DLL文件?
regsvr32 name.dll
類型到命令提示符(在升高的模式下執行!)並按下「Enter」。請注意,name.dll
應替換爲您要註冊的DLL的名稱。例如,如果您想註冊iexplore.dll,請鍵入regsvr32 iexplore.dll
。
我用同樣的東西,然後它也給出錯誤信息 – 2011-02-04 12:07:32
請記住在提升模式下運行命令提示符。 – Puneet 2014-11-05 05:14:43
`regsvr32` **帶有文件名和擴展名的.dll文件的路徑**,然後按ENTER鍵 – 2015-02-10 10:34:45
嘛,你不指定,如果它是一個32位或64位的DLL,你不包含錯誤信息,但我想這是因爲這知識庫文章中所描述的相同的問題:Error Message When You Run Regsvr32.exe on 64-Bit Windows
那篇文章報價:
此行爲發生在System32文件夾 Regsvr32.exe文件是一個64位版本。當您運行Regsvr32來註冊一個DLL時,默認情況下您使用的是64位版本。那篇文章
解決方案:
要解決此問題,從%SystemRoot%\ SYSWOW64 文件夾運行Regsvr32.exe。例如,鍵入以下命令註冊DLL:
cd \windows\syswow64
regsvr32 c:\filename.dll
爲什麼這不是所選的答案? – 2014-04-10 19:40:43
這確實應該是正確的答案。我可以理解,在他原來的文章中,語法是不正確的,但是Rajkumar評論說他即使在使用正確的語法時也收到錯誤消息。 這需要兩個步驟才能找到正確的答案,而不是一個人搜索。首先選擇正確的答案,然後按照評論鏈,結束這篇文章。 – Rob 2014-08-21 15:28:17
運行字符串中的小問題。如果你想從運行窗口運行,應該是「c:\ windows \ syswow64 regsvr32 c:\ filename.dll」。 – Hightower 2014-10-31 10:38:24
知道錯誤信息將是相當寶貴的。它是爲了提供信息,儘管它對我們沒有任何意義。被迫猜測,我會說這個DLL是一個32位的DirectX過濾器。在這種情況下,這應該是行動的正確的做法:
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
這必須在提升的命令提示符下運行,使UAC不能停止的需要的註冊表訪問。問這個問題了,在superuser.com
如果DLL是32位:
如果DLL是64位:
最後我找到了解決辦法只是運行CMD以管理員身份,然後寫
cd \windows\syswow64
然後寫這
regsvr32 c:\filename.dll
我希望這個問題的答案將幫助您
在x64系統,system32用於64位,syswow64用於32位(不像其他答案中所述的那樣)。 WOW(Windows上的Windows)是在64位子系統下運行的32位子系統)。
這是一個混亂的命名術語,只會造成混淆,但事實就是這樣。
再次...
syswow64是32位,不是64位。
system32是64位,不是32位。
這些目錄中都有一個regsrv32。一個是64位,另一個是32位。 這與odbcad32等人的交易相同。 (如果你想看到32位ODBC驅動程序,它將不會在64位的system32中顯示默認odbcad32)。
打開開始菜單並在搜索框中輸入cmd按住Ctrl + Shift和按回車鍵
這以管理員模式運行命令提示符。
現在鍵入:regsvr32 MyComobject.dll
如果DLL是位:
複製DLL到C:\的Windows \ SYSWOW64 \
在升高命令提示:%windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll
如果該DLL是位:
複製DLL到C:\ WINDOWS \ SYSTEM32 \
在升高命令提示符:%windir%\System32\regsvr32.exe %windir%\System32\namedll.dll
我知道這似乎南轅北轍,但這是它的工作方式。請參閱:
http://support.microsoft.com/kb/249873
引用:「注意在Windows操作系統的64位版本,還有Regsv32.exe文件的兩個版本:
的64位版本是%SYSTEMROOT%\ System32 \ regsvr32.exe
32位版本是%systemroot%\ SysWoW64 \ regsvr32.exe。
「
我剛剛測試了這個非常簡單的方法和它完美的作品 - 但我用內置的Administrator帳戶,所以我不必赴湯蹈火爲提升權限
。以下批處理文件減輕了需要輸入/輸出系統文件夾中的文件移動用戶也離開它到Windows應用的Regsvr32
正確版本
說明:。
在包含庫(-.dll
或-.ax
)文件的文件夾,你想註冊,打開一個新的文本文件,並粘貼在下面的程序之一:
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS
copy %1 C:\Windows\System32
regsvr32 "%nx1"
echo END BATCH FILE
pause
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS
copy %1 C:\Windows\SysWOW64
regsvr32 "%nx1"
echo END BATCH FILE
pause
將您的新文本文件保存爲一批(-.bat
)文件;然後只需將您的-.dll
或-.ax
文件拖放到批處理文件的頂部。
如果UAC沒有給你運行該批處理文件作爲管理員的機會,你可能需要手動提升權限(說明適用於Windows 7):
Create shortcut
;Properties
;Compatibility
選項卡;Run this program as administrator
的方框;-.dll
或-.ax
文件拖放到新快捷方式而不是批處理文件的頂部。就是這樣。我選擇了COPY
而不是MOVE
以防止任何與UAC相關的後續嘗試失敗。成功註冊後應刪除原始庫(-.dll
或-.ax
)文件。
不要擔心到系統文件夾(C:\Windows\System32
或C:\Windows\SysWOW64
)由以前的傳球製造有關副本 - 他們將在每次運行批處理文件時被覆蓋。
除非你跑錯了批處理文件,在這種情況下,你可能會想運行適當的批處理文件之前刪除了錯誤的系統文件夾(C:\Windows\System32
或C:\Windows\SysWOW64
)複印一份。 ..或...
幫助窗口要選擇合適的庫文件被完全合格的目錄位置進行註冊。
C:\Windows\System32
C:\Windows\SysWOW64
%nx1
regsvr32 "C:\Windows\System32\%nx1"
regsvr32 "C:\Windows\SysWOW64\%nx1"
%nx1
運行這個霰彈槍批處理文件,whi將CH(按順序):
C:\Windows\System32
;C:\Windows\System32
中刪除您的庫文件;C:\Windows\SystemWOW64
的原創,未經註冊的副本有一個在Windows 7中的不同登錄爲管理員並沒有給相同的權限運行一個程序作爲管理員的時候。
轉到開始 - 所有程序 - 配件。 右鍵單擊命令窗口,選擇「以管理員身份運行」 現在通過正常註冊的dll:regsrvr32 xxx.dll
雖然這樣做,如果你得到錯誤代碼0x80040201,嘗試在DllRegisterServer failed with the error code 0x80040201的解決方案,但請確保您打開命令提示符爲以管理員身份運行。
這裏的一切都是錯誤的路徑失敗。然後我想起了Win95的舊日子裏的一招。打開.dll所在的程序文件夾,打開C:/ Windows/System32,向下滾動到regsvr32,並將程序文件夾中的dll拖放到rgsrver32上。熱潮,完成。
有關regsvr32的混淆部分是在64位窗口上名稱和路徑沒有改變,但它現在註冊了64位DLL。 SysWOW64中存在32位regsvr32,這個名稱似乎代表64位應用程序。但名稱中的WOW64指的是Windows 64上的Windows,或者更多的Windows 64位上的Windows 32位。當你這樣想起這個名字時,即使它在這種情況下令人困惑,這個名字也是有道理的。
我找不到我原來的源上的MSDN博客但這個維基百科文章http://en.wikipedia.org/wiki/WoW64
你需要運行cmd.exe
在c:\windows\system32\ by administrator
命令中引用: 對於註銷 * .dll文件
regsvr32.exe /u C:\folder\folder\name.dll
註冊 *。dll文件
regsvr32.exe C:\folder\folder\name.dll
這裏是我固定一個Win7的X64機器上這個問題:
「的CoCreateInstance()失敗 Plkease檢查您的註冊表項 CLSID {F088EA74 -2E87-11D3-B1F3-00C0F03C37D3},並確保您登錄作爲管理員」
希望這有助於!
看到這個問題被標記爲「vb.net」,我不得不想知道爲什麼你要註冊一個你在VB.NET中創建的DLL。要與`regsvr32`一起使用,DLL必須導出函數`DllRegisterServer`和`DllUnregisterServer`。根本沒有註冊絕大多數您創建的DLL。 – 2011-02-03 11:41:19
你的意思是什麼不起作用或沒有用?你有錯誤信息嗎?它說什麼? – 2011-02-04 12:08:52