|
昨日質問させて頂いた者です。
blueさんのも参考にしながら、自分なりにプログラムし、
エクセルのデータをVBAから読み取って、
「youso」という変数に配列として入れる事ができました。
ただそこからC言語で書いたDLLに送って、結果を得る方法がわかりません・・・
どうやってDLLを呼び出して、その「youso」の中に入ってるデータを送ればよいのでしょうか・・・。
youso という配列の中には、
youso(0)=5 youso(1)=8 youso(2)=1 youso(3)=4 youso(4)=9
という感じで適当な数字が入っています。
これをDLLに送って、DLL側で計算した結果を得たいと思っています。
以下のプログラムのどこに、どういったプログラムを追加すればよいのか教えてください。
プログラムも載せますので、よろしくお願いいたします。
それから、名前を変更した件は本当にすいませんでした。
今後、このハンドルで質問させていただきます。
*********************** VB側 *******************************:
Dim youso(4) As Double
Function goukei(hani) As Double
Dim ue, shita, retu, i, j, yousosuu As Long
goukei = 0
ue = hani.Row
retu = hani.Column
yousosuu = hani.Rows.Count
For j = 0 To yousosuu - 1
youso(j) = Sheets(hani.Parent.Name).Cells(ue + j, retu)
Next j
goukei = ●●●●
End Function
**************************************************************
●●●●の部分に、DLLに「youso」を送信するプログラムを書けば良いのではないかと思っているのですが、どうやったらいいのかわかりません。
Declare Function dll_double_square Lib "cdll.dll" _
(ByRef youso As Double) As Double
という感じで書けばよいのでは・・・というのはわかっているのですが、どうやってもエラーが出てしまいます。
ちなみにC側のプログラムは
****************************************************************
#include "cdll.h"
DLLIMPORT double dll_double_square (double *d,double *a,double *b,double *c,double *w)
{
return *d+*a+*b+*c+*w;
}
*****************************************************************
という感じです。
|
|