할껀하고놀자

[Win32] visual studio 2017에 c++ winforms 창 띄우기 본문

[IT]

[Win32] visual studio 2017에 c++ winforms 창 띄우기

working_hard 2018. 2. 10. 00:30
728x90

visual studio 2017버전에서는 winform을 아무리 찾으려고 해도 찾을 수가 없었습니다. 삽질을 많이 하고 구글링을 이곳 저곳 많이 해본 결과 방법을 드디어 찾게 되었습니다. 


1. 우선 visual studio ctrl + shift + n 키를 누르신 후 새 프로젝트를 만들어봅니다. (필자는 여기에서 c#만 winform이 지원이 되어있고, c++은 winforms가 지원이 되지 되지 않아 매우 삽질을 많이 했습니다. 그래서 우선 아무것도 모르시는 분들을 위해 여기에 대한 해결책부터 알아봅시다.)



처음 프로젝트를 만들면 이 CLR 조차 없는 경우가 있습니다. 그 때는 이름 위에 있는 visual studio 설치 관리자를 열어줍니다. 



여기서 이 패키지를 설치해 주시면 CLR이 설치가 되는 것을 확인하실 수 있습니다. 간단하지만 모르면 winforms가 어디있지..? 하면서 찾으시다가 winform창을 띄워보지도 못한 채 포기하실 수도 있습니다.. 저같은 사람이 더이상 나오지 않기를 바라며 이 글을 올립니다. 


2. 자 다시 본론으로 돌아와서, 패키지를 설치하시면 CLR 빈 프로젝트를 실행하실 수 있게 되었습니다. 이름은 아무렇게나 마음에 들게 지어주시고, 확인을 눌러주시면 실행됩니다.



3. project2 우클릭 후 속성을 눌러주세요




4. 속성창에서 다룰 내용은 두가지입니다. 먼저, 링커-> 시스템 -> 하위시스템을 창모드로 바꾸어 줍니다. 이건 체크박스에서 선택할 수 있는 것입니다. 




5. 다음으로는 고급 텝으로 가셔서 진입점을 Main으로 작성해 줍니다. 이건 타이핑으로 작성하시는 겁니다. 다 수정하셨다면 적용 클릭, 확인 클릭하셔서 설정 변경을 완료해주세요.




6. 다시 project2 우클릭 -> 추가 -> 새항목 클릭하시던지 단축키 ctrl + shift + a 클릭하셔서 새 항목 창을 띄워줍니다. 그 후 UI 텝의 windows From을 클릭 후 확인버튼 클릭!!






7. 오류가 나왔습니다!




위치: Microsoft.VisualStudio.Designer.Interfaces.IVSMDCodeDomProvider.get_CodeDomProvider()

위치: Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_Provider()
위치: Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
위치: Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
위치: Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)


대충 이런 오류인데요, 당황하지 않고~ 오류를 해결해 보도록 하겠습니다. 



8. MyFrom.cpp로 가셔서 다음과 같이 입력해 주시기 바랍니다. 중간에 빨강색 동그라미는 자신의 프로젝트 이름을 나타냅니다. 오타 없이 입력하신 후 저장하기 눌러주세요.



using namespace System;

using namespace System::Windows::Forms;


[STAThreadAttribute]

void Main(array<String^>^ args) {

Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

Project2::MyForm form;

Application::Run(%form);

}


9. 저장 후 visual studio 를 껏다가 다시 켜줍니다. 아래와 같이 오류가 해결되어 정상적인 윈폼이 띄워진 것을 볼 수 있습니다. 이제 걸음마를 뗄 수 있게 되었습니다!! 



Comments