class ISAPI_STRING
{
public: ISAPI_STRING(
DWORD dwMaxAlloc = 0
); virtual
~ISAPI_STRING(); BOOL
Copy(
CHAR * szString,
DWORD cchString = 0
); BOOL
CopyW(
WCHAR * szStringW,
DWORD cchStringW = 0
); BOOL
Append(
CHAR * szString,
DWORD cchString = 0
); BOOL
AppendW(
WCHAR * szStringW,
DWORD cchStringW = 0
); BOOL
Printf(
CHAR * szString,
...
); BOOL
Vsprintf(
CHAR * szFormat,
va_list args
); VOID
CalcLen(
VOID
); DWORD
QueryCB(
VOID
); DWORD
QueryCCH(
VOID
); BOOL
SetLen(
DWORD cchNewLength
); DWORD
QueryBufferSize(
VOID
); BOOL
ResizeBuffer(
DWORD cbSize
); DWORD
QueryMaxAlloc(
VOID
); VOID
SetMaxAlloc(
DWORD dwMaxAlloc
); CHAR *
FindStr(
CHAR * szSubString,
BOOL fCaseInsensitive = FALSE,
DWORD dwStartingOffset = 0
); BOOL
Base64Encode(
VOID * pBuffer,
DWORD cbBuffer
); BOOL
Escape(
BOOL fAllowDoubleEscaping = FALSE
); VOID
Unescape(
VOID
); CHAR *
QueryStr(
VOID
); VOID
ZeroBuffer(
VOID
);private: ISAPI_BUFFER _Buffer; BOOL
CopyToOffset(
CHAR * szString,
DWORD cchString,
DWORD dwOffset
); BOOL
CopyWToOffset(
WCHAR * szStringW,
DWORD cchStringW,
DWORD dwOffset
);
};
{
public: ISAPI_STRING(
DWORD dwMaxAlloc = 0
); virtual
~ISAPI_STRING(); BOOL
Copy(
CHAR * szString,
DWORD cchString = 0
); BOOL
CopyW(
WCHAR * szStringW,
DWORD cchStringW = 0
); BOOL
Append(
CHAR * szString,
DWORD cchString = 0
); BOOL
AppendW(
WCHAR * szStringW,
DWORD cchStringW = 0
); BOOL
Printf(
CHAR * szString,
...
); BOOL
Vsprintf(
CHAR * szFormat,
va_list args
); VOID
CalcLen(
VOID
); DWORD
QueryCB(
VOID
); DWORD
QueryCCH(
VOID
); BOOL
SetLen(
DWORD cchNewLength
); DWORD
QueryBufferSize(
VOID
); BOOL
ResizeBuffer(
DWORD cbSize
); DWORD
QueryMaxAlloc(
VOID
); VOID
SetMaxAlloc(
DWORD dwMaxAlloc
); CHAR *
FindStr(
CHAR * szSubString,
BOOL fCaseInsensitive = FALSE,
DWORD dwStartingOffset = 0
); BOOL
Base64Encode(
VOID * pBuffer,
DWORD cbBuffer
); BOOL
Escape(
BOOL fAllowDoubleEscaping = FALSE
); VOID
Unescape(
VOID
); CHAR *
QueryStr(
VOID
); VOID
ZeroBuffer(
VOID
);private: ISAPI_BUFFER _Buffer; BOOL
CopyToOffset(
CHAR * szString,
DWORD cchString,
DWORD dwOffset
); BOOL
CopyWToOffset(
WCHAR * szStringW,
DWORD cchStringW,
DWORD dwOffset
);
};
找一份数据类型对照表,然后照着翻译,很容易了,因为Delphi本身的类写法基本和C++一样 。
主要是Delphi中的宽字符类型不是wchar*
具体是什么自己查查吧
ISAPI_STRING = class(TObject)
public
constructor Create ( dwMaxAlloc : DWord = 0);
destructor Destroy; override;
function copy(szString : pchar; cchString: DWord = 0) : BOOl;
end;
下面的函数感觉都差不多