下面这个转换成delphi 要怎么转换??请大家帮帮咯
typedef int (*LPONUSSDREQUEST)(HANDLE hLoginInstance, HANDLE hUssdDialog,
   TUssdData UssdData, DWORD *pdwUssdAppParam);
typedef int (*LPONUSSDRESPONSE)(HANDLE hLoginInstance, HANDLE hUssdDialog, 
char szUssdString[], DWORD dwUssdAppParam);
typedef int (*LPONUSSDABORT)(HANDLE hLoginInstance, HANDLE hUssdDialog, 
 DWORD dwErrorCode, DWORD dwUssdAppParam);
typedef int (*LPONUSSDTIMEOUT)(HANDLE hLoginInstance, HANDLE hUssdDialog, 
   DWORD dwUssdAppParam);
typedef int (*LPONUSSDCHGACK)(HANDLE hLoginInstance, HANDLE hUssdDialog, 
  DWORD dwErrorCode, DWORD dwUssdAppParam);
struct TUssdCallbacks
{
    LPONUSSDREQUEST   m_pOnUssdRequest;
    LPONUSSDRESPONSE  m_pOnUssdResponse;
    LPONUSSDABORT     m_pOnUssdAbort;    
    LPONUSSDTIMEOUT   m_pOnUssdTimeOut;
    LPONUSSDCHGACK    m_pOnUssdChgAck;
};

解决方案 »

  1.   

    type PDWORD = ^DWORD;
    type LPONUSSDREQUEST =  function(hLoginInstance:THANDLE; hUssdDialog:THANDLE; UssdData:TUssData; 
    // var dwUssdAppParam: DWORD):Integer; stdcall; // 也可以         dwUssdAppParam:PDWORD):Integer;stdcall;
    type LPONUSSDRESPONSE = function(hLoginInstance:THANDLE; hUssdDialog:THANDLE; szUssdString: PChar; 
    dwUssdAppParam:DWORD):Integer; stdcall;
    type LPONUSSDABORT =    function(hLoginInstance:THANDLE; hUssdDialog:THANDLE;
    dwErrorCode,dwUssdAppParam: DWORD):Integer; stdcall;
    type LPONUSSDTIMEOUT =  function(hLoginInstance:THANDLE; hUssdDialog:THANDLE;dwUssdAppParam: DWORD)::Integer; stdcall;type LPONUSSDCHGACK =   function(hLoginInstance:THANDLE; hUssdDialog:THANDLE;
    dwErrorCode,dwUssdAppParam: DWORD):Integer; stdcall;type TUssdCallbacks = record
      m_pOnUssdRequest:   LPONUSSDREQUEST;
      m_pOnUssdResponse:  LPONUSSDRESPONSE;
      m_pOnUssdAbort:     LPONUSSDABORT;
      m_pOnUssdTimeOut:   LPONUSSDTIMEOUT;
      m_pOnUssdChgAck:    LPONUSSDCHGACK;
    end;注意问题
    1. 可能上面stdcall不行 会使用cdecl 不过你先用stdcall
    2. m_..这样是VC的命名风格 你可以考虑自己改成其他的。
    3. 上面的dwUssdAppParam:PDWORD; 可以采用 var dwUssdAppParam: DWORD 这种形式代替