夏が終わったと感じる瞬間って、どんな時?

お世話になります。

WinXPの環境にて、
VB6.0で作成されたDLLを.NETにバージョンアップさせようとしているのですが、
regsvr32コマンドを使用してDLLを置き換えようとすると、
以下のようなエラーメッセージが出てしまい、実行時もエラーになってしまいます。
⇒「C:\○○\○○.dll was loaded, but the DllRegisterServer entry point was not found.

DllRegisterServer may not be exported, or a corrupt version of C:\○○\○○.dll may be in memory. Consider using PView to detect and remove it.」

DLLを呼び出しているEXEの方は6.0のままなのですが、
そもそもEXEの方も.NETにバージョンアップさせないといけないのでしょうか?
本などで片っ端から調べて見ましたが、技術的に可能なのかどうかも分からない状況で困っています。

原因・解決方法等をご存知の方がいらっしゃいましたら、
どうぞ宜しくお願いいたします。

A 回答 (2件)

VB6のDLLと.NETでのDLLは(あくまでも通常作成される方法でですが)


・ActiveX
・COM
という、異なる種別のものです。


利用する方法も全く違いますが、無理ではありません。

スタートメニューから
[Visual Studio .NET コマンド プロンプト]
を探しだしてください。

であーだこーだと操作をするとタイプライブラリを作成することが出来ます。

タイプライブラリを吐き出してしまえば、参照設定も可能です。



※タイプ ライブラリ エクスポータ(Tlbexp.exe)
http://msdn2.microsoft.com/ja-jp/library/hfzzah2 …

※.NETコンポーネントをVB6から使用するための方法
http://www.sev.or.jp/ijupiter/world/dc_interrop/ …

※本家MSDN
http://msdn.microsoft.com/library/default.asp?ur …


付属のヘルプにも、tlbexpで検索をしたら、引数の詳細があると思います。
    • good
    • 0
この回答へのお礼

なるほど!同じDLLでも、そのような違いがあるのですね。
大変勉強になります。教えていただいた方向でやってみようと思います。ありがとうございました!

お礼日時:2006/05/22 16:01

VB6 の DLLと .NET のDLLは、全然違うので、


.NET でないEXE から .NET のDLL を利用することはできません。
    • good
    • 0
この回答へのお礼

やはりそうですか・・・。ありがとうございました!

お礼日時:2006/05/22 15:14

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