出産前後の痔にはご注意!

ファイル名を指定して実行にて、regsvr32 Mshtml.dllをすると、DllRegisterSeverエントリポイントが見つかりませんでした。このファイルが登録されていない可能性があります。とのメッセージが出て、IEが立ち上がりません。

A 回答 (1件)

管理者権限をもつアカウントで実行していますでしょうか?それでもダメならば、IEのコアDllファイルがちゃんと登録されていない可能性があります。


その場合、、[ファイル名を指定して実行]より"%ProgramFiles%\InternetExplorer\iexplore.exe" /rereg と入力し、[OK] をクリックします。 但し、これはXP SP2の環境が前提です。
これでダメならば、IEの再インストールをお勧めします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qregsvr32.exe による DLLの登録について

質問は2つあります。以下、よろしくお願いします。
1.通常DLLはレジストリに登録しなくても使用できますが、どういう場合に登録が必要なのでしょうか?

2.regsvr32 xxx.dll を実行したところ、以下のようなエラーとなってしまいました。正しく登録するにはどうしたらいいのでしょうか?

xxx.dll は読み込まれましたが、DllRegisterServer エントリポイントが見つかりませんでした。このファイルが登録されていない可能性があります。

以上、よろしくお願いいたします。

Aベストアンサー

ちょっと違うかもしれないけど 大雑把にいうと

特定のソフトだけでなく他のソフトでも共通で使われるかもしれないモノは、登録が必要な事が多い

『エントリポイントが見つかりませんでした』ってことは、登録する必要がないってことです

Qオブジェクト(dll)のレジストリ登録について

いつもお世話になっております。

dllの使い方について教えてください。

vb5.0で開発を進めているのですが、
dllを呼び出す際に、レジストリ登録を
しなければいけないのでしょうか?

いくつかのサイトでは、参照設定際すれば、
実行できているようです。。

実行環境では、レジストリ登録しないと
動かない場合があるということでしょうか?

ご教授、よろしくお願いします。

Aベストアンサー

何のDLLか、によるが。

・あなたがVB5.0で作成したDLLを、開発に使ったマシン以外で使う。
→該当するマシンでレジストリに登録する必要があります。

・あなたがVB5.0で開発を行うにあたり使用するDLLを開発に使ったマシン以外で使う。
→VB5.0で参照設定できるのであれば、それと同じ方法で該当するマシンにDLLをインストールすれば同様にレジストリに登録済みとなる事でしょう。

よくわかんなければ次のようにしてみれば良いだろう。コマンドプロンプトを開いて
C:\>regsvr32 hogehoge.dll
これで「Successful」と出ればActiveX DLLだ。エントリポイントが見つかりません云々と言われたらそれはWin32ネイティブDLLという事。登録に失敗して環境を壊すという事はないのでとりあえず登録を試みてみれば良いのではないかな。

現在では大きく分けてDLLは3つある。
・Win32ネイティブDLL:レジストリ登録不要。パスの通った所に配置する。
・ActiveX DLL:レジストリ情報によって呼び出すDLL。レジストリに登録する。インプロセスCOMサーバと言っても差し支えないかもしれないがあるかもしれない。
・Microsoft .Net アセンブリ:レジストリの登録は不要。単純に実行ファイルと同じパスに配置するか、.Netにおけるレジストリといえるグローバルアセンブリキャッシュに登録する。

何のDLLか、によるが。

・あなたがVB5.0で作成したDLLを、開発に使ったマシン以外で使う。
→該当するマシンでレジストリに登録する必要があります。

・あなたがVB5.0で開発を行うにあたり使用するDLLを開発に使ったマシン以外で使う。
→VB5.0で参照設定できるのであれば、それと同じ方法で該当するマシンにDLLをインストールすれば同様にレジストリに登録済みとなる事でしょう。

よくわかんなければ次のようにしてみれば良いだろう。コマンドプロンプトを開いて
C:\>regsvr32 hogehoge.dll
これで「S...続きを読む

Qregsvr32 Shdocvw.dll で 失敗します

windows Xp SP3
IE6
を使用していて、新しいウインドウが開かなかったり、固まったりするので
イベントログをみたら
エラー発生アプリケーション iexplore.exe、バージョン 6.0.2900.5512、エラー発生モジュール shdocvw.dll、バージョン 6.0.2900.5512、エラー発生アドレス 0x00034254
と表示されていました。
regsvr32 Shdocvw.dll をファイル名を指定して実行を行うと、
Shdocvw.dll の DllRegisterServer は失敗しました。
戻りコード 0x8002801cと表示が出ます。
regsvr32.exe /u Shdocvw.dll は成功します。その後の
regsvr32.exe /i Shdocvw.dll は上記同様の失敗表示が発生します。

