32ビットのCOMコンポーネントDLLがあり、このDLLはDelphiで記述されています。 Win32 DLLです。 .NETプラットフォームのVisual C#プロジェクトでこのDLLを使用したい。
このDLLへの参照をプロジェクトに追加できません。 Windows 7 64ビットの管理者としてコマンドプロンプトに登録しようとしましたが、次のエラーが表示されます。
モジュールがregsvr32.exeのx86(32ビット)またはx64(64ビット)バージョンと互換性があるかどうかを確認します。
まず、DLLファイルをwindows/system32フォルダーに配置します。次に、管理者としてコマンドプロンプトを開きます。 regsvr32 huginalpha.dll
と書いてこのコマンドを実行します。しかし、エラーが発生します。私に何ができる?
問題は、64ビットバージョンのregsvr32で32ビットライブラリを登録しようとしている可能性があります。 このKB記事を参照 -32ビットライブラリの場合、windows\SysWOW64からregsvr32を実行する必要があります。
Windows 64ビットプラットフォームの32ビットDLLの場合:
c:\windows\sysWOW64\
にコピーしますCMDウィンドウで:
CD c:\windows\sysWOW64\
regsvr32 whatever.dll
次に、32ビットDLLで32ビットregsvr(c:\windows\sysWOW64\regsvr.exe
)を実行します。
物事は今変わったと思います。 MyWin 2008 R2Boxでは、64ビットバージョンがターゲットのビット数を検出できるため、64ビットregsvr32で32ビットdllを登録できました。 %SYSWOW%フォルダーから新しい32ビットregsvr32を生成します。
http://onerkaya.blogspot.com/2013/03/register-com-dll-on-windows-64-bit.html
次のエラーのため、CLSID {...}のコンポーネントのCOMクラスファクトリを取得できませんでした:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。
これを試してみると
c:\ windows\system32\regsvr32.exe <ファイル名> .dll
あなたはまだこの例外を取ることができます。 IISプールの詳細設定、32ビットアプリケーションの有効化:true;)
Windows 7 32ビットでcomm .dllまたは.ocxを登録するには、次の手順を実行します。
.dllまたは.ocxをc:\windows\system32
にコピーします。[実行]メニューにcmdと入力します。cmd.exeを検索し、右クリックして[Run as Administrator
]をクリックします。
c:\windows\system32
にプロンプトが表示されます
タイプ
regsvr32 ocxname.ocx
は.ocxを登録します
または
regsvr32 dllname.dll
と入力して.dllを登録します
Framework64で実行してみてください。
例:
32ビット
C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe D:\DemoIconOverlaySln\Demo\bin\Debug\HandleOverlayWarning\AsmOverlayIconWarning.dll /codebase
64ビット
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe D:\DemoIconOverlaySln\Demo\bin\Debug\HandleOverlayWarning\AsmOverlayIconWarning.dll /codebase
dllをsystem32またはsyswow32ディレクトリに配置し、適切なregsvr32を使用して登録します。エラーの登録に失敗したにもかかわらず、WIN 7 64を再起動し、vbアプリがdllを正常にロードしたことを示しました!!
RegSvr32の両方のバージョン(32ビットおよび64ビット)で「モジュールはこのバージョンのWindowsと互換性があります」というエラーが表示されました。 Server 2008 R2(x64)でDLL(32ビット)用に構築されたXPを登録しようとしていましたが、Regsr32解決策はどれもうまくいきませんでした。しかし、適切な.Netでアセンブリを登録することは私にとって完璧に機能しました。 C:\ Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe
問題が解決しない場合は、regsvr32のSysWoW64バージョンを使用するときに、すべてのライブラリの依存関係が同じアーキテクチャを持っていることを確認してください。たとえば、
regsvr32 lib_x86.dll
はライブラリの登録に失敗し、%SystemRoot%\SysWow64\regsvr32 lib_x86
も失敗します。ロードしようとしますlib_x86
Dependency Walkerアプリケーションに依存関係のリスト全体を表示します。いずれかのアイテムに64ビットアーキテクチャがある場合、その理由、regsvr32
は32ビットライブラリのロードに失敗します。
以下のリンクがその日を救った
https://msdn.Microsoft.com/en-us/library/ms229076(VS.80).aspx
上記のリンクで指定されている関連するRegSvcsを使用します
c:\ Windows\Microsoft。 NET\Framework\v4.0.30319\RegSvcs.exe ....\Shared\Your.dll /tlb:Your.tlb