본문 바로가기

프로그래밍38

가변인자 사용하기 가변인자란? 이름 그대로 "변화가 가능한 인자"라는 뜻입니다. 인자는 함수에 전달하는 값이며, 매개변수라고도 불립니다. 가변인자를 사용한 함수의 예를 보자면, 처음 C를 입문하게 되면 printf()함수를 사용하여 "Hello, World!" 부터 시작하게 됩니다. 이 printf() 함수가 가변인자를 사용한 함수입니다. 또한 scanf() 함수 또한 마찬가지 입니다. t가변인자를 쉽게 사용하기 위해 제공되는 매크로가 있습니다. va_list args; va_start(ap, v) va_arg(ap, t) va_end(ap) 만약 이 매크로를 사용하지 않으면 그와 같이 동작하는 코드를 구현해야겠죠? 한번 해보시는것도 좋겠지만, 어렵게 길을 돌아갈 필요는 없을 듯합니다. 그리고 va_list는 char* .. 2010. 11. 12.
const 위치에 따른 동작 C++ 언어에서 const는 "constant"의 약자로 "변함없는" 이라는 뜻을 가지고 있습니다. 즉, const는 변수를 상수화 시킬 때 사용되어 지고, C++에서 제공하는 키워드 입니다. 아래 소스코드는 const의 위치에 따른 동작에 대해서 설명하고 있습니다. class의 맴버함수에서 모든 위치에 const를 사용한 예로 보자면, const char* Function( const char* const szMessage) const 와 같을 수 있습니다. 왼쪽의 const부터 본다면, 첫번째 const는 반환값에 대한 상수화입니다. 값을 반환 받으려면, 꼭 const 타입으로 받아야 한다는 것으로 사용 범위를 제한 하는 것입니다. 두번째 const는 해당 포인터가 가르키는 대상을 상수화하는 것입니다.. 2010. 11. 12.
함수 포인터 함수 포인터는 함수를 가르키는 포인터입니다. 즉, 함수의 주소를 저장하는 포인터 변수 입니다. 함수 포인터를 선언 할 때는 반환 타입이 무엇인지.. 어떤 매개변수를 갖는 함수인지를 나타내어 선언 합니다. 만약 void Print(char* szMessage) 라는 함수를 가르키기 위해서는 void (*pFunc)(char*) 로 선언하게 되고, pFunc라는 변수를 사용하여 반환 타입이 void이고, 매개변수로는 char*를 갖는 함수의 주소를 저장 할 수 있습니다. - 소스 코드 #include void Print(char* szMessage) { printf("%s\n", szMessage); } int main(int argc, char* argv[]) { void (*pfunc)(char*); p.. 2010. 11. 11.
MultiByteToWideChar와 WideCharToMultiByte 함수 wcstombs()와 mbstowcs()를 이용해서 UNICODE ANSI 문자열 변환을 할 때 문제가 발생 했다. wcstombs()를 사용해서 WCHAR 문자열에서 char 문자열로 변환을 할 때 영어는 아무런 문제 없이 동작한다. 하지만 한글을 변환 할 때 문자열이 알수없는 문자들로 변환된다. 그 이유는 한글은 2byte이고 영문은 1byte라는데 있다. WCHAR* uniStr은 _T("ab안녕") 이라는 문자열의 메모리 구조이다.61006200bec8b3e700 char* ansStr은 위의 UNICODE문자열을 받기 위한 문자열 배열이다. 이 함수가 호출되었을 때 ansStr의 메모리를 보면 아래와 같다. 61 62 be b3 0 이와 같은 구조로 들어가기 때문에 한글이 WCHAR 문자열이 c.. 2010. 11. 9.
INI 파일 제어 함수 (Get...Profile... / Write...Profile...) INI파일은 단순 구조의 텍스트 파일로 이루어져 있는 설정 파일이다. INI파일의 확장자는 ".INI"라는 파일 확장자를 사용 하지만, ".CFG", ".conf", ".TXT" 등의 다른 확장자를 사용하기도 한다고 한다. ○ INI 파일의 형식 INI파일은 섹션, 매개변수, 주석으로 세 부분으로 구성되어있다. 섹션은 한개 이상의 매개변수의 집합의 이름이라고 할 수 있다. 섹션의 이름은 괄호([,])로 구분된다. 매개변수는 키와 값으로 구성되어있다. 등호(=)로 좌측은 키, 우측은 값으로 표현한다. 주석은 세미콜론(;)으로 주석의 시작을 알리고, 그 줄의 끝 부분까지를 주석으로 처리한다. ; 홍길동이 2001년 4월 1일에 마지막으로 수정하였음 [owner] name=홍길동 organization=최고의.. 2010. 11. 4.
API 함수 레퍼런스 API 함수 레퍼런스 Win32 API 함수의 목록입니다. 총 개수는 1946개입니다. 공통 컨트롤, ODBC, C-Run time 함수 등은 제외된 개수입니다 밑줄-9개 _hread _hwrite _lclose _lcreat _llseek _lopen _lread _lwrite _TrackMouseEvent A-71개 AbnormalTermination AbortDoc AbortPath AbortPrinter AbortProc AbortSystemShutdown AccessCheck AccessCheckAndAuditAlarm AccessCheckByType AccessCheckByTypeAndAuditAlarm AccessCheckByTypeResultList AccessCheckByTypeResul.. 2010. 11. 4.