|
■No28115 (ソル さん) に返信 >>・ActiveX.dllは何をつかって作成しましたか(もしくはどのVBのバージョンで動作保証されていますか)? > VB6.0の > Version:8176 > VBA:Retail 6.0.8169 > Forms3:12.0.6025.5000 > です。
う〜む。そちらのバージョンで管理した事は無いなぁ…。(^^; 当方は、VB6/SP6 + Office 2007/SP1 + WinXP/SP3 という環境において、 Version:9782 VBA:Retail 6.0.9782 Forms3:12.0.6211.1000 でした。
そこから類推するに、 Version は C:\Windows\System32\MSVBVM60.DLL のバージョン VBA は C:\Program Files\Microsoft Visual Studio\VB98\VBA6.DLL のバージョン を指しているのだと予想しますが、という事は、 Version:8176 → MSVBVM60.DLL/ver.6.0.81.76 VBA:Retail 6.0.8169 → VBA6.DLL/ver.6.0.0.8169 すなわち、『Visual Basic 6.0 Service Pack 未適用』に相当するのかな…?
>>・参照設定したActiveX.dllをプログラムではどのように使っていますか? > dllは内部でクラス構造を持っており、それらをアプリからインスタンス生成したり、メンバ変数を参照したりしています。 まぁ DLL である以上、勿論そうなるでしょうね。(^^;
で。引数の型や戻り値の型として、VB 自身が持つ内部クラスを公開してはいませんか? こちらで実験してみたところ、
'=== Class1 === Option Explicit Public Function Foo() As Object End Function
これだけを公開したライブラリを参照設定 & リビルドした所で、先の問題は置きませんが、
'=== Class1 === Option Explicit Public Function Foo() As VBA.Collection End Function
にした場合、Interop.VBA.DLL という依存ファイルが追加され、 さらに、先の _HiddenInterface 警告が発生するようになりました。
|