[WinAPI]API 7[시디롬 에 시디롬 이 있 는 지 판단]

8479 단어 api

 
시디롬 에 시디롬 이 있 는 지 판단 하고 GetDrive Type 과 GetVolumeInformation 함 수 를 사용 하여 구현 할 수 있 습 니 다.먼저 드라이브 루트 경 로 를 GetDrive Type 과 매개 변수 로 사용 합 니 다.반환 값 이 DRIVE 이면CDROM 은 이 드라이브 가 시디롬 이라는 것 을 설명 합 니 다.그리고 GetVolume Information 를 사용 하여 정 보 를 얻 습 니 다.성공 하면 메모리 디스크 가 이미 들 어 갔 음 을 설명 합 니 다.호출 완료 후 GetVolumeInformation 함수 의 일곱 번 째 인자 LPTSTR lpFileSystem NameBuffer 는 파일 시스템 의 분류 문자열 을 저장 합 니 다.CD 는 보통 CDFS 입 니 다.GetVolumeInformation 를 호출 할 때 FALSE 로 돌아 가 고 GetLastError 가 21 로 돌아 오 면 드라이브 에 CD 가 넣 지 않 았 음 을 설명 합 니 다.
 
GetLastError 가 실행 중인 이 스 레 드 의 최근 오 류 를 가 져 옵 니 다.이 함 수 는 많은 시스템 API 가 실행 오류 의 원인 을 되 돌려 주 는 방법 입 니 다.SetLastError 함 수 를 사용 하여 이 스 레 드 의 Last-error 값 을 설정 할 수 있 습 니 다.GetLastError 함수 원형 은 다음 과 같 습 니 다.◇매개 변 수 는 매개 변수 가 없습니다.◇반환 값
반환 값 형식 은 DWORD 로 이 스 레 드 의 Last-error 값 을 표시 합 니 다.
[GetLastError 함 수 는 WinAPI 에서 반환 오 류 를 실행 하 는 데 자주 사용 되 며,가장 자주 사용 되 는 API 함수 입 니 다!error lookup 도구 와 결합 할 수 있 습 니 다.]
 
 1 #include <windows.h>
 2 #include <stdio.h>
 3 #include <tchar.h>
 4 /*     */
 5 #define BUFSIZE            512
 6 
 7 /* ************************************
 8 * int main( int argc, PCHAR argv[] )
 9 *           ,        
10 *               ,   
11 *      。
12 *          ,  “D:\”。
13 **************************************/
14 
15 int main( int argc, PCHAR argv[] )
16 {
17     //         
18     CHAR szFileSystemNameBuffer[BUFSIZE];
19     DWORD dwLastError;
20     DWORD dwFileSystemFlags;
21 
22     //           
23     if( argc != 2 ) 
24     {
25         printf("          ,  : \"D:\\\"
"); 26 return( -1 ); 27 } 28 29 // CD\DVD ROM 30 if(GetDriveTypeA(argv[1])!=DRIVE_CDROM) 31 { 32 printf(" %s CD/DVD ROM。
",argv[1]); 33 return( -1 ); 34 } 35 36 // 37 if (!GetVolumeInformationA( 38 argv[1], NULL, 0, 39 NULL,NULL, 40 &dwFileSystemFlags, 41 szFileSystemNameBuffer, 42 BUFSIZE 43 )) 44 { 45 dwLastError = GetLastError(); 46 if(dwLastError == 21) 47 { 48 printf(" , !
"); 49 return 0; 50 } 51 else 52 { 53 printf("GetVolumeInformation %d
",dwLastError); 54 return 0; 55 } 56 } 57 printf (" , %s。
",szFileSystemNameBuffer); 58 return 0; 59 }

 

좋은 웹페이지 즐겨찾기