我需要在启动应用程序期间创建一个没有控制台窗口或(任何其他窗口)的exe应用程序。
我为此尝试了以下内容:
项目设置是visual stduio default。
#include "stdafx.h"
#include <windows.h>
#include "TlHelp32.h"
#include <iostream>
#include <string>
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
return 0;
}
上面的代码汇编得很好。
但如果我将字符集更改为“使用Unicode字符集”,则会出现以下编译错误。
错误C2731:'WinMain':函数无法重载
我正在Windows 7 64位计算机和Visual Studio Build平台上构建应用程序x64。
提前感谢您的帮助。
答案 0 :(得分:1)
是的,当您使用UNICODE生成时,入口点将获取命令行参数的Unicode字符串。所以这需要一个不同的声明:
int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPWSTR lpCmdLine, int nShowCmd)
或者您可以使用#include <tchar.h>
,因此无论哪种方式都可以使用,这些日子并不重要:
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
答案 1 :(得分:0)
创建Windows服务而不是控制台应用程序。
答案 2 :(得分:0)
在Visual Studio中,创建一个新的“EMPTY项目”。添加名为“main.cpp”的新源文件。使用以下模板(假设您要使用Unicode构建):
<li>