urlmon.dll Shdocvw.dll Actxprxy.dll Oleaut32.dll Mshtml.dll Browseui.dll Shell32.dllはそれぞれ成功します。

どなたか再インストールなしに復旧する方法をご教授願います。

よろしくお願いします。

windows Xp SP3
IE6
を使用していて、新しいウインドウが開かなかったり、固まったりするので
イベントログをみたら
エラー発生アプリケーション iexplore.exe、バージョン 6.0.2900.5512、エラー発生モジュール shdocvw.dll、バージョン 6.0.2900.5512、エラー発生アドレス 0x00034254
と表示されていました。
regsvr32 Shdocvw.dll をファイル名を指定して実行を行うと、
Shdocvw.dll の DllRegisterServer は失敗しました。
戻りコード 0x8002801cと表示が出ます。
regsvr32.exe /u Shdocvw.dll は...続きを読む

Aベストアンサー

>Shdocvw.dll の DllRegisterServer は失敗しました。

で検索かけたところ、ここにたどり着きました。
なかなか珍しい現象のようです。

http://support.microsoft.com/kb/281679/

で最終的な解決法は、OSの再インストールになりそうです。
再インストールする前にこちらもお試しください。

http://support.microsoft.com/kb/318378/ja

QCOMコンポーネントって何?

よく、COMコンポーネントって聞くんですが、何のことかわかりません。VBやVBAのような言語名ではないことは、なんとなく分かるのですが・・・。できるだけわかりやすく教えてください。

Aベストアンサー

失礼ですが、クラスをご存知ないのであればCOMは多分
全く理解できないでしょうねぇ

クラスについても、ご自分で勉強が必要だとは思いますが
簡単に説明しておきます。
構造体(属性)に、関数(操作)を加え、カプセル化したものです。
従来のプログラミングでは、変数をばらばらに扱わず、
構造体と呼ばれる型に関係ある変数をまとめて、
プログラム中のデータ構造が明確になるようにしておきました。
そこで、この構造体に専属の関数を加えてしまえば、
その構造体は単独で自分の面倒をみることが出来るようになります。
それがクラスです。
その結果、プログラム中のデータや処理が、クラス単位で整理され、
それぞれ部品のように組み替えが可能になりました。

このように、クラス単位にプログラムを分割することで
巨大なプログラムを明瞭にする言語をオブジェクト指向言語といいます。

また、クラスには親と子があり、「継承」という考えを用いて
どんどんバージョンアップや特化を行うことが容易です。

VBで説明すると、
Dim value as A
として変数を宣言した場合、クラスは「A」です。
valueはオブジェクトや、インスタンスと呼ばれます。
valueを使って、Aに含まれる関数を呼び出して、valueを
操作することが出来ます。
value.Init()
等。

ざっくり説明するとこんな感じです。
詳細については、各言語の書籍を参照してください。

このようにして作ったクラスを、
・他の言語から使いたい
・ネットワーク経由で使いたい
などと言った機能を実現する、Microsoft提供の方法の一つが、
COMやDCOMと呼ばれるものです。
COMは、他のプログラムからの使いまわしに強いので、
一度作っておけば、VB、Delphiは勿論、VBScript、JavaScrips、WSHなどから
呼び出しが可能です。
また、COM自体のバージョンが上がっても、それを呼び出してる
プログラム自体には変更の必要がありません。

失礼ですが、クラスをご存知ないのであればCOMは多分
全く理解できないでしょうねぇ

クラスについても、ご自分で勉強が必要だとは思いますが
簡単に説明しておきます。
構造体(属性)に、関数(操作)を加え、カプセル化したものです。
従来のプログラミングでは、変数をばらばらに扱わず、
構造体と呼ばれる型に関係ある変数をまとめて、
プログラム中のデータ構造が明確になるようにしておきました。
そこで、この構造体に専属の関数を加えてしまえば、
その構造体は単独で自分の面倒をみることが出...続きを読む

QVB2008でのDLL作成方法について

はじめまして、はじめて投稿します。

初心者なので変な質問をしていたらすいません。VB2008を使用しています。

VBで作成したDLLファイルをLabviewで使用したいと思っています。
ただVB6.0でActiveX DLLを作成する方法はわかるのですが、VB2008で作成する方法がわかりません。
クラスライブラリでプログラムを作成し、DLLにすることはできるのです・
しかしレジストリに登録しようと思い「regsvr32 ファイルのパス**.dll」と入力したところ「**.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした」と出ます。

