Saya telah mencoba menggunakan kode berikut:
cd c:\windows\system32
regsvr32.exe dllname.ax
Tapi ini tidak berhasil untuk saya. Bagaimana cara mendaftarkan file DLL di Windows 7 dengan prosesor 64-bit?
Saya telah mencoba menggunakan kode berikut:
cd c:\windows\system32
regsvr32.exe dllname.ax
Tapi ini tidak berhasil untuk saya. Bagaimana cara mendaftarkan file DLL di Windows 7 dengan prosesor 64-bit?
Jawaban:
Ketik regsvr32 name.dll
di Command Prompt (dijalankan dalam mode tinggi!) Dan tekan "Enter." Perhatikan bahwa name.dll
harus diganti dengan nama DLL yang ingin Anda daftarkan. Misalnya, jika Anda ingin mendaftarkan iexplore.dll, ketik regsvr32 iexplore.dll
.
regsvr32
jalur file .dll dengan nama file dan ekstensi dan tekan enter
Nah, Anda tidak menentukan apakah itu dll 32 atau 64 bit dan Anda tidak menyertakan pesan kesalahan, tetapi saya akan menebak bahwa itu masalah yang sama seperti yang dijelaskan dalam artikel KB ini: Pesan Kesalahan Saat Anda Menjalankan Regsvr32.exe pada Windows 64-Bit
Kutipan dari artikel itu:
Perilaku ini terjadi karena berkas Regsvr32.exe di folder System32 adalah versi 64-bit. Ketika Anda menjalankan Regsvr32 untuk mendaftarkan DLL, Anda menggunakan versi 64-bit secara default.
Solusi dari artikel itu:
Untuk mengatasi masalah ini, jalankan Regsvr32.exe dari map% SystemRoot% \ Syswow64. Misalnya, ketikkan perintah berikut untuk mendaftarkan DLL:
cd \windows\syswow64
regsvr32 c:\filename.dll
Jika DLL adalah 32 bit:
Salin DLL ke C: \ Windows \ SysWoW64 \
Dalam ditinggikan command prompt:%windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll
jika DLL adalah 64 bit:
Salin DLL ke C: \ Windows \ System32 \
Dalam ditinggikan command prompt:%windir%\System32\regsvr32.exe %windir%\System32\namedll.dll
Saya tahu ini kelihatannya salah, tapi begitulah cara kerjanya. Lihat:
http://support.microsoft.com/kb/249873
Kutipan: "Catatan Pada versi 64-bit sistem operasi Windows, ada dua versi file Regsv32.exe:
Versi 64-bit adalah% systemroot% \ System32 \ regsvr32.exe.
Versi 32-bit adalah% systemroot% \ SysWoW64 \ regsvr32.exe.
"
Pada sistem x64, system32 untuk 64 bit dan syswow64 untuk 32 bit (bukan sebaliknya seperti yang dinyatakan dalam jawaban lain). WOW (Windows di Windows) adalah subsistem 32 bit yang berjalan di bawah subsistem 64 bit).
Ini berantakan dalam istilah penamaan, dan hanya berfungsi untuk membingungkan, tapi begitulah adanya.
Lagi ...
syswow64 adalah 32 bit, BUKAN 64 bit.
system32 adalah 64 bit, BUKAN 32 bit.
Ada regsrv32 di setiap direktori ini. Satu adalah 64 bit, dan yang lainnya 32 bit. Ini adalah kesepakatan yang sama dengan odbcad32 dan et al. (Jika Anda ingin melihat driver ODBC 32-bit yang tidak akan muncul dengan odbcad32 default di system32 yaitu 64-bit.)
regsvr32
akan mengurus detailnya, secara teoritis akan mendeteksi apakah Anda mendaftarkan DLL 32 bit atau 64 bit: stackoverflow.com/questions/18935163/…
Buka menu start dan ketik cmd ke dalam kotak pencarian. Tahan Ctrl + Shift dan tekan Enter
Ini menjalankan Command Prompt dalam mode Administrator.
Sekarang ketik: regsvr32 MyComobject.dll
Akhirnya saya menemukan solusinya jalankan CMD sebagai administrator lalu tulis
cd \windows\syswow64
lalu tulis ini
regsvr32 c:\filename.dll
Saya harap jawaban itu akan membantu Anda
Jika DLL adalah 32 bit:
jika DLL adalah 64 bit:
Semuanya di sini gagal karena jalan yang salah. Kemudian saya teringat trik dari masa lalu Win95. Buka folder program tempat .dll berada, buka C: / Windows / System32 gulir ke bawah ke regsvr32 dan seret dan jatuhkan dll dari folder program ke rgsrver32. Boom, selesai.
Mengetahui pesan kesalahan akan lebih bermanfaat. Ini dimaksudkan untuk memberikan info, meskipun tidak masuk akal bagi Anda, hal itu bagi kami. Dipaksa untuk menebak, menurut saya DLL adalah filter DirectX 32-bit. Dalam hal ini ini harus menjadi tindakan yang tepat:
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
Ini harus dijalankan pada prompt perintah yang ditinggikan sehingga UAC tidak dapat menghentikan akses registri yang diperlukan. Ajukan lebih banyak pertanyaan tentang ini di superuser.com
Saya baru saja menguji metode yang sangat sederhana ini dan berfungsi dengan sempurna - tetapi saya menggunakan akun Administrator bawaan, jadi saya tidak perlu melewati rintangan untuk mendapatkan hak istimewa yang lebih tinggi.
File batch berikut mengurangi kebutuhan pengguna untuk memindahkan file masuk / keluar dari folder sistem. Itu juga menyerahkan pada Windows untuk menerapkan versi yang tepat Regsvr32
.
PETUNJUK:
Di folder yang berisi file perpustakaan ( -.dll
atau -.ax
) yang ingin Anda daftarkan, buka file teks baru dan tempelkan salah satu rutinitas di bawah ini:
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
Simpan file teks baru Anda sebagai file batch ( -.bat
); lalu cukup seret-dan-jatuhkan file -.dll
atau Anda -.ax
di atas file batch.
Jika UAC tidak memberi Anda kesempatan untuk menjalankan file batch sebagai Administrator, Anda mungkin perlu meningkatkan hak akses secara manual (instruksi untuk Windows 7):
Create shortcut
;Properties
;Compatibility
tab;Run this program as administrator
;-.dll
atau Anda -.ax
di atas pintasan baru, bukan di file batch.Itu dia . Saya memilih COPY
daripada MOVE
mencegah kegagalan upaya tindak lanjut terkait UAC. Pendaftaran yang berhasil harus diikuti dengan penghapusan file perpustakaan ( -.dll
atau -.ax
) asli.
Jangan khawatir tentang salinan yang dibuat ke folder sistem ( C:\Windows\System32
atau ) oleh lintasan sebelumnya - salinan C:\Windows\SysWOW64
tersebut akan ditimpa setiap kali Anda menjalankan file batch.
Kecuali Anda menjalankan file batch yang salah , dalam hal ini Anda mungkin ingin menghapus salinan yang dibuat ke folder sistem yang salah ( C:\Windows\System32
atau C:\Windows\SysWOW64
) sebelum menjalankan file batch yang tepat, ... atau ...
Bantu Windows memilih file perpustakaan yang tepat untuk mendaftar dengan sepenuhnya memenuhi syarat lokasi direktorinya.
C:\Windows\System32
C:\Windows\SysWOW64
%nx1
regsvr32 "C:\Windows\System32\%nx1"
regsvr32 "C:\Windows\SysWOW64\%nx1"
%nx1
dari jalur folder sistemJalankan file batch shotgun ini, yang akan (secara berurutan):
C:\Windows\System32
;C:\Windows\System32
;C:\Windows\SystemWOW64
Run as administrator
berwarna abu-abu ketika saya membuat pintasan untuk file bat. Saya masuk sebagai administrator. Juga, apakah itu %nx1
atau %n1
?
Ada perbedaan di Windows 7. Login sebagai Administrator tidak memberikan hak yang sama seperti saat menjalankan program sebagai Administrator.
Pergi ke Start - All Programs - Accesories. Klik kanan pada jendela Command dan pilih "Run as administrator" Sekarang daftarkan dll secara normal melalui: regsrvr32 xxx.dll
Dan saat melakukan ini, jika Anda mendapatkan kode kesalahan 0x80040201, coba solusi di DllRegisterServer gagal dengan kode kesalahan 0x80040201 , tetapi pastikan, Anda membuka command prompt sebagai Run as Administrator .
Bagian dari kebingungan tentang regsvr32 adalah bahwa pada jendela 64-bit nama dan jalur tidak berubah, tetapi sekarang mendaftarkan DLL 64-bit. Regsvr32 32-bit ada di SysWOW64, nama yang tampaknya mewakili aplikasi 64-bit. Namun WOW64 dalam namanya mengacu pada Windows pada Windows 64, atau lebih tepatnya Windows 32-bit pada Windows 64-bit. Ketika Anda memikirkannya seperti ini, nama itu masuk akal meskipun dalam konteks ini membingungkan.
Saya tidak dapat menemukan sumber asli saya di blog MSDN tetapi dirujuk di artikel Wikipedia ini http://en.wikipedia.org/wiki/WoW64
Berikut adalah cara saya memperbaiki masalah ini pada mesin Win7 x64:
"CoCreateInstance () gagal Silakan periksa entri registri Anda CLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3} dan pastikan Anda masuk sebagai administrator"
Semoga ini membantu !
regsvr32
, DLL harus mengekspor fungsiDllRegisterServer
danDllUnregisterServer
. Tidak ada daftar sebagian besar DLL yang Anda buat sama sekali.