我编写了一个触发串口上继电器开关的程序。继电器关闭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;
}
为了防止它在窗口中运行,我必须更改什么?
答案 0 :(得分:3)
尝试添加
#pragma comment(linker, "/SUBSYSTEM:WINDOWS")
如果不起作用,请尝试手动隐藏窗口:
HWND hWnd = GetConsoleWindow(); ShowWindow( hWnd, SW_HIDE );
答案 1 :(得分:0)
您创建了哪种类型的项目?如果选择了控制台应用程序,编译器就会这样做。使用上面的源创建一个空的Win32应用程序。不应该创建任何窗口。如果是,请考虑如何启动应用程序(start,cmd / c等)