調べてもVB2008でのActiveX DLL作成方法が見つからなくて困っています!!!
わかるかた、よろしくお願いいたします。

Aベストアンサー

GENGUIDはVB2008のインストールフォルダーにあると思いますので
以下の手順でツールに登録してみましょう

ツール > 外部ツール > 追加(A)をクリック

タイトルに『GENGUID』
コマンドの右端の『...』ボタンをクリック
開いたダイアログのフォルダーを1階層上がってToolsを選択
ここに『GENGUID.EXE』があるのでこれを選択して『開く(またはOK)』
初期ディレクトリに コマンド部分の GENGUID.EXEの手前までをコピーして 貼り付け
OKをクリック

といった手順でいいでしょう

QCOM相互運用機能のON,OFFによるDLLの差異

Visual Studio 2010で、VB.NETのクラスライブラリを作成して、.NETとCOMの両方で使用しているのですが以下のことがよく分かりませんので教えてください。

同じプロジェクトのDLLファイルをVB.NETなどから.NET用のDLLとして使っているだけでなく、VBAなどからもCOM用のDLLとして使っているのですが、プログラムに変更があると、COM相互運用機能の登録がONの場合とOFFの場合の両方で2回ビルドして各々のDLLファイルを別に用意して使い分けていました。しかし、先日、COM相互運用機能の登録をONにしてビルドしたDLLでもVB.NETなどから.NET用のDLLとして参照できてしまうことが分かりました。.NET用のDLLとして利用する場合には、COM相互運用機能の登録をON,OFFに関係なくどちらでビルドしたDLLファイルでも使用できるのでしょうか。たまたま今は参照できているだけで将来的には使えなくなる可能性があるので、.NET用のDLLとして使用する場合には、COM相互運用機能の登録をOFFにしてビルドしたDLLを使用するべきなのかがよく分かりません。つまり、下記の(A)と(B)のどちらが正しいのかがよく分かりませんので教えてください。

(A) VB.NETとして使用する場合には、COM相互運用機能の登録をON,OFFに関係なく、どちらでビルドしたDLLファイルでも使用できるが、COMとして利用する場合には、COM相互運用機能の登録をONにして、ビルドして作成したDLLファイル(.dll)とタイプ ライブラリ ファイル(.blt)を使用する。VB.NETとしてもCOMとしても利用する場合には、COM相互運用機能の登録をONの方だけビルドすればよい。

(B) VB.NETとして利用する場合には、COM相互運用機能の登録をOFFしてビルドしたDLLを使用する。COMとして利用する場合には、COM相互運用機能の登録をONにしてビルドして作成したDLLファイル(.dll)とタイプ ライブラリ ファイル(.blt)を使用する。VB.NETとしてもCOMとしても利用する場合には、COM相互運用機能の登録をON,OFFの両方で2度ビルドする必要がある。

なお、(A)が正しい場合にのみ、分かる範囲でいいので教えてほしいのですが、
コードを何も変更しないでビルドしてもDLLファイル(.dll)は更新されませんが、COM相互運用機能の登録のONとOFFを変更するだけでDLLファイル(.dll)は更新されています。COM相互運用機能の登録をONにしてビルドして作成されたDLLファイル(.dll)は、COM相互運用機能の登録をOFFにしてビルドして作成されたDLLファイル(.dll)と何が異なるのでしょうか。

よろしくお願いします。

Visual Studio 2010で、VB.NETのクラスライブラリを作成して、.NETとCOMの両方で使用しているのですが以下のことがよく分かりませんので教えてください。

同じプロジェクトのDLLファイルをVB.NETなどから.NET用のDLLとして使っているだけでなく、VBAなどからもCOM用のDLLとして使っているのですが、プログラムに変更があると、COM相互運用機能の登録がONの場合とOFFの場合の両方で2回ビルドして各々のDLLファイルを別に用意して使い分けていました。しかし、先日、COM相互運用機能の登録をONにしてビルドしたDLL...続きを読む

Aベストアンサー

(A)です。
プロジェクトのプロパティのCOM相互運用機能というのは,単純にアセンブリのComVisible属性の引数を変更する役割しかありません。
これは,AssemblyInfo.vbの中に記述があります。
また,ComVisible属性はクラス単位で設定できるため,アセンブリのComVisibleがFalseであっても,
特定のクラスのみCOMに公開することができます。

MSDN: ComVisibleAttribute クラス (System.Runtime.InteropServices)
http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.comvisibleattribute

