各位前辈:
    好,我在DLL里 写了个函数: 
  Readcard(var icdev:integer;cardno:integer);stdcall;export;  
  begin
   icdev:=3;
   cardno:=5;
  end;我在delphi中调用DLL里这个 Readcard(icdev,cardno) 函数的时候: 
 begin
   Readcard(icdev1,cardno1);
   showmessage(inttostr(icdev1)); 
 end;
为什么 icdev1的值不是3啊 请大哥大姐姐们指点一下,不胜感激。。

解决方案 »

  1.   

    http://blog.csdn.net/CoolSlob/archive/2006/07/31/1003558.aspx
      

  2.   

    你写得很含糊..... Readcard(var icdev:integer;cardno:integer);stdcall;export; {这里必须指明返回类型} 
    如下:(不知你是过程,还是函数,过程在dll是不能返回值的)
    {
    function Readcard(var icdev:integer;cardno:integer):intrger;stdcall;export; 
    }
      begin
       icdev:=3;
       cardno:=5;
    你要返回  icdev 写法如下:     
    reslut:=icdev  
    或者
    你要返回  cardno 写法如下
    reslut:=cardno  {在这里必须有返回值的}
      end;我在delphi中调用DLL里这个 Readcard(icdev,cardno) 函数的时候: 
     begin
       Readcard(icdev1,cardno1);
       showmessage(inttostr(icdev1)); 
     end;
      

  3.   

    大哥 我用的是函数,但是我同时需要返回多个值,是要同时返回icdev 和 cardno ,所以result 这种方法应该不行,我这种处理方法不对吗?
    begin
       Readcard(icdev1,cardno1);
       showmessage(inttostr(icdev1)); 
     end;
    难道我调用时,icdev1,cardno1的值,为什么会没有,不是有icdev:=3;cardno:=5;这些语句吗?谢谢指点,急啊