前言
在之前的SimpleCG程序,我们发现都会打开一个控制台窗口(下图红色部分),那是为了方便调试程序,或者输出一些文本信息。如果是在用户电脑运行,有个黑窗口则非常不美观,所以要怎么才能关闭它呢?下面说说方法
一、去掉已有程序控制台窗口
对于现有程序,我们可以使用如下步骤:
1、修改原有main函数。
将
int _tmain(int argc, _TCHAR* argv[])
修改为
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
2、设置编译属性,下面以VS2010为例子
菜单栏==〉项目==〉属性==〉配置属性==〉链接器==〉系统==〉子系统 修改如下
可以看到已经没有了黑窗口
二、新建项目直接选择windows程序
如果是新建项目,则可以一开始就选择没有控制台出现
1、以VS2010为例
菜单栏==〉新建项目==〉Win32项目
点确定后==〉下一步出现下面的对话框
钩选空项目后点完成。
就建立了空项目,然后在源文件右键==〉新建项目
添加新的源文件
Game.cpp内容如下
#include "../import/include/SimpleCG.h"
#ifdef _DEBUG
#pragma comment(lib,"../import/lib/SimpleCG_MDd.lib")
#else
#ifdef _WIN64
#pragma comment(lib,"../import/lib/x64/MTRelease/SimpleCG_MT64.lib")
#else
#pragma comment(lib,"../import/lib/SimpleCG_MT.lib")
#endif
#endif
#define C_TETRIS_VERSION 1001
#define C_IMAGE_WIDTH 640
#define C_IMAGE_HEIGHT 480
LRESULT OnKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam);
LRESULT OnLButtonDown( HWND hWnd, WPARAM wParam, int nX, int nY );
void InitGame(HWND hWnd)
{
GetKeyboardInput()->onKeyDown = OnKeyDown;
GetMouseInput()->onMouseDownLeft = OnLButtonDown;
}
//绘制游戏
void RenderGame()
{
outtextXY(50,50,_T("Hello Game"));
}
//更新游戏状态
void UpdateGame( UINT nElapse )
{
}
//按键消息响应函数
LRESULT OnKeyDown(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
return 0;
}
LRESULT OnLButtonDown( HWND hWnd, WPARAM wParam, int nX, int nY )
{
return false;
}
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
SCG_GameLoopInfo info;
info.nFPS = 60;
info.nHeight = C_IMAGE_HEIGHT;
info.nWidth = C_IMAGE_WIDTH;
info.pFunDrawProcess = RenderGame;
info.pFunFrameUpdate = UpdateGame;
info.pFunInitGame = InitGame;
info.pFunInput = NULL;
if( !StartGameLoopEx( &info ))
return 1;
return 0;
}
此处需要注意SimpleCG.h和SimpleCG.lib库文件与源文件的相对路径要设置正确
#include "../import/include/SimpleCG.h"
#ifdef _DEBUG
#pragma comment(lib,"../import/lib/SimpleCG_MDd.lib")
#else
#ifdef _WIN64
#pragma comment(lib,"../import/lib/x64/MTRelease/SimpleCG_MT64.lib")
#else
#pragma comment(lib,"../import/lib/SimpleCG_MT.lib")
#endif
#endif
一切顺利,直接编译运行将会成功看到Hello World