私はC#で小さなライブラリを作成しました。
このライブラリには、である2つのクラスがありComVisible
ます。
最初のものには、カスタムオブジェクトの配列を提供するメソッドがあります(2番目のクラスで宣言されています)。
小さなc#アプリケーションでライブラリをテストしたところ、すべてが機能しました。それから私は同じことVB6をします。前に説明したメソッドを呼び出すと、問題が発生します。タイプミスマッチエラーが発生します。
BV6コードは次のとおりです。
Private Sub Command1_Click()
Dim Flussi As FMDriver.FMDriver
Set Flussi = New FMDriver.FMDriver
[...]
Dim temp() As FMDriver.FM
temp = Flussi.GetElabData(station, codpar, data, tabella, nfunz, tiponfunz)
[...]
これはカスタムクラスですFM
[ComVisible(true)]
public partial class FM
{
public FM() { }
[ComVisible(true)]
public double Value { get; set; }
[ComVisible(true)]
public double IDisp { get; set; }
}
何か案が?応答から1つの要素のみを抽出すると、機能します。
編集:
もう一つの奇妙なこと...
Dim pippo As FM
Set pippo = CreateObject("fmdriver.fm")
pippo.Value = 100
pippo.IDisp = 43
pippo = Flussi.GetElabData( [..cut..] )(4)
配列の4番目の位置に戻るPippo.Value
正しい値がありますが、値は変更されず、新しい値を取得する代わりにそのまま残ります。GetElabData
Pippo.IDisp
43