원인
필요한 헤더파일이 안불러와진 것..
문제
WinRT로 프로그램을 만드는 중에.. 어떤 오류가 발생했다..
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C3779 'winrt::impl::consume_Windows_UI_Input_IPointerPoint<winrt::Windows::UI::Input::IPointerPoint>::Position': 'auto'을(를) 반환하는 함수를 정의되기 전에 사용할 수 없습니다. ScaraGUIController C:\Users\PKDPMS0328\source\repos\ScaraGUIController\ScaraGUIController\MainPage.cpp 22
이 오류는 WinRT 부분에서만 일어나는 오류 같은데.. 블로그나 해결 방법은 잘 안나와 있어서.. 일단 마이크로소프트 문서에 검색해보니..
https://learn.microsoft.com/ko-kr/cpp/error-messages/compiler-errors-2/compiler-error-c3779
해결 방법은 다행히 있었다..!
해결방법
어쨋든 내 코드의 경우
#include <winrt/Windows.UI.Xaml.Input.h>
void function(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) {
winrt::Windows::UI::Input::PointerPoint point = e.GetCurrentPoint(ControlJoint());
Point_X().Text(winrt::to_hstring(point.Position().X));
Point_Y().Text(winrt::to_hstring(point.Position().Y));
}
대충 이런식의 코드인데.. 여기에서 오류가 난 부분은 point.Position().X 저쪽 부분이다..
여기에서 문제의 저 오류에 winrt::Windows::UI::Input::IPointerPoint 이런게 뭐가 문제가 있다면서 알려주는데
이것을 헤더파일에 추가하면 문제가 해결되는 것이였다..!
그래서 나의 경우에는 IPointerPoint는 Input 헤더 안에 있는 것이기 때문에
#include <winrt/Windows.UI.Input.h> 이 코드로 헤더파일을 추가해서 해결했다..!
#include <winrt/Windows.UI.Xaml.Input.h>
#include <winrt/Windows.UI.Input.h> // 오류 해결에 필요한 헤더파일
void function(winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) {
winrt::Windows::UI::Input::PointerPoint point = e.GetCurrentPoint(ControlJoint());
Point_X().Text(winrt::to_hstring(point.Position().X));
Point_Y().Text(winrt::to_hstring(point.Position().Y));
}
결론
'winrt::impl::consume_Windows_UI_Input_IPointerPoint<winrt::Windows::UI::Input::IPointerPoint>::Position': 'auto'을(를) 반환하는 함수를 정의되기 전에 사용할 수 없습니다.
이런식으로 오류가 뜰 경우
1. <winrt::Windows::UI::Input::IPointerPoint> 부분이 자신의 오류에서 뭐인지 찾는다.
2. winrt::Windows::UI::Input::IPointerPoint 이것에 해당하는 헤더파일을 찾는다. 보통은 맨 뒤에꺼 지운게 아마 헤더파일일 꺼다.. winrt::Windows::UI::Input 여기까지, 그리고 헤더파일로 할 경우 winrt/Windows.UI.Input.h
3. 찾은 헤더파일을 추가해서 문제를 해결한다!!!!
근데.. 애초에 Input::PointerPoint가 필요한 헤더파일이 winrt/Windows.UI.Input.h였다.. winrt/Windows.UI.Xaml.Input.h가 아닌... 그냥.. 필요한 헤더파일을 안불러왔었던 것..
'오류 | 문제 > C++' 카테고리의 다른 글
C/C++ 오류 (/Ycpch.h 명령줄 옵션과 함께 지정한 '#include' 문이 소스 파일에 없습니다.), 미리 컴파일 된 헤더 사용 (0) | 2024.06.01 |
---|---|
WinRT C++ 오류(Windows 스토어 응용 프로그램, 앱이 시작되지 않았습니다.) (0) | 2024.05.28 |
C++ OpenCV Dlib cvtColor 이상한 오류 RGB > BGR > RGB... (0) | 2023.02.27 |
C++ OpenCV 이미지에서 이미지 복사 문제점 (0) | 2023.02.24 |
C++ Dlib dlib::deserialize (오류 예외가 발생함) (0) | 2023.02.01 |