C++的dll有一个方法为:
int WINAPI SubmitA(
unsigned char OrgTON, 
unsigned char OrgNPI, 
LPCTSTR OrgAddr, 
unsigned char DestTON, 
unsigned char DestNPI,
 LPCTSTR DestAddr, 
unsigned char PRI, 
unsigned char RD, unsigned char RP, 
unsigned char SRR, unsigned char MR,
 unsigned char DCS, unsigned char PID,
 LPCTSTR Schedule,
 LPCTSTR Expire, 
unsigned long Default_ID,
 unsigned char UDHI,
 unsigned long UDLen,
 LPCTSTR UserData,
unsigned long* SM_ID, 
unsigned char* FCS);
请问:在delphi里面怎么申明和调用?

解决方案 »

  1.   

    _declspec(dllexport) //在C++中定义函数前加dlephi中调用先LoadLibrary,再直接调用函数。关键字符指针用PChar类型,其他指针如integer型用var integer
      

  2.   

    能不能再具体一点,这样对吗?
      function SubmitA(
                  OrgTON : char ;
                  OrgNPI : char ;
                  OrgAddr : string ;
         DestTON : char ;
         DestNPI : char ;
         DestAddr: string ;      PRI     : char ;
                  RD      : char ;      RP      : char ;
                  SRR     : char ;
                  MR      : char ;
                  DCS     : char ;
                  PID     : char ;
                  Schedule : string ;      Expire   : string ;      Default_ID : longint ;
                  DHI       : char ;                     UDLen      : longint ;
                  UserData : string ;      SM_ID      : plongint ;      FCS        : pchar
                  ) : integer;stdcall ;external 'SMEIDll.dll' ;
      

  3.   

    function SubmitA(OrgTON: Byte; 
                        OrgNPI: Byte; 
                        var OrgAddr: CTSTR; 
                        DestTON: Byte; 
                        DestNPI: Byte; 
                        var DestAddr: CTSTR; 
                        PRI: Byte; 
                        RD: Byte; 
                        RP: Byte; 
                        SRR: Byte; 
                        MR: Byte; 
                        DCS: Byte; 
                        )
    : Integer ; stdcall ;
      

  4.   

    後面加上 external 'SMEIDll.dll';
      

  5.   

    就是调用动态链接库啦!
    function SubmitA(OrgTON: Byte; 
                        OrgNPI: Byte; 
                        var OrgAddr: CTSTR; 
                        DestTON: Byte; 
                        DestNPI: Byte; 
                        var DestAddr: CTSTR; 
                        PRI: Byte; 
                        RD: Byte; 
                        RP: Byte; 
                        SRR: Byte; 
                        MR: Byte; 
                        DCS: Byte; 
                        )
    : Integer ; stdcall ;external 'SMEIDll.dll';