C# LPTSTR StringBuilder类型 怎么转为delphi

解决方案 »

  1.   

    原来的语句是这么写的,
    public static extern EErrorCode titr_makeDateTimeString(int iYear, int iMonth, int iDay, int iHour, int iMinute, int iSecond, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder pszDateTime, int capacity);
    我需要转成delphi,谢谢。
      

  2.   

    用idapro分析
    转成C语句如下
    int __cdecl titr_makeDateTimeString(int a1, int a2, int a3, int a4, int a5, int a6, wchar_t *a7, size_t a8)
    这个怎么转成delphi,谢谢。
      

  3.   

    如果这个分析:
    int __cdecl titr_makeDateTimeString(int a1, int a2, int a3, int a4, int a5, int a6, wchar_t *a7, size_t a8)
    是对的话,应该是C#代码用P/Invoke调用了外部DLL的函数,就是:
    function titr_makeDateTimeString(iYear, iMonth, iDay, iHour, iMinute, iSecond: integer; pszDateTime: PWideChar; capacity: integer): integer; cdecl; external 'xxx.dll';