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;
这到底怎么不一致了啊  最后一个参数我要为空

解决方案 »

  1.   

      if not switchchanel_video(s,4,nil)试试?
      

  2.   

    不行哦  用‘’时提示 types of actual and formal var parameters must be identical
      

  3.   

    定义一个临时变量 将它复制为空 然后传这个变量到函数里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;
      

  4.   

    是啊  还多了错误提示  说showmessage那要用布尔类型  
      

  5.   

    [ERROR]typeexpression must be BOLLEAN 错误指向showmessage
    [Fatal Error] Could not compile used unit 'BD100TEST.pas'
      

  6.   

    procedure TMainForm.Button9Click(Sender: TObject);
    var
        s,ret: integer ;
        temp : PChar;
    begin
        temp := PChar('') ;
        s := strtoint(ComboBox8.Text)*32 + strtoint(ComboBox9.Text) ;
        if ComboBox8.Text='' then
           begin
           ShowMessage('Please select Projector ID');
           exit;
           end;
        if ComboBox9.Text='' then
           begin
           ShowMessage('Please select Projector ID');
           exit;
           end;
           ret := switchchanel_video(s,4,temp);
        if  ret = 0
           then ShowMessage('Divide error');
    end;
    这样编译是没有问题了,但为什么运行到下面begin就停止了?
    begin
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm);
      Application.Run;
    end.