ComVisible属性の引数がTrueであろうとFalseであろうと,アセンブリであることには変わりがないので,
.NET Frameworkから利用する場合にランタイム呼び出し可能ラッパー (RCW) を経由することはありませんし,
そのアセンブリが.NET Frameworkのメソッドを呼び出すのにCOM呼び出し可能ラッパー (CCW) を経由することもありません。

(A)です。
プロジェクトのプロパティのCOM相互運用機能というのは,単純にアセンブリのComVisible属性の引数を変更する役割しかありません。
これは,AssemblyInfo.vbの中に記述があります。
また,ComVisible属性はクラス単位で設定できるため,アセンブリのComVisibleがFalseであっても,
特定のクラスのみCOMに公開することができます。

MSDN: ComVisibleAttribute クラス (System.Runtime.InteropServices)
http://msdn.microsoft.com/ja-jp/library/system.runtime.interopservices.comvisibleattribute

Co...続きを読む

QVB.NETでActiveX(OCXファイル)作成

VB6のプロジェクトファイルで作成したOCXファイルがございます。これをVB.NETに移行したいの
ですが、アップグレードウィザードを使用しても同様のOCXファイルは作成できますか?
また、プロジェクトを新規作成する方法を教えていただけませんか?

宜しくお願い致します。

Aベストアンサー

>> .Netは.NET Frameworkのバージョンごどにテストが必要になります。
>> なので、C++でActiveXコントロール(OCXファイル)を作成することを検討します。
>> C++はActiveXコントロールのサポートをしているのは何故ですか?

単純に殆どの言語を.NET上で動くように改変したため、
C++以外ではネイティブなプログラムを作成できなくなったから、
自然にそうなったのだと思います。

逆に言えば通常のC++が、現在のVSに実装されていることの方が異色で、
互換性のために残されている物だという認識です。

>> また、VB6→C++のコード変換ツールがございましたら、教えていただけませんか?
こちらについては分かりません。

仮に存在していたとしても、VBとVC++ではメモリの管理方法が全く異なりますので、
両方の言語を扱える人間が作業するべきだと思います。

QVBから参照できないCのDLLを使用する方法

Cで作成されたDLLがあるのですが、VBから参照設定しても「指定されたファイルへの参照は登録できません。」と怒られます。
そのようなDLLをどうしてもVBから使用したい場合はどうすれば良いでしょうか?

直接は無理だとしても、間に何かをかましてできると思うのですが、良い方法があれば教えてください。

ちなみに VB6 です。

よろしくお願いします。

Aベストアンサー

>あります。
>とりあえず、DLLファイルと同様に C:\WINNT\System32 フォルダへ格納しました。

となるとやはりVBから直に呼び出すことはできません。
DLLでもスタティックリンクで使うものがあり
VC++からは呼び出すことができます。
そこでVBから呼び出すには間にクッションをおく必要があります。
VB←VC++で作ったDLLを呼び出すDLL(クッション)←元のDLL

.hや.libはVC++でスタティックリンクする際に必要となる
ファイルでVBからは使用できません。

QVB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?

VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、
「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する)
は、VB.NETでは使用できないようです。(相当する定数はない?)

「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?

Aベストアンサー

思いっきり、例文に「COM1」と書いてますが、USBに書き換えてくださいね^^;

それとふと思ったのですが
udtReaderWriterModeWithoutEncryption
変数は構造体ですよね?

メンバが
lngPortName
lngBardRate
というのは、型宣言をINTEGERに変換してますよね?

ちょっとばかり不安に思ったので、追記しておきました。

参考URL:http://okweb.jp/kotaeru.php3?q=1257613

Qregsvr32でActiveX登録を行ったocx

regsvr32 で ActiveX登録を行った ocx がリソースエデイタ「のActiveX コントロールの挿入」で使用できなくて困ってます。

開発環境は VisualStudio2005 の VC++ で、Version は 8.0.50727.867 になります。

レジストリエディタで確認すると以下のレジストリキーで登録されていることを確認できるのですが。

HKEY_CLASSES_ROOT\CLSID\{9BD4A8F2-56BA-11D3-915D-00C04F797034}

『ActiveX コントロール テスト コンテナ』の「コントロールの登録」ダイアログで表示される一覧中には含まれていません。
また、「コントロールの登録」ダイアログで「登録」ボタンを押しても一覧に追加も行われません

なんとなくセキュリティっぽい事までは分かるのですが、どなたかヒントをお持ちでしょうか?

Aベストアンサー

OSはWindows7でしょうか?
もしかしたらUAC(ユーザーアカウント制御)の設定が原因かもしれません。
ユーザーアカウント制御の設定を通知しないに設定後、パソコンを再起動して
再度レジストリ登録しても同じ現象でしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング