해결된 질문
작성
·
672
·
수정됨
0
안녕하세요~ IOCP까지 강의를 들으면서 예제들을 다운로드 하면서 실행하고 이해하고 하였습니다. 예제들인, Windows 프로젝트를 다운로드해서 실행하는 방식 말고, 직접 손 코딩이 하고 싶어 만들려고 하니, 오류도 나고 뭐가 뭔지 잘 모르는 부분이 있어 남겨봅니다. 일단 저가 시도 한 부분 적어보고, 수정해야 할 부분 피드백 부탁드립니다.
(아니면 그냥 순차적으로 전체적으로 하는 방법 설명해주셔도 됩니다.^^)
첫번째로. Windows 데스크 톱 마법사에서 데스크톱 애플리케이션 미리 컴파일된 헤더만 클릭하였습니다.
두번째로 미리 컴파일된 헤더 추가하는 방법 링크 https://hungrysoul9.github.io/2019/09/26/add-vs-pre-complied-header/ 처럼 stdafx.cpp 추가하고 stdafx.h 해서 뭘 어떻게 해야되는지 모르겠고,
->여기서 조금 헤더파일 pch관련된 부분 수정하고 ctrl+f5 누르면
(
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 LNK2019 WinMain@16"int _cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 함수에서 참조되는 확인할 수 없는 외부 기호 IOCP_chat D:\C++\IOCP_chat\MSVCRTD.lib(exe_winmain.obj) 1
오류 LNK1120 1개의 확인할 수 없는 외부 참조입니다. IOCP_chat D:\C++\IOCP_chat\Debug\IOCP_chat.exe 1
)
다음과 같은 오류가 뜹니다..
따라서 ->https://pang2h.tistory.com/156
링크를 참조해서 속성 링커에 시스템에 하위 시스템을 콘솔 또는 지우니까 해결이 되었는데,,,
이렇게 만들어 지는 건가요?
해결이 되었다면 되었는데,,
C/C++과는 다르게 Windows 프로그래밍은 처음이라,, 어떻게 프로젝트를 만들어야 하는지 정리 한번 부탁드립니다. 또는 맞게 잘 하였다면,, 피드백 부탁드립니다. 감사합니다.
(질문 등록하고 수정하고 한 글입니다...^^)
답변 1
1
Visual Studio 2022 실행 후 인트로 화면에서 '새 프로젝트 만들기' 선택
프로젝트 템플릿에서 Windows 데스크톱 마법사 템플릿 선택
새 프로젝트 구성에서 적절한 프로젝트 이름을 입력하고 '만들기' 버튼 클릭
Windows 데스크톱 프로젝트 대화상자에서 애플리케이션 종류는 '콘솔 애플리케이션(.exe)를 선택하고 추가 옵션에서 '미리 컴파일된 헤더' 항목 체크
생성된 코드가 다음과 같은지 확인
#include "pch.h"
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
VS 2022에서 미리 컴파일된 헤더는 stdafx.h가 아니라 pch.h 입니다. 소켓 프로그래밍에 제공된 예제들은 제가 오래 전에 작성해둔 것이라 stdafx.h가 있는 것입니다. 2023년 현재 미리 컴파일된 헤더는 pch.h 입니다.
그리고 WinMain@xxxxxx 링크오류가 난 것은 윈도우 애플리케이션으로 프로젝트를 생성한 후 WinMain() g함수를 삭제해서 발생한 것입니다. 참고하시기 바랍니다. 감사합니다.