我对于VC一窍不通,dll也不熟悉。
单位有个大爷用VC写了个DLL我必须调用,
查看了相关资料,但总是不行。VC编译的DLL文件:DT.dllclass Isave
{
    virtual void _stdcall svPack(BYTE ab, char *ap, DWORD aw) = 0;
}class Iout
{
    virtual void _stdcall otPack(BYTE ab, char *ap, DWORD aw) = 0;
}
我用DELPHI调用:var
  hd: THandle;
  sp: function: integer; stdcall;
begin
  hd := LoadLibrary('DT.dll');
  if hd <> 0 then
  begin
    @sp := GetProcAddress(hd, 'ISend.SendPack');
    if @sp <> nil then
      showmessage('Loaded')
    else
      showmessage('Fail');
  end
  else
    showmessage('Dll not');
    
我目前能够LOADLIBRARY,但不能GETPROCADDRESS,总是Fail。

解决方案 »

  1.   

    光有代码有啥用,谁知道dll里怎么导出的这两个函数,还是根本就没导出
      

  2.   

     我发现2个问题就是
     sp: function: integer; stdcall; 函数原形必须申明清楚,你这样好象不对吧,都没有写参数
     @sp := GetProcAddress(hd, 'ISend.SendPack'); 第2个参数应该是导出函数名,这个'ISend.SendPack'不知道你是什么意思?
      

  3.   

    'ISend.SendPack'这玩意链接库里面有吗,这里需要的是链接库你要调用的函数名称啊兄弟