GetSystemDirectory

¿øÇü

UINT GetSystemDirectory(LPTSTR lpBuffer, UINT uSize);

MFC ¿øÇü

ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½

Àμö

¢ºlpBuffer : À©µµ¿ìÁî ½Ã½ºÅÛ µð·ºÅ丮ÀÇ °æ·Î¸¦ ´ëÀÔ¹ÞÀ» Ãâ·Â¿ë ¹öÆÛ.

¢ºuSize : ¹öÆÛÀÇ Å©±â

¸®ÅÏ

¼º°øÇÏ¸é ¹öÆÛ¿¡ º¹»çµÈ ¹®ÀÚ °³¼ö°¡ ¸®ÅÏµÇ¸ç ¹öÆÛÀÇ Å©±â°¡ ÀÛ¾Æ ½ÇÆÐÇÑ °æ¿ì ¿ä±¸µÇ´Â ¹öÆÛ Å©±â¸¦ ¸®ÅÏÇÑ´Ù. °æ·Î¸¦ ±¸ÇÏÁö ¸øÇßÀ» °æ¿ì 0À» ¸®ÅÏÇÑ´Ù.

¼³¸í

À©µµ¿ìÁî ½Ã½ºÅÛ µð·ºÅ丮ÀÇ °æ·Î¸¦ ±¸ÇÑ´Ù. lpBuffer´Â °æ·Î¸¦ ´ëÀÔ¹ÞÀ» ¼ö ÀÖ´Â ÃæºÐÇÑ ±æÀ̸¦ Á¦°øÇØ¾ß Çϴµ¥ ÀϹÝÀûÀ¸·Î MAX_PATH±æÀ̸é ÃæºÐÇÏ´Ù. Á¶»çµÈ °æ·Î´Â ¹é½½·¹½¬ ¹®ÀÚ¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. ½Ã½ºÅÛ µð·ºÅ丮´Â ¿î¿µÃ¼Á¦ µ¿ÀÛ¿¡ ÇʼöÀûÀ¸·Î ÇÊ¿äÇÑ DLL, OCX, DRV µîÀÇ Áß¿äÇÑ ÆÄÀÏÀ» °¡Áø´Ù.

½Ã½ºÅÛ Æú´õ´Â À©µµ¿ìÁî µð·ºÅ丮 ¾Æ·¡¿¡ ÀÖÀ¸¸ç ÀϹÝÀûÀ¸·Î 95/98°è¿­Àº SystemÀ̶ó´Â À̸§À» °¡Áö¸ç NT/2000°è¿­Àº System32¶ó´Â À̸§À» °¡Áø´Ù. ±×·¯³ª ´ÙÀ½ ¹öÀüÀÇ ¿î¿µÃ¼Á¦¿¡¼­´Â ÀÌ µð·ºÅ丮ÀÇ À̸§ÀÌ ¹Ù²ð ¼öµµ ÀÖÀ¸¹Ç·Î ½Ã½ºÅÛ µð·ºÅ丮ÀÇ °æ·Î°¡ ÇÊ¿äÇÑ °æ¿ì´Â ¹Ýµå½Ã ÀÌ ÇÔ¼ö·Î ±× °æ·Î¸¦ Á¶»çÇÏ¿© »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ½Ã½ºÅÛ Æú´õ¿¡ DLLÀ» º¹»çÇÏ´Â ¼³Ä¡ ÇÁ·Î±×·¥ÀÇ °æ¿ì ÀÌ Æú´õÀÇ °æ·Î¸¦ Á¤È®ÇÏ°Ô ±¸ÇØ º¹»çÇØ¾ß ¸ðµç ÇÁ·Î±×·¥ÀÌ DLLÀ» Á¦´ë·Î °øÀ¯ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â Src °æ·Î¿¡ ÀÖ´Â MyProgram.dllÀ» À©µµ¿ìÁî ½Ã½ºÅÛ Æú´õ·Î º¹»çÇÑ´Ù.

GetSystemDirectory(Dest,MAX_PATH);
strcat(Dest,"\\MyProgram.dll");
CopyFile(Src,Dest,FALSE);

ÀϹÝÀûÀ¸·Î ¼³Ä¡ ÇÁ·Î±×·¥ÀÌ ÀÌ ÇÔ¼ö¸¦ ¸¹ÀÌ »ç¿ëÇϴµ¥ ¸¶Âù°¡Áö ÀÌÀ¯·Î ¼³Ä¡ ÇØÁ¦ ÇÁ·Î±×·¥µµ »èÁ¦ÇÒ ÇÁ·Î±×·¥ÀÇ Á¤È®ÇÑ °æ·Î¸¦ Á¶»çÇϱâ À§ÇØ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ½Ã½ºÅÛ Æú´õ¸¦ Á¶»çÇؼ­ º¸¿©ÁØ´Ù. ½ÇÇà °á°ú´Â ÀÌ·¸´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	TCHAR SysPath[MAX_PATH];

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		GetSystemDirectory(SysPath,MAX_PATH);
		TextOut(hdc,2,2,SysPath,lstrlen(SysPath));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

 

Âü°íÇÔ¼ö

GetWindowsDirectory : À©µµ¿ìÁî°¡ ¼³Ä¡µÈ °æ·Î¸¦ Á¶»çÇÑ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr