web-dev-qa-db-ja.com

どうやって登録するのですか DLL Windows 7の64ビットのファイル?

私は次のコードを使おうとしました:

cd c:\windows\system32
regsvr32.exe dllname.ax

しかし、これは私のために働いていません。 64ビットプロセッサを搭載したWindows 7でDLLファイルを登録する方法を教えてください。

99
Rajkumar Reddy

コマンドプロンプトにregsvr32 name.dllと入力し(昇格モードで実行されます)、 "Enter"を押します。 name.dllは、登録するDLLの名前に置き換えてください。たとえば、iexplore.dllを登録する場合は、regsvr32 iexplore.dllと入力します。

67
Harold SOTA

まあ、それが32ビットDLLか64ビットDLLかを指定せず、エラーメッセージを含めませんが、このKB記事で説明されているのと同じ問題だと思います: エラーメッセージ64ビットWindowsでRegsvr32.exeを実行

その記事からの引用:

この現象は、System32フォルダー内のRegsvr32.exeファイルが64ビットバージョンであるために発生します。 Regsvr32を実行してDLLを登録するとき、デフォルトでは64ビットバージョンを使用しています。

その記事からの解決策:

この問題を解決するには、%SystemRoot%\ Syswow64フォルダーからRegsvr32.exeを実行します。たとえば、次のコマンドを入力してDLLを登録します。cd \windows\syswow64regsvr32 c:\filename.dll

195
Hans Olsson

DLLが32ビットの場合

DLLをC:\ Windows\SysWoW64 \にコピーします。
raised コマンドのプロンプトで:%windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll

DLLが64ビットの場合

DLLをC:\ Windows\System32 \にコピーします。
raised コマンドのプロンプトで:%windir%\System32\regsvr32.exe %windir%\System32\namedll.dll

私はそれが間違ったやり方であるように思えますが、それはそれが働く方法です。見る:

http://support.Microsoft.com/kb/249873
引用: "64ビット版のWindowsオペレーティングシステムでは、Regsv32.exeファイルには2つのバージョンがあります。
64ビットバージョンは%systemroot%\ System32\regsvr32.exeです。
32ビットバージョンは%systemroot%\ SysWoW64\regsvr32.exeです。
"

101
Liam

X64システムでは、system32は64ビット用、syswow64は32ビット用です(別の回答で述べたように、その逆ではありません)。 WOW(Windows on Windows)は、64ビットサブシステムの下で動作する32ビットサブシステムです。

それは命名の面では混乱であり、混乱させるだけの役目を果たしますが、それがそのままです。

また….

syswow64は32ビットで、64ビットではありません。

system32は64ビットで、32ビットではありません。

これらの各ディレクトリにregsrv32があります。 1つは64ビット、もう1つは32ビットです。それはodbcad32と他と同じ扱いです。 (32ビットの _ odbc _ ドライバがsystem32のデフォルトのodbcad32(64ビット)で表示されない場合)

29
phill

スタートメニューを開き、検索ボックスに「cmd」と入力しますCtrl + Shiftを押しながらEnterを押します

これにより、コマンドプロンプトが管理者モードで実行されます。

今入力します。regsvr32 MyComobject.dll

8
Sushant Rath

最後に、私は管理者としてCMDを実行し、それから次のように書くだけの解決策を見つけました。

cd \windows\syswow64

それからこれを書く

regsvr32 c:\filename.dll

その答えがあなたのお役に立てばと思っています。

6
Hayder Chebaane

DLLが32ビットの場合:

  1. DLLをC:\ Windows\SysWoW64 \にコピーします。
  2. 昇格されたcmdの場合:%windir%\ SysWoW64\regsvr32.exe%windir%\ SysWoW64\namedll.dll

DLLが64ビットの場合:

  1. DLLをC:\ Windows\System32 \にコピーします。
  2. 高められたcmdの場合:%windir%\ System32\regsvr32.exe%windir%\ System32\namedll.dll
6
Dragos

ここのすべてが間違った道として失敗していました。それから私は昔のWin95日からのトリックを思い出しました。 .dllが存在するプログラムフォルダを開き、C:/ Windows/System32を開いてregsvr32までスクロールし、プログラムフォルダからdgsをrgsrver32にドラッグアンドドロップします。ブーム、完了。

5
ohm1

そして、これをしながら、エラーコード0x80040201を得た場合、DllRegisterServerはエラーコード0x80040201で失敗しましたが、確かめてください、あなたはコマンドPrompt as Run as Administrator)を開いてください。

3
SHAKIR SHABBIR

エラーメッセージを知ることはかなり有益です。情報を提供することを目的としていますが、それはあなたには意味がありませんが、私たちには意味があります。推測を余儀なくされて、私はDLLが32ビットDirectXフィルタであると言うでしょう。その場合、これは正しい行動方針であるはずです。

cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax

UACが必要なレジストリアクセスを停止できないように、これは昇格されたコマンドプロンプトで実行する必要があります。 superuser.comでこれについてもっと質問する

3
Hans Passant

cmd.exec:\windows\system32\ by administratorで実行する必要があります

コマンド: 登録解除の場合 * .dllファイル

regsvr32.exe /u C:\folder\folder\name.dll

登録用 * .dllファイル

