>백엔드 개발 >C++ >wWinMain을 사용할 때 MinGW C 프로젝트에서 'WinMain에 대한 정의되지 않은 참조' 오류가 발생하는 이유는 무엇입니까?

wWinMain을 사용할 때 MinGW C 프로젝트에서 'WinMain에 대한 정의되지 않은 참조' 오류가 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-05 11:25:02939검색

Why Does My MinGW C   Project Throw an

MinGW에서 wWinMain을 사용하여 WinMain에 대한 정의되지 않은 참조 해결(C)

int main()을 int WINAPI wWinMain(HINSTANCE)으로 바꾸려고 할 때 hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) MinGW를 컴파일러로 사용하는 C 응용 프로그램에서 "WinMain에 대한 정의되지 않은 참조" 오류 메시지가 나타날 수 있습니다. 이 오류는 wWinMain 진입점을 기본적으로 지원하지 않는 Visual C와 MinGW의 CRT 시작 라이브러리 간의 불일치로 인해 발생합니다.

해결책:

MinGW 최신 버전의 경우 , 명령줄에 -municode 링커 옵션, IDE의 링커 옵션 또는 Makefile을 추가하면 wWinMain을 사용할 수 있습니다.

g++ other_options_and_arguments -municode

그러나 -municode를 지원하지 않는 이전 버전의 MinGW의 경우, 해결책은 표준 WinMain 기능을 다시 사용하는 것입니다. 이 경우 코드는 다음과 같이 수정될 수 있습니다.

<code class="c++">int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR pCmdLine, int nCmdShow)</code>

참고:

Visual C는 "lpCmdLine" 매개변수가 있는 wWinMain 진입점을 지원합니다. "LPWSTR"을 사용하면 전처리기 정의를 사용해야 하므로 복잡성이 추가되고 작업이 더 번거로울 수 있습니다. 따라서 프로그램의 특정 요구 사항이 유니코드 명령줄 사용을 요구하지 않는 한 MinGW로 작업할 때 표준 WinMain 기능을 사용하는 것이 좋습니다.

위 내용은 wWinMain을 사용할 때 MinGW C 프로젝트에서 'WinMain에 대한 정의되지 않은 참조' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.