掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
配列を引数にとる関数をDLLから呼び出せますか (ID:49878)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>関数の実行部分のコードもコンパイル時にチェックされます. いろいろ書いてしまつたので少し整理を. 具体的なコードがないと無理があるので以下のコードの場合. 引数が静的配列でも動的配列でも, 関数の内部処理が静的配列であろうと動的配列であろうとアプリは起動します. type // TDoubleDynArray の使用には uses に Types が必要 // これは array of array of Double と同じ TDataArray = array of TDoubleDynArray; procedure fft2D(n: integer; sr, si: TDataArray); stdcall; external 'CppMathLibrary.dll'; procedure TForm1.Button1Click(Sender: TObject); var LSrcArray : TDataArray; LDstArray : TDataArray; LSize : Integer; begin // 配列のサイズを設定 (0 で初期化される) LSize := 1024; SetLength(LSrcArray, LSize, LSize); SetLength(LDstArray, LSize, LSize); // 関数の実行 fft2D(LSize, @LSrcArray, @LDstArray); end; 上のコードで関数の実行部分を fft2D(LSize, @LSrcArray); とするとコンパイル時にエラーとなります. また,引数の型が関数の宣言と違ってもコンパイル時にエラーとなります. 「アプリが起動しない」のとは違います.アプリが作成できないのです. 型宣言でない配列が引数の場合は, 引数の数や型が違っていてもコンパイルでき,アプリが起動します. もちろん,静的配列とか動的配列であるとかは関係なくです.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.