C ++ WIN32:在没有命令提示符窗口的情况下运行程序

时间:2011-11-01 15:33:10

标签: c++ window

我编写了一个触发串口上继电器开关的程序。继电器关闭10ms,之后程序关闭。但是,程序坚持在小命令提示符窗口中运行。我希望程序运行而不用窃取焦点;无论是在后台运行,还是更好,无需打开窗口。

这是完整的程序:

#include <windows.h>

//Initialise Windows module
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
LPSTR lpszArgument, int nFunsterStil)
{
 //Define the serial port precedure
 HANDLE hSerial;

 //Open the port
 hSerial = CreateFile("COM1",GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

 //Switch on relay
 EscapeCommFunction(hSerial, SETDTR);

 //Wait 10ms
 Sleep(10);

 //Switch off relay
 EscapeCommFunction(hSerial, CLRDTR);

 //Close the port
 CloseHandle(hSerial);

 //End with error code 0
 return 0;
}

为了防止它在窗口中运行,我必须更改什么?

2 个答案:

答案 0 :(得分:3)

尝试添加

#pragma comment(linker, "/SUBSYSTEM:WINDOWS")

如果不起作用,请尝试手动隐藏窗口:

HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );

答案 1 :(得分:0)

您创建了哪种类型的项目?如果选择了控制台应用程序,编译器就会这样做。使用上面的源创建一个空的Win32应用程序。不应该创建任何窗口。如果是,请考虑如何启动应用程序(start,cmd / c等)