有的dll文件,
提供了c调用的方法:
extern "C" void _export _stdcall get_one_yc(int fac, int yc_dot, float *yc_value);我试着在delphi写入下语句调用,都失败:
procedure get_one_yc(fac:Integer;yc_dot:Integer;out yc_value:single);export;Stdcall;external 'aaa.dll';
或者:
procedure get_one_yc(fac:Integer;yc_dot:Integer;yc_value:single);export;Stdcall;external 'aaa.dll';c里面的*yc_value好象是指针,
我从小就没有学会指针,
一碰指针就头大,赫赫,
麻烦高手们教教我,
delphi下如何调用?先谢了
提供了c调用的方法:
extern "C" void _export _stdcall get_one_yc(int fac, int yc_dot, float *yc_value);我试着在delphi写入下语句调用,都失败:
procedure get_one_yc(fac:Integer;yc_dot:Integer;out yc_value:single);export;Stdcall;external 'aaa.dll';
或者:
procedure get_one_yc(fac:Integer;yc_dot:Integer;yc_value:single);export;Stdcall;external 'aaa.dll';c里面的*yc_value好象是指针,
我从小就没有学会指针,
一碰指针就头大,赫赫,
麻烦高手们教教我,
delphi下如何调用?先谢了
yc_value 是一个指向FLOAT的指针
delphi中可以声明为PDouble,或者用POINTER,之后再转换procedure get_one_yc(fac:Integer;yc_dot:Integer;yc_value:PDouble);export;Stdcall;external 'aaa.dll';
procedure get_one_yc; external 'aaa.dll' name get_one_yc';
procedure get_one_yc(fac:Integer;yc_dot:Integer;var yc_value:single);export;Stdcall;external 'aaa.dll';
声明的PDouble要怎么转成double或者float呢?显示出来呢?
赫赫,我水平是不是真的很臭
var
aaa:integer;
bbb:integer;
ccc:double;aaa:=1;
bbb:=2;
get_one_yc(aaa,bbb,ccc);
showmessage(floattostr(ccc));还是不对,是不是要把pdouble转成double,或者float,
我要怎么转阿!!!!!
aaa:integer;
bbb:integer;
ccc:Single; aaa:=1;
bbb:=2;
get_one_yc(aaa,bbb,ccc);
showmessage(floattostr(ccc));
procedure get_one_yc(fac:Integer;yc_dot:Integer;yc_value:Psingle);export;Stdcall;external 'aaa.dll';var
aaa:integer;
bbb:integer;
ccc:PSingle;aaa:=1;
bbb:=2;
get_one_yc(aaa,bbb,ccc);////////////提示windows.Single和system.Single不对
showmessage(floattostr(ccc)); 不对,要怎么改
get_one_yc(aaa,bbb,@ccc);////////////提示windows.Single和system.Single不对