C# でプログラムされた DLL があり、これを VB6 アプリケーションで使用するために COM オブジェクトに変換しています。タイプとして定義されたいくつかのメソッドとプロパティがlong
あり、VB6 でアクセスすると、「サポートされていないバリアント タイプ」として表示されます。次に、C# で次のように定義されている関数に気付きました。
void Load(long firstNumber, int firstCheckDigit, long lastNumber , int lastCheckDigit)
私のVB6オブジェクトブラウザに次のように表示されます:
Sub Load(firstNumber As <Unsupported variant type>, firstCheckDigit As Long, lastNumber As <Unsupported variant type>, lastCheckDigit As Long)
明らかに、この変換に関する何かが C#int
型を VB6Long
型に変えているのですが、これは私にとっては問題ではありません。ただし、 C# と VB6 の両方に変数firstNumber
とlastNumber
変数が必要です。バックエンドの変数は、入力されているいくつかの値のサイズが原因ではありlong
ません。int
これを行う方法はありますか?それとも、DLL 側の long 型は COM オブジェクトと互換性がないのでしょうか?