При использовании Win32 API на самом деле не обязательно иметь точку входа winmain для создания окна, потому что мы все еще можем вызывать RegisterClassExW
и CreateWindowExW
, et c. Интересно, возможно ли это сделать также при создании окна C ++ / WinRT, поскольку почти в каждом примере на Inte rnet используются проекты шаблонов.
Я пытался создать структуру, которая наследует implements<App, IFrameworkView, IFrameworkViewSource>
со всеми необходимыми функциями (Initialize, Uninitialize, Load, SetWindow, Run и т. д. c.), затем вызовите CoreApplication::Run(winrt::make<App>())
внутри int main()
, но WinRT либо жалуется на отсутствие предварительного запуска init_apartment()
, либо показывает странную ошибку как WinRT originate error - 0x80070057 : 'serverName'
и что HRESULT
равно E_INVALIDARG
, и что hresult_invalid_argument(take_ownership_from_abi)
выброшено. Кроме того, исходный файл, созданный с помощью шаблона проекта, даже не должен сначала запускать init_apartment()
, что я не мог понять, почему.
Возможно ли создать окно C ++ / WinRT из консольного приложения ? Спасибо.