掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CのDLLファイルをVBで (ID:109527)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
う〜ん。。 ねろさんに書いて頂いたプログラムを走らせてみたのですが Sub又はFunctionは定義されてませんと VBの実行時点でエラーがでてしまいます。 それで少し自分なりに考えて以下のものにしてみたのですが 今度は走るのですが、結果が絶対0になってしまい おかしいと思い、Cの値を消したりして モジュールに渡さないで実行してみたら ボタンを押すと絶対0がでてしまいます。 もしやと思い答えのところに適当な数字を入れて その数字がでるようにしたら、ボタンを押すと そのプログラムでいれた数字がそのまま出てしまいました。 どうしたらよいでしょうか? またせっかく教えて頂いたのにつまらないミス のせいでちゃんとできてないのでしょうか? あとねろさんの方のやつはモジュールの所をパブリックでやると 走ったのですが、それだとやっぱり答えが0にしかなりません。 値を入れても0になってしまうのでCで計算されてないのかなと思いました。 一応、私が自分なりに改良したプログラムも レスしてみます。(0になってしまうプログラムです) こちらの方も教えていただけたら 幸いです。 VB 標準モジュール Public Declare Sub fncSub Lib "TEST.dll" (p As Double) ボタンプログラム Private Sub Command1_Click() Dim p(0 To 6) As Double p(0) = Val(Text1.Text) p(1) = Val(Text2.Text) p(2) = Val(Text3.Text) p(3) = Val(Text4.Text) p(4) = Val(Text5.Text) fncSub p(0) 'DLLの呼び出し Label11.Caption = p(5) '結果の表示 Label12.Caption = p(6) '結果の表示 End Sub VCのTEST.cpp TEST_API void __stdcall fncSub(double *c) { double sum = 0; { int i; for(i=0; i<3; i++) { sum = *(c + i) + sum; //p(0)〜P(2)までの足しこみ } *(c + 5) = *(c + 3) * sum; //*(c + 5) = p(5) *(c + 6) = *(c + 4) * sum; //*(c + 6) = p(6) } } TEST.h TEST_API void __stdcall fncSub(double *c) TEST.def LIBRARY TEST.DLL EXPORTS fncSub 上のような感じです。 宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.