C언어 변수선언중에 이런 문장은 델파이에서 어떻게 변환을 해야되나요?
<!--CodeS-->
I_STATUS I_API ITargets(
IN BOOLEAN ForceUpdate,
IN OUT PULONG BufferSize,
OUT __inout_ecount_opt(*BufferSize) PCHAR Buffer
<!--CodeE-->
이부분에 대한 변환이 궁금합니다.
OUT __inout_ecount_opt(*BufferSize) PCHAR Buffer
__inout_ecount_opt 이런것들을 "Header Annotations"이라고 하는데 일종의 주석입니다.
함수의 파라매터나 리턴값을 어떻게 사용하느냐를 자세히 알려주죠...
델파이로 컨버팅하는데 아무런 영향이 없습니다. 이전에도 말씀드렸지만 무시하세요.
아래 MSDN사이트에 보시면 자세히 나옵니다. 셀 수 없이 많구요...
http://msdn.microsoft.com/en-us/library/aa383701.aspx
위 사이트에 설명된 예로 모듈의 파일이름을 구하는 GetModuleFileName의 C함수 원형이 아래와 같습니다.
DWORD WINAPI GetModuleFileName(
__in_opt HMODULE hModule,
__out_ecount_part(nSize, return + 1) LPTSTR lpFilename,
__in DWORD nSize
);
하지만 델파이의 Windows.pas소스에는 아래와 같이 컨버팅되어 있습니다.
function GetModuleFileName(hModule: HINST; lpFilename: PChar; nSize: DWORD): DWORD; stdcall;
C에서 HMODULE형으로 선언된 hModule파라매터가 델파이에서 HINST로 변경