[英]Windows C++ GUI application
我目前正在将C ++ Qt5 / CMake应用程序从linux移植到Windows。 当在Linux中启动应用程序时,我看到UI并一切正常。 在Windows上首先启动黑色终端,然后从终端启动我的应用程序。 如何在没有黑色控制台的情况下启动应用程序? 它不漂亮。
我正在使用MSVC cmake生成器和Visual Studio 2013 Express。
谢谢你们!
编辑CMakeLists.txt以创建WIN32应用程序
IF(MSVC)
SET(OPTIONS WIN32)
ENDIF(MSVC)
ADD_EXECUTABLE(${APP_NAME} ${OPTIONS}
${HEADER_FILES}
${SOURCE_FILES}
}
编辑main.cpp以使用wWinMain并将输入args转换为argc , argv
#ifdef _MSC_VER
# include <windows.h>
# include <shellapi.h>
#endif
/// ... some code
#ifdef _MSC_VER
INT WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPWSTR, INT)
{
UNREFERENCED_PARAMETER(hInst);
UNREFERENCED_PARAMETER(hPrevInstance);
int argc;
char** argv;
{
LPWSTR* lpArgv = CommandLineToArgvW( GetCommandLineW(), &argc );
argv = (char**) malloc( argc*sizeof(char*) );
int size, i = 0;
for( ; i < argc; ++i )
{
size = wcslen( lpArgv[i] ) + 1;
argv[i] = (char*) malloc( size );
wcstombs( argv[i], lpArgv[i], size );
}
LocalFree( lpArgv );
}
#else
int main(int argc, char *argv[])
{
#endif
QGuiApplication a(argc, argv);
/// ... some code
int code = a.exec();
#ifdef _MSC_VER
{
int i = 0;
for( ; i < argc; ++i ) {
free( argv[i] );
}
free( argv );
}
#endif
return code;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.