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 オブジェクトと互換性がないのでしょうか?