Можно ли создать окно с помощью C ++ / WinRT из консольного приложения? - PullRequest
0 голосов
/ 18 января 2020

При использовании 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 из консольного приложения ? Спасибо.

...