Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


47193 / 76732 ←次へ | 前へ→

【34500】Re:VBAで指定したEXCEL範囲を外部DLLへ送る方法
回答  Blue  - 06/2/4(土) 0:35 -

引用なし
パスワード
   >  という感じで書けばよいのでは・・・
はぁ?
引数の数とか全然違うでしょう?

なんで質問のたびにコロコロ DLL の関数宣言が変わるんでしょうか?

> DLLIMPORT double dll_double_square (double *d,double *a,double *b,double *c,double *w)
なら
Declare Function dll_double_square Lib "cdll.dll" _
  (ByRef d As Double, ByRef a As Double, ByRef b As Double, ByRef c As Dobule, ByRef w As Dobule) As Double

で、

youso(0)=5
youso(1)=8
youso(2)=1
youso(3)=4
youso(4)=9
なら
goukei = dll_double_square(youso(0), youso(1), youso(2), youso(3), youso(4))
とするしかないです。

C言語でああいう宣言をしている限り、配列にする意味もないですけど。


それと、引数の値を変えないのならば、ポインタで渡す意味があまりないです。
普通に
DLLIMPORT double dll_double_square(double d,double a,double b,double c,double w)
{
  return d+a+b+c+w;
}

Declare Function dll_double_square Lib "cdll.dll" _
  (ByVal d As Double, ByVal a As Double, ByVal b As Double, ByVal c As Dobule, ByVal w As Dobule) As Double
としたほうが良いです。

どうしても配列で渡したいのならば、前も書きましたが、
DLLIMPORT double dll_double_square (double *d,int size)
{
  int i;
  double ret = 0.0;
  for ( i = 0; i < size; i++ )
  {
    ret += d[ i ];
  }
  return ret;
}
として、VBAで
Declare Function dll_double_square Lib "cdll.dll" _
  (ByRef d As Double, ByVal size As Long) As Double
と宣言し、
goukei = dll_double_square(youso(0), 5)
のように使います。

これで、また振り出しに戻るような質問がされてきたら、悪いですが私は降りますので。
(ある掲示板にマルチポストもしていたようですから。)
1 hits

【34434】VBAで指定したEXCEL範囲を外部DLLへ送る方法 stoicker 06/2/2(木) 16:58 質問
【34435】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... Blue 06/2/2(木) 17:43 発言
【34436】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... stoicker 06/2/2(木) 18:16 質問
【34439】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... Blue 06/2/2(木) 18:52 質問
【34491】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... stoicker 06/2/3(金) 19:38 質問
【34500】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... Blue 06/2/4(土) 0:35 回答
【34501】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... 稲葉 06/2/4(土) 2:53 お礼
【34513】Re:VBAで指定したEXCEL範囲を外部DLLへ送る... stoicker 06/2/4(土) 15:25 お礼

47193 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free