type
  TRegisterMenuEvent = procedure(sProcedureName: PChar; pfProcedureClickEvent: Pointer); stdcall;
  TInvoke = procedure(lpszInBuffer: PChar; lpszOutBuffer: PChar); stdcall;下面好象有没有这两个过程的定义.

解决方案 »

  1.   

    >>下面好象有没有这两个过程的定义.
    可能是用傳遞其指針, 所以, 不是很明顯
      

  2.   

    把DLL中的函数定义的地址,付值给由TRegisterMenuEvent和TInvoke说明的变量。
      

  3.   

    然后像自定义函数那样调用由TRegisterMenuEvent和TInvoke说明的变量
      

  4.   

    给你个类似的例子吧!其实这和c 中的函数指针是一样的!type PVFN = Function (para : Integer) : Integer;
            var
                fn : PVFN; 
                hm : HMODULE;
            begin
                hm := LoadLibrary('test.dll');
                fn := GetProcAddress(hm, 'Function1');
                fn(2);
                FreeLibrary(hm);
            end;
      

  5.   

    在DLL中当动态调用这个DLL的时候
    就需要这样写了,意思为调用这个函数类型
    LoadLibrary读取DLL
    GetProcAddress获得地址指针
    FreeLibrary释放对象