VC 에 콘 솔 프로그램 창 구현 코드 숨 기기

3527 단어 콘 솔 프로그램
다음은 win 32 console application 의 console 창 을 숨 기 는 방법 을 소개 합 니 다.이 방법 은 컴 파일 러 의 링크 스위치 를 설정 하여 이 루어 지 는 것 이기 때문에 컴 파일 러 의 링크 스위치 옵션(즉 linker 옵션)을 살 펴 보 겠 습 니 다.먼저 linker 의/subsystem 옵션 을 살 펴 보 겠 습 니 다.이 옵션 의 문법 형식 은 다음 과 같 습 니 다.
/subsystem:{console|efi_application|efi_boot_service_driver|efi_rom|efi_runtime_driver|native|posix|windows|windowsce}[,major[.minor]]
이 링크 옵션 은 실행 가능 한 파일 console:win 32 문자 모드 프로그램 을 운영 체제 에서 실행 하 는 방법 을 알려 줍 니 다.이 유형의 프로그램 이 실 행 될 때 dos 창 과 유사 한 콘 솔 창 이 생 깁 니 다.프로그램의 주 함수 가 main()또는 wmain()이면 기본 적 인 상황 에서 이 프로그램 은 콘 솔 프로그램 입 니 다.
extensible firmware interface
cpu 의 구체 적 인 구조 와 관련 된 매개 변수 옵션 은 자주 사용 되 지 않 습 니 다.여기 서 자세히 소개 하지 않 습 니 다.
관심 이 있 으 면 intel 홈 페이지 를 방문 하여 관련 내용 native 를 볼 수 있 습 니 다.장치 드라이브 옵션,/driver:wdm 옵션 이 설정 되 어 있 으 면 이 링크 옵션(native)은 기본 옵션 posix 입 니 다.windows nt 종 에서 poix 서브 시스템 에서 실행 되 는 응용 프로그램 windows:이 유형의 응용 프로그램 은 console 창 이 생기 지 않 습 니 다.이 유형의 응용 프로그램의 창 은 사용자 가 직접 만 듭 니 다.쉽게 말 하면 표준 win 32 application 입 니 다.그 입구 주 소 는 winmain()함수 나 wwinmain()함수 의 주소 입 니 다.응용 프로그램 에서 정의 하 는 주 함수 가 winmain 또는 wwinmain 이면 기본 적 인 상황 에서 이 프로그램 은 하나 입 니 다.
win32 application !windowsce:
windows ce 에서 실행 되 는 프로그램
major and minor (optional):
주 버 전 번호 와 차 버 전 번 호 를 선택 할 수 있 습 니 다.이 옵션 은 0~65535 사이 의 10 진 정수 입 니 다.위 에서 보 듯 이 win 32 console application 을 만 들 면 linker 의/subsystem 옵션 은 console 이 어야 합 니 다.vc 개발 환경의 procject->setting->link->procject option 에서 볼 수 있 습 니 다!다음은 응용 프로그램 이 어떻게 실행 되 는 지 다시 봅 시다!vc 로 작 성 된 프로그램 을 알 고 있 습 니 다.실행 할 때 cc 라 이브 러 리 지원 이 필요 합 니 다.c/c 프로그램 을 실행 할 때 링크 기 는 먼저 프로그램의 시작 함 수 를 찾 습 니 다.예 를 들 어 console 프로그램 을 만 들 었 다 면,컴 파일 러 의 링크 스위치 는 다음 과 같은 형식 입 니 다./subsystem:console/entry:maincrtstartup(ansi)/subsystem:console/entry:wmaincrtstartuup(유 니 코드)win 32 application 을 만 들 었 다 면,컴 파 일 러 의 링크 스위치 는 다음 형식/subsystem:windows/entry:winmain(ansi)/sbusystem:windows/entry:wwinmain(uincode)위의 두 가지 형식 으로 procject->setting->link->procject option 에서 위의 subsystem 과 entry 를 모두 설정 할 필요 가 없습니다./subsystem:console 만 설정 했다 면,그러면 기본 entry 스위치 는 기본 적 인 상황 에서/entry:maincrtstartup 이 어야 합 니 다.반대로 프로그램 에서 main 함 수 를 정의 하면 기본 적 인 상황 에서/subsystem 스위치 는/system:console 이 어야 합 니 다.기본 적 인 상황 에서/subsystem 과/entry 스위치 는 일치 합 니 다.즉,console 는 maincrtstartup 이나 wmaincrtstartupwindows 에 대응 하여 winmain 또는 wwinmain 에 대응 하지만 우 리 는 수 동 으로 변경 하 는 방식 으로 그들 을 일치 하지 않 게 할 수 있 습 니 다.예 를 들 어 우 리 는 이렇게 변경 할 수 있 습 니 다

#pragma comment( linker, /subsystem:windows /entry:maincrtstartup ) //
int main(int argc, char* argv[])
{
messagebox(null, hello, notice, mb_ok);
return 0;
}
기본 적 인 상황 에서 링크 가/subsystem 에서 windows 옵션 을 볼 때 winmain 이나 wwinmain 을 자동 으로 찾 지만 입구 주 소 를 강제로 지정 합 니 다.프로그램 을 실행 할 때 기본 console 창 이 숨겨 집 니 다!위 는 코드 에서\#pragma 명령 을 사용 하여 설정 하고 또 하 나 는 바로 개발 환경 에 있 는 것 이다.
procject->setting->link->procject 옵션 에서 수 동 으로 변경 합 니 다!
이렇게 많이 써 서 자신 도 약간 어 지 럽 고 어 쩔 수 없 었 습 니 다.예전 에 글 을 쓴 적 이 없 었 기 때문에 표현 이 좋 지 않 을 수 있 으 니 양해 해 주 십시오.
1:console 프로그램 이 다 썼 다 면 고 칠 수 없고 고 칠 수 있 습 니 다.API 프로그램 을 작성 하고 창 을 그리 지 말고 CreateProcess 로 기 록 된 console 프로그램 을 호출 하여 속성 을 SW 로 설정 합 니 다.하 이 드 면 돼.2:콘 솔 로 쓸 수 없습니다.(CONSLOE)WINMAIN 으로 입 구 를 만 들 면 됩 니 다.창 을 그리 지 않 으 면 다른 사람 이 볼 수 없습니다.프로 세 스 를 작업 표시 줄 에 숨 기 는 방법 만 생각해 보 세 요.3:console 프로그램 이 라면 API 함수 GetStdHandle()로 콘 솔 프로그램의 창 핸들 을 얻 고 창 4://이 숨 김 콘 솔\#pragma comment(linker,linker,"/subsystem:\"windows\"/entry:\"mainCRTStartup\")콘 솔 프로그램 을 쓰 려 면 이 걸 로 콘 솔 프로그램 에 콘 솔 창 을 숨 겨 라!

좋은 웹페이지 즐겨찾기