procedure DEBUG(const lpszFormat: string; const args: array of const);
var
Buf: String;
begin
Buf := Format(lpszFormat, args);
blabla..~~~
end;
사용할때는 C 처럼 그렇게 사용하면 안되구요.. 델파이의 Format 함수처럼 사용합니다... 가변 인자가 아니라 가변 배열을 보내주는 것이지요.
linuxman 님이 쓰신 글 :
: 안녕하세요...
:
: 가변인자를 받아서 다른 윈도우로 메시지를 보내는 C의 함수 입니다.(C++ builder의 traceplus에서 가져왔습니다0
: 아래의 함수를 델파이로 함수로 고치고 싶은데... 포인터나 버퍼등의 변환등을 어떻게 하는지 몰라
: 어려움이 있습니다...아래의 함수를 델파이로 변환해 주실수 있나요?
:
: void DEBUG(char * lpszFormat, ...)
: {
: int nBuf;
: char szBuffer[5001];
: va_list args;
:
: va_start(args, lpszFormat);
: nBuf = vsprintf(szBuffer, lpszFormat, args);
: va_end(args);
: if (nBuf < 0) return;
:
: DWORD dwError = GetLastError();
: COPYDATASTRUCT cds;
: cds.cbData = nBuf + 1;
: cds.lpData = (void *) szBuffer;
:
: SendMessage( handle, WM_COPYDATA, NULL, (LPARAM)&cds);
:
: }
:
: 수고하세요.
|