반응형
GetProcAddress
함수는 동적 라이브러리(DLL
)에서 함수를 동적으로 가져올 때 사용됩니다.- 이 함수의 두 번째 매개변수인
lpProcName
은LPCSTR
타입으로 정의되어 있으며, 이는 C 스타일의 문자열(char 포인터)을 의미합니다. - 즉, 함수 이름은 항상 멀티바이트 문자열로 처리되며, 유니코드 문자열을 직접 사용할 수 없습니다.
- 따라서 유니코드 설정에서 함수 이름을 지정할 때도 멀티바이트 문자열을 사용해야 합니다. 예를 들어, 유니코드 설정에서 다음과 같이 작성하면:
cpp
... = (...) GetProcAddress(hMod, _T("Hello"));
- 이 코드는 컴파일되지 않습니다.
_T("Hello")
는 유니코드 문자열이므로,GetProcAddress
는 이를 인식하지 못합니다.- 올바르게 사용하려면 다음과 같이 수정해야 합니다:
cpp
... = (...) GetProcAddress(hMod, "Hello");
- 이처럼 함수 이름은 영문자, 숫자, 일부 특수문자로만 구성되어야 하며, 유니코드 문자를 포함할 수 없습니다.
- 이는
Windows API
의 설계 원칙에 따른 것으로, 함수 이름은 국제화되지 않고 영어(English) 를 기반으로 합니다.
- 요약하면,
GetProcAddress
를 사용할 때는 항상 멀티바이트 문자열로 함수 이름을 지정해야 하며, 유니코드 문자열을 사용할 수 없습니다.
728x90
반응형
'C C++' 카테고리의 다른 글
C++ 상수 포인터 (0) | 2007.05.17 |
---|---|
최대한 잘라먹기(Maximal Munch)와 컴파일러(Compiler) (2) | 2007.05.16 |
TTOF2() 함수 (0) | 2007.05.09 |
CMainFrame IDR_MAINFRAME 확장자 연결 문자열 (0) | 2007.04.26 |
.NET 프레임워크 인식하기 (0) | 2007.04.07 |