DLL を通じて公開される C++ 関数は次のとおりです。
double my_exposed_cpp_function(int* my_array){
int i = my_array[2]; /* i should be 3 */
my_array[2]++;
return 0;
}
ここに私の Delphi 関数の宣言があります
function dll_function(var my_array: array of integer): Real; stdcall; external myDLL name 'my_exposed_cpp_function';
Delphi関数でやりたいことは次のとおりです
procedure talk_to_dll();
var
return_value: Real;
my_array: array[0..2] of integer;
final_value: integer;
begin
my_array[0] = 1;
my_array[1] = 2;
my_array[2] = 3;
return_value := dll_function(my_array);
final_value = my_array[2]; /* my_array[2] should now be 4 */
end;
うまくいけば、その例が私の意図を明確にします。このセットアップを使用して、より単純なデータ型を操作できるので、Delphi と dll の間の通信が問題ないことがわかります。これを機能させるには、何を変更する必要がありますか?