- - PR -
C#で作成したライブラリをVB6.0から使用
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-01 17:47
C#で作成したDLLをVB6.0から使用しています。
DLLはregasmコマンドを使ってレジストリに登録しました。 VB6.0からC#で作成したメソッドを呼び出した場合、 引数が[string]型だと問題なく使用できるのですが、 引数に[long]型や[int]型なのど数値を指定したメソッドの場合、 【型が一致しません】というエラーが表示されます。 VB6.0からC#の[long]型を引数にしたメソッドは呼び出せないのでしょうか? '********* VB6.0のソース Dim obj As Class1.cls Set obj = New Class1.cls Call obj.Sample1("a", "a", "a") ' この場合メソッドの呼び出し成功 Call obj.Sample2(10, 10, 10) ' この場合メソッドの呼び出し失敗 '********* C#のソース public class cls{ public void Sample1(string a, string b, string c){ // 処理 } public void Sample2(long a, long b, long c){ // 処理 } } | ||||
|
投稿日時: 2004-03-01 18:35
C#(というか.NET)でlong型を使用する局面はあまりないと思いますが、 旧VBでのLong型と混同していませんか? 旧VBでは、Longは32ビット(4バイト)、Integerは16ビット(2バイト)ですが、 C#のlong(=.NETのInt64)は64ビット(8バイト)、int(=.NETのInt32)です。 | ||||
|
投稿日時: 2004-03-02 09:05
C#側の引数をint型で宣言し、VB6.0からlong型で呼び出すことで対応することに
しました。 ありがとうございます。 [ メッセージ編集済み 編集者: ポッキー 編集日時 2004-03-02 09:27 ] |
1