4

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 の両方に変数firstNumberlastNumber変数が必要です。バックエンドの変数は、入力されているいくつかの値のサイズが原因ではありlongません。intこれを行う方法はありますか?それとも、DLL 側の long 型は COM オブジェクトと互換性がないのでしょうか?

4

2 に答える 2

6

それは正確です。VB6 には 64 ビット整数型がありません。

intまたはdoubleで対応する必要があります。後者はもちろん不快ですが、15 桁の数字が得られます。

于 2013-10-30T16:34:08.710 に答える
0

http://msdn.microsoft.com/en-us/library/aa263420%28VS.60%29.aspx <-- VB6 データ型

http://www.completecsharptutorial.com/basic/data-types.php <-- c# データ型

今後の参考に。:)

于 2013-11-06T18:48:27.493 に答える