regsvr32.exe C:\folder\folder\name.dll
3
lails

私はこの非常に単純な方法をテストしました そしてそれは完璧に動作します - しかし私はビルトインAdministratorアカウントを使用するので、私は昇格された特権のためにフープを飛び越える必要はありません。

次のバッチファイルは、システムフォルダにファイルを移動する必要性からユーザーを解放します。また、適切なバージョンのRegsvr32を適用することはWindowsに任されています。

注意事項

  • 登録したいライブラリ(-.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用です)。

    1. バッチファイルを右クリックします。
    2. Create shortcutを選択してください。
    3. ショートカットを右クリックしてください。
    4. Propertiesを選択してください。
    5. Compatibilityタブをクリックしてください。
    6. Run this program as administratorというラベルの付いたボックスをチェックします。
    7. -.dllまたは-.axファイルをバッチファイルの代わりに新しいショートカットの上にドラッグアンドドロップします。

これで終わりですCOPYの代わりにMOVEを選びました。これは、UAC関連のフォローアップの試みが失敗するのを防ぐためです。登録が成功したら、元のライブラリ(-.dllまたは-.ax)ファイルを削除します。

心配しないでください 前回のパスでシステムフォルダ(C:\Windows\System32またはC:\Windows\SysWOW64)に作成されたコピーについて - バッチファイルを実行するたびに上書きされます。

間違ったバッチファイルを実行したのでない限り 、その場合は、適切なバッチファイルを実行する前に、間違ったシステムフォルダ(C:\Windows\System32またはC:\Windows\SysWOW64に作成したコピーを削除します。 、...または...

  • Windowsがディレクトリの場所を完全修飾することによって登録する正しいライブラリファイルを選択するのを助けます。

    1. 右側のバッチファイルからシステムフォルダのパスをコピーします。
      • 64ビットの場合:C:\Windows\System32
      • 32ビットの場合:C:\Windows\SysWOW64
    2. %nx1 の前にくるように次の行に貼り付けます。
      • 64ビットの場合:regsvr32 "C:\Windows\System32\%nx1"
      • 32ビットの場合:regsvr32 "C:\Windows\SysWOW64\%nx1"
        • 引用符内にパスを貼り付ける
        • システムフォルダパスから%nx1を分けるためにバックスラッシュを挿入します
      • または ...

  • このショットガンバッチファイルを実行します。

    1. 中止された登録プロセスのクリーンアップを実行する
      • あなたのライブラリファイルによって行われた登録プロセスを元に戻します。
      • いずれかのシステムフォルダに保存されているライブラリファイルのコピーをすべて削除します。
      • この時点でバッチファイルを終了できるように一時停止します(必要に応じて別のファイルを実行します)。
    2. ライブラリファイルに64ビットインストールを試みます。
      • ライブラリファイルをC:\Windows\System32にコピーします。
      • ライブラリファイルを64ビットプロセスとして登録します。
      • この時点でバッチファイルを終了できるように一時停止します。
    3. 64ビットインストールを元に戻す
      • ライブラリファイルの登録を64ビットプロセスとして元に戻します。
      • C:\Windows\System32からあなたのライブラリファイルを削除してください。
      • この時点でバッチファイルを終了できるように一時停止します(必要に応じて別のファイルを実行します)。
    4. ライブラリファイルに32ビットインストールを試みます。
      • ライブラリファイルをC:\Windows\SystemWOW64にコピーします
      • ライブラリファイルを32ビットプロセスとして登録します。
      • この時点でバッチファイルを終了できるように一時停止します。
    5. 未登録のライブラリファイルのコピーを削除する
3

Windows 7には違いがあります。管理者としてログオンすることは=ではありません管理者としてプログラムを実行するときと同じ権限を与えます。

スタート - すべてのプログラム - アクセサリに移動します。 [コマンド]ウィンドウを右クリックして[管理者として実行]を選択します。通常どおりDLLを登録します。regsrvr32 xxx.dll

Regsvr32に関する混乱の一部は、64ビットウィンドウでは名前とパスが変更されていないことですが、現在は64ビットDLLを登録しています。 32ビットのregsvr32はSysWOW64に存在します。これは64ビットのアプリケーションを表すように見えます。ただし、名前のWOW64は、Windows 64上のWindows、またはWindows 64ビット上のより具体的にはWindows 32ビットを指します。このように考えると、この文脈で混乱していても名前は意味があります。

MSDNブログで私のオリジナルのソースを見つけることができませんが、それはこのウィキペディアの記事で参照されています http://en.wikipedia.org/wiki/WoW64

2
Adam

Win7 x 64マシンでこの問題を解決する方法は次のとおりです。

1 - エラーメッセージ:

CoCreateInstance()が失敗しましたPlkeaseのレジストリエントリCLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3}を確認し、管理者としてログインしていることを確認してください

2 - 手順を修正します。

  • Cmd.exeを起動/入力し、「管理者として実行」を選択します。
  • 入力:regsvr32/s C:\ Program Files\Autodesk\3ds Max Design 2015\atl.dll regsvr32/s C:\ Program Files\Autodesk\3ds Maxデザイン2015\MAXComponents.dll
  • 勝利7を再起動して、再びビジネスに戻ってください!

お役に立てれば !

1
LAOMUSIC ARTS