
VC++で作成されたDLLをVB.NetにてそのDLLを呼び出すアプリを作成して
います。以下のパターン2では問題なく動作しますが、パターン1では
DLL側で見たときにchar変数に正しく値が入りません(NULL)になる。
パターン1とパターン2の違いは引数の順番です。
開発環境:VisualStudio2008
OS:WindowsXP SP2
パターン1(この場合はNG)
VC++側の宣言
extern "C" __declspec(dllexport) void func1(int i,char*s)
VB.Net側の宣言
<System.Runtime.InteropServices.DllImport("func.dll")> _
Public Sub func1(ByVal i As Long, ByVal s As String)
End Sub
パターン2(この場合はOK)
VC++側の宣言
extern "C" __declspec(dllexport) void func1(char*s,int i)
VB.Net側の宣言
<System.Runtime.InteropServices.DllImport("func.dll")> _
Public Sub func1(ByVal s As String ,ByVal i As Long)
End Sub
VC++側がパターン1で作成さているため、VC++側を修正をしないで
正常に動かすことは可能でしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> Public Sub func1(ByVal i As Long, ByVal s As String)
Longではないのでは?
intは32ビットの数値型ですので Integer か Int32 でどうでしょうか?
パターン2の場合は引数が逆なのでたまたまうまくいくだけで、もしかしたら
別のところで弊害がでるかも。
(戻り値があったりするとうまくいかないかな)
bluecampus様
回答ありがとうございます。
Int32で問題なく動作いたしました。
VC++:int → VB.net:Int32
他の引数(longなど)も再度確認してみます。
お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で日付をdateTimePickerに読...
-
Eclipseの対応する括弧の強調表...
-
DataGridViewでyyyy/MM/dd
-
VB.netでのVC++呼び出し引数の順番
-
テキストボックスに今日の日付...
-
日付を文字列に変換し他の文字...
-
【Excel VBA】条件に合った行の...
-
テキストボックスにカレンダー...
-
VBSでTXTファイルを配列に格...
-
日付を比較したいのですが
-
ExcelVBAでの日付入力について
-
WMICでの日付指定について
-
VBAで当月の1日を表示するには...
-
「eclipseで作るカレンダー(ス...
-
ミリ秒の取得の仕方について
-
経過時間を表示したい
-
コンボボックスに日付を表示する
-
ユーザーフォームのラベルに日...
-
システム日付とは?
-
エクセルのVBAで日付を検索し転...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAで日付を検索し転...
-
ユーザーフォームのラベルに日...
-
DataGridViewでyyyy/MM/dd
-
Eclipseの対応する括弧の強調表...
-
【Excel VBA】条件に合った行の...
-
VisualBasic6.0のFormat関数で...
-
システム日付とは?
-
【VBA】土日をスキップして日付...
-
テキストボックスにカレンダー...
-
指定した日付が、その月の第何...
-
今日より前の書き方 マクロ
-
VBAで日付入力しているのですが
-
VBでDate型の大小比較がうまく...
-
JSPからYYYYMMDDで日付入力する
-
VBA 日付、未来の日付はエラー...
-
テキストボックスに今日の日付...
-
「eclipseで作るカレンダー(ス...
-
VB 日付範囲チェック
-
VBAで当月の1日を表示するには...
-
1本あたり○円と表示する時どの...
おすすめ情報