读书人

关于形参和实参不一致的有关问题

发布时间: 2012-02-11 09:51:35 作者: rapoo

关于形参和实参不一致的问题
procedure TMainForm.Button9Click(Sender: TObject);
var
s: integer ;
begin
s := strtoint(ComboBox8.Text)*32 + strtoint(ComboBox9.Text) ;
if ComboBox8.Text='' then
begin
ShowMessage('Please select Projector ID');
exit;
end;
if not switchchanel_video(s,4,'')//这里报错
then ShowMessage('Divide error');
end;
这个是用来调用DLL的
声明如下
function switchchanel_video(maxinputchannel,maxoutputchannel:integer; var sendstring:pchar):integer;stdcall;
function switchchanel_video;stdcall; external DLLName;


这到底怎么不一致了啊 最后一个参数我要为空

[解决办法]
if not switchchanel_video(s,4,nil)

试试?
[解决办法]
换成 NIL 还错?
[解决办法]
定义一个临时变量 将它复制为空 然后传这个变量到函数里

procedure TMainForm.Button9Click(Sender: TObject);
var
s: integer ;
tmpp: PChar;
begin
tmpp := PChar('');
s := strtoint(ComboBox8.Text)*32 + strtoint(ComboBox9.Text) ;
if ComboBox8.Text='' then
begin
ShowMessage('Please select Projector ID');
exit;
end;
if not switchchanel_video(s,4,tmpp )
then ShowMessage('Divide error');
end;

读书人网 >.NET

热点推荐