外部动态库中有很多过程和函数,在程序中都要用到,在程序实现中如何调用,刚才见到相关的问题在论坛中出现,但我还是不太明白?这些DLL中的函数和过程在程序中应该如何声明?我把他们写成如下形式,Imp_Connect是DLL中的一个过程,结果不行,应该如何写啊,请各位大侠指教。implementation procedure Imp_Connect(AdapAddr: Integer; CardHandle : Integer);   external 'c:\winnt\system32\IMPDRVR.DLL' ;

解决方案 »

  1.   

    implementation procedure Imp_Connect(AdapAddr: Integer; CardHandle : Integer); stdcall   external 'c:\winnt\system32\IMPDRVR.DLL' ;
      

  2.   

    这我试过,加上stdcall之后就出另外错误了
      

  3.   

    type 
     TImp_Connect=procedure (AdapAddr: Integer; CardHandle : Integer);stdcall;  
    var
      FLibHandle:THandle;  Imp_Connect:TImp_Connect;
      
    begin
      
     FLibHandle:=LoadLibrary(IMPDRVR.DLL');
    if FLibHandle<=0 then error;
     Imp_Connect:=GetProcAddress(FLibHandle,'Imp_Connect');
    end;
     
      

  4.   

    DLL中有很多的函数和过程,都这样写出来,应该放在什么位置处才对啊
      

  5.   

    调用动态库一次后
    哪里要用只要用GetProcAddress获取要用函数就行
      

  6.   

    要将此声明与你的其他过程声明放在一起就好了。external的意思是指定其前面的过程已经在某处实现了,你不需要为其添加代码,只要调用就可以了。这与C++中的extern是一样的道理。我想你需要多看一点基础的书
      

  7.   

    你的写法是对的啊
    你的是静态链接
    用GetProcAddress是动态链接