Я искал способ сделать это сам и придумал простое решение.
Я предполагаю, что вы запустили проект Win32 по умолчанию (приложение Windows) в Visual Studio, который предоставляет функцию «WinMain». По умолчанию Visual Studio устанавливает точку входа «SUBSYSTEM: WINDOWS». Вы должны сначала изменить это, перейдя на:
Проект -> Свойства -> Компоновщик -> Система -> Подсистема
И выберите «Консоль (/ SUBSYSTEM: CONSOLE)» из выпадающего списка.
Теперь программа не будет запускаться, поскольку вместо функции «WinMain» необходима «основная» функция.
Так что теперь вы можете добавить «основную» функцию, как это обычно делается в C ++. После этого, чтобы запустить программу с графическим интерфейсом, вы можете вызвать функцию «WinMain» из функции «main».
Начальная часть вашей программы должна выглядеть примерно так:
#include <iostream>
using namespace std;
// Main function for the console
int main(){
// Calling the wWinMain function to start the GUI program
// Parameters:
// GetModuleHandle(NULL) - To get a handle to the current instance
// NULL - Previous instance is not needed
// NULL - Command line parameters are not needed
// 1 - To show the window normally
wWinMain(GetModuleHandle(NULL), NULL,NULL, 1);
system("pause");
return 0;
}
// Function for entry into GUI program
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
// This will display "Hello World" in the console as soon as the GUI begins.
cout << "Hello World" << endl;
.
.
.
Результат моей реализации
Теперь вы можете использовать функции для вывода на консоль в любой части вашей программы с графическим интерфейсом для отладки или других целей.