전체 글

전체 글

    [UVA] 11462

    UVA 11462번 문제 입니다. 문제를 보면 n의 값이 0 < n = right) break; // 좌우가 만나면 끝 SWAP(arr[left],arr[right]); } SWAP(arr[left],arr[length-1]); // 기준값과 i위치의 값 교환 QuickSort(arr,left); // 왼쪽 구간 정렬 QuickSort(arr+left+1,length-left-1); // 오른쪽 구간 정렬 } int main() { int length=0; while(scanf("%d",&length)!=EOF && length !=0) { for(i=0;i

    일반 모드에서 부팅시 프로세스 자동으로 실행되게 하기

    여러 프로그램들이 시스템 부팅시 자동으로 프로그램이 실행되는 것을 볼 수가 있는데요 실행 -> msconfig -> 시작 프로그램에 들어가보면 부팅시 자동으로 실행되게 지정되어 있는 프로그램들을 확인하실수 있습니다. 제 컴퓨터에서의 자동실행 설정이 되있는 프로그램들입니다. 그러면 제가 만든 프로그램이 일반 부팅시 자동 실행되게 하려면 어떻게 해야 할까요? 실행 -> regedit ->HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows -> CurrentVersion ->Run에 들어갑니다 그후 -> 새로만들기 -> 문자열 값을 클릭한 후 이름을 변경한후 밑의 값 데이터 에서 "자신의프로그램 경로 \ 자신의 프로그램이름" 을 기록해주시면 됩니다. 정상적으로 작..

    getdrive ( 최근의 드라이버 불러오는 함수)

    // crt_getdrive.c // compile with: /c // Illustrates drive functions including: // _getdrive _chdrive _getdcwd // #include #include #include #include int main( void ) { int ch, drive, curdrive; static char path[_MAX_PATH]; // Save current drive. curdrive = _getdrive(); printf( "Available drives are:\n" ); // If we can switch to the drive, it exists. for( drive = 1; drive Available drives are: A:..

    WinExec ( 프로세서에서 외부 프로세스 실행하기 )

    WinExec 특정 어플리케이션을 실행한다. Note 16비트 윈도우즈에만 제공된다. 어플리케이션은 CreateProcess 함수를 사용하는 것이 좋다. UINT WINAPI WinExec( LPCSTR lpCmdLine, UINT uCmdShow ); Parameters lpCmdLine [in] 실행될 어플리케이션에 대한 명령어 라인이다(파일 이름과 추가적인 파라미터). lpCmdLine 파라미터에 있는 실행 가능한 파일의 이름이 경로를 가지고 있지 않으면, 시스템은 다음의 절차 대로 실행가능한 파일을 찾는다. 1. 어플리케이션이 실행된 경로 2. 현재 디렉토리 3. 윈도우즈 시스템 디렉토리. GetSystemDirectory 함수는 이 디렉토리의 경로를 나타낸다. 4. 윈도우즈 디렉토리. GetWi..

    WM_DEVICECHANGE (착탈) 메시지

    1.WM_DEVICECHANGE 이벤트를 사용하려면?? SD혹은 USB장치 등이 단말기로부터 분리되면 , 시스템은 윈도우에 WM_DEVICECHANGE 메시지를 전달합니다. API 프로그래밍 에서는 PreTranslateMessage 에서 사용하면 되지만 MFC에서는 PreTranslateMessage에서 잡히지 않습니다. DefWinProc에서 잡아주시거나 혹은 ON_WM_DEVICECHANGE() 매크로를 이용하여 잡아야 합니다. 현재 비주얼 스튜디오에서는 위의 매크로를 지원 해주기 때문에 바로 사용 할수 있으나 , EVC (Visual Studio같은 컴파일러 프로그램) 에서는 메시지가 정의되어 있지 않으므로 상수값을 지정해 주거나 따로 정의하여 쓰셔야 합니다. 2. 메시지 핸들러 설치하는 방법 1..

    [WM_DEVICECHANGE 이벤트 종류]

    이벤트 설명 DBT_CONFIGCHANGECANCELED 현재의 구성에 대한 변경요구가 취소됐다. DBT_CONFIGCHANGED 도크 또는 도크해제의 결과 현재의 구성이 변경됐다. DBT_CUSTOMEVENT 커스텀 이벤트가 발생하다. DBT_DEVICEARRIVAL 디바이스가 삽입돼 이용 가능하게 됐다. DBT_DEVICEQUERYREMOVE 디바이스 제거 허가가 요청되다. 어플리케이션은 이 요구를 거부하고 제거를 취소시키는 것이 가능하다. DBT_DEVICEQUERYREMOVEFAILED 디바이스의 제거요구가 취소됐다. DBT_DEVICEREMOVEPENDING 디바이스가 제거되도록 하고 있다. 거부는 할수 없다. DBT_DEVICEREMOVECOMPLETE 디바이스가 제거됐다. DBT_DEVICE..

    포인터 대상의 const 선언

    포인터 변수가 참조하는 대상의 변경을 허용하지 않는 const 선언 아래의 코드에서 보이는 바와 같이 포인터 변수 mafa를 대상으로도 const 선언을 할수가 있다. int main(void) { int num = 20; const int * mafa = &num; * mafa =30 ; // 컴파일 에러!!!!! num = 40; // 컴파일 성공! } 위의 예제에서 주의 깊게 볼 곳은 const 의 선언 위치이다. 이 예제에서 선언된 const의 뜻은 "포인터 변수 mafa를 이용해서 mafa가 가리키는 변수에 저장된 값을 변경하는 것을 허용하지 않겠다! " 라는 의미이다. 그렇다고 해서 포인터 변수 mafa가 가리키는 변수 num이 상수화가 되는 것은 아니다. 다음 예제를 보자 int main(v..

    배열의 길이를 계산하고 싶을때

    int main(void) { int arr1[5] = {1,2,3,4,5}; int arr2[ ] = {1,2,3,4,5,6,7}; int arr3[5] = {1,2}; int ar1Len,ar2Len,ar3Len,i; printf("배열 arr1의 크기 : %d \n",sizeof(arr1)); printf("배열 arr2의 크기 : %d \n",sizeof(arr2)); printf("배열 arr3의 크기 : %d \n",sizeof(arr3)); ar1Len = sizeof(arr1) / sizeof(int); // 배열 arr1의 길이 계산 ar2Len = sizeof(arr2) / sizeof(int); // 배열 arr2의 길이 계산 ar3Len = sizeof(arr3) / sizeof(i..