Excel VBA質問箱 IV

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

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


47516 / 76732 ←次へ | 前へ→

【34171】Re:EXCELデータを外部プログラムへ
回答  Blue  - 06/1/27(金) 16:48 -

引用なし
パスワード
   ちなみに、
> DLLIMPORT double
> dll_double_square (double *d)
> {
>  return d[0]+d[1]+d[2]+d[3]+d[4];
> }
という使い方はあまりよろしくないです。
d は配列の先頭を指していますが、C言語ではそのは配列のサイズはワカリマセン。
たとえば、dll_double_squareに 配列数が 3 のやつを渡すと、アプリケーションエラーになってしまいます。

こういうときは、ついでにサイズも渡すようにします。
# または、多少高度になりますが、Variant型または、SafeArray型として渡す。

一例)
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;
}
1 hits

【34168】EXCELデータを外部プログラムへ 稲葉 06/1/27(金) 16:12 質問
【34170】Re:EXCELデータを外部プログラムへ Blue 06/1/27(金) 16:39 回答
【34171】Re:EXCELデータを外部プログラムへ Blue 06/1/27(金) 16:48 回答
【34189】Re:EXCELデータを外部プログラムへ 稲葉 06/1/28(土) 4:41 お礼

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