一:自己写一个控制台程序

2023-05-16

新建一个空项目 名称 位置 自己定义

添加头文件stdafx.h
工程下面 头文件 右键添加 新建项 头文件 名称为 stdafx.h
把集成的 stdafx.h 里面的内容(涵盖了大部分所需的头文件) 全部复制到 我们的工程 stdafx.h里面去

添加源文件stdafx.cpp
里面包含进 stdafx.h
#include “stdafx.h”

添加源文件 WinMain.cpp (这是我们的执行程序)名字自定义
首先也包含进
#include “stdafx.h”

为了后期能快速编译
在 stdafx.cpp 右键 属性 C/C++ 预编译头 设置为 创建 确定
WinMain.cpp 右键 属性 C/C++ 预编译头 设置为 使用 确定

WinMain里 代码如下:
#include “stdafx.h”

#pragma warning(disable:4996) /屏蔽4996错误/

/入口点为C语言main函数,windows应用程序/
#pragma comment(linker, “/entry:mainCRTStartup /subsystem:windows”)/windows/

VOID PrintUI(const char* ExeName,/程序名/const char* UIName /窗口标题/, const char* Color, SHORT X, SHORT Y, WORD W, WORD H)
{
//函数方法
/这个是一个API/
/*
参数1受区域影响分类
*/
setlocale(LC_ALL, “chs”); //命令行控制支持中文

/*创建控制台*/

AllocConsole();  //创建一个输入输出界面;
freopen("conin$", "r+t", stdin);    /*使用输入*/ 
freopen("conout$", "w+t", stdout);  /*使用输出*/

SetConsoleTitle(UIName);   /*API设置窗口标题*/

system(Color);  /*调用CMD命令设置颜色*/
//0 黑色 8灰色
//1 深蓝色 9蓝色
//3 蓝绿色 A 草绿色

/*在常量空间中的字符数组*/
/*char*是一个指针,可以指向堆区和栈区*/

char OldPathName[1024];   /*定义一个字符数组暂用1024个字节,他是在栈区*/
char NewPathName[1024];   /*定义一个字符数组暂用1024个字节,他是在栈区*/

/*
堆区需要程序主动释放,32位程序堆区有2G可以供给程序员使用的空间,栈区一般为1024M
栈区保存的都是局部遍历,函数调用完毕之后会自动释放内存空间
堆区内存可以申请很大,函数调用完后不会释放掉
*/

//下面开始第一个for循环

GetModuleFileName(0, OldPathName, 1024);  /*这个API代表把当前程序路径写入到我们申请的内存空间中*/
strcpy(NewPathName, OldPathName);    /*这个相当于把OldPathName内存拷贝到NewPathName*/

/*
参数1是初始化数据类型
参数2表示运行条件
参数3表示每次运行后变量的变化
*/

for (SHORT i = strlen(NewPathName); i > 0; i--)
{
	if (NewPathName[i - 1] == '\\')
	{
		NewPathName[i] = 0;
		strcat(NewPathName, ExeName);
		break;
	}
}

/*
参数1被修改exe路径
参数2修改名称
*/

//rename(OldPathName, NewPathName);

SetWindowPos(GetConsoleWindow()/*获取当前窗口句柄*/, 0, 0, 0, W, H, SWP_NOMOVE/*不修改坐标*/); //修改窗口宽高
SetWindowPos(GetConsoleWindow(), 0, X, Y, 0, 0, SWP_NOSIZE/*不修改宽高*/);   /*修改窗口坐标*/

return;

}

int _tmain(int argc, _TCHAR* argv[]) /这个是windows上exe的程序入口/
{
//short是C语言的一个短整型数据类型,short表示的范围是65535到-65535,short占用两个字节内存
//长整型是int,int咱用4个字节

PrintUI("新程序", "HelloWorld", "color 0A", 500, 500, 500, 500);

cout << "用C++方式打印出:HelloWorld" << endl;
printf("用C语言打印出:HelloWorld");
/*alt+方向键右可以自动补全代码*/


Sleep(5000);
return 0;  /*表示结束当前函数运行*/

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一:自己写一个控制台程序 的相关文章

随机推荐