掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++で作ったDLL内の関数に配列を渡すには? (ID:108565)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士さん、ねろさんお世話になってます。m(_ _)m ねろさんのサンプル動きました。どうもです。。普通の配列(整数の)に してみても動きました。普通はユーザー定義型の方で使うのでしょうか? いろいろ調べてて違うものも試したのですが、これでも大丈夫でしょうか?↓ メモリうんぬんという問題?で違う値が返ってくると書いてあったような・・ それを確認しようとしたのですが、どこに書いてあったのかわからなくなっ てしまいました(泣)ご指摘いただければ幸いです。 -- VC側 --------------- ABC_API int __stdcall Test(int *iA, int iB, int *Ans) { int iRet; for (int i = 0; i < 4; i++) { Ans[i] = iA[i] + iB; } iRet=1; return iRet; } -- VB側 --------------- Private Declare Function Test Lib "ABC.dll" _ (ByRef IntA As Long, ByVal IntB As Long, ByRef intAns As Long) As Long Dim iA(4) As Long Dim iAns(4) As Long Dim ret As Long Dim i As Integer iA(0) = 12 iA(1) = 5 iA(2) = 23 iA(3) = 44 iA(4) = 44 ret = Test(iA(0), 100, iAns(0)) For i = 0 To 4 Debug.print "(" & i & ") " & iA(i) & " , " & iAns(i) Next i 魔界の仮面弁士さんのご提示していただいたサンプルは、まだ解析中です。 SAFEARRAYが解らなかったので、これから試してみようと思ってます。 環境はVB6.0、VC++6.0 + VisualStudioSP5です。(便乗の質問ですが バージョンの確認でVBではSP5とでるのにVC++では出ないのでしょうか? Full版当てたと思ったのですが。。) いろいろな方法があったのでどういう風にやるのがいいか、初心者には迷っ てしまいます^^; 魔界の仮面弁士さん、ねろさんご丁寧なご指導ありがとうございました。 とりあえずは目的の動作が確認できたので「解決」にチェックさせていただ きました。また何かありましたらよろしくお願いいたします。。 上記のソースのご指摘もお時間ありましたらよろしくです。。m(_ _)m
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.