|
分類:[C#]
2020/01/12(Sun) 21:15:17 編集(投稿者)
VB6で作成したActiveX DLLをC#からコールしたいです。
VB6上ではEXEアプリケーションとActiveX DLL間でコール およびデータのやりとりは出来ています。
C#はVisual C# 2008 Express Editionを使用しています。 OSはWindows7 Professional 64bit です。
VB6 ActiveX DLLの記述(一部) ///////////////////////////////
VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "Class1" Attribute VB_GlobalNameSpace = True Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = True
Public Function DLL_CALL_TEST(ByRef bBuf() As Byte, ByVal lSize As Long) As Boolean Dim lw As Long '戻り値初期化 DLL_CALL_TEST = False
〜省略〜 End Function
/////////////////////////////////////////////////////////////////
このDLL_CALL_TEST()関数をC#側から参照の追加をし、コールしたいのですが、
FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read); byte[] bs = new byte[fs.Length]; fs.Read(bs, 0, bs.Length);
Array a = Array.CreateInstance(typeof(byte), fs.Length); DLL_CALL_TEST.Class1Class call_test_dll = new DLL_CALL_TEST.Class1Class(); call_test_dll.DLL_CALL_TEST(ref a, (int)fs.Length);
fs.Close();
〜省略〜
と記述し、実行すると COMExceptionはハンドルされませんでした。 CLSID {79342F1A-18ED-4E63-BC1B-60B9999F55E2} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154。
となってしまいます。 色々とネット上を調べましたが解決できていません。
どなたか、解決方法をご教授していただけないでしょうか?
よろしくお願いします。
|