vc++01:ansi unicode

关于安装

我原来安装了vs2019,但手比较贱,所以干净地删掉了,重新下载vs2013
删除2019用的是https://blog.csdn.net/bj_zhb/article/details/104131524
在vc驿站有vs各个版本的资源,我下载的pro版,用vc驿站提供的激活码激活了
然后再安装Visual Assist X 2076并破解,
之后还安装了vc_mbcsmfc.exe

大概就这样完成环境

关于include的""与<>

“”
这个一般用于工程里的文件

<>
这个一般用于系统自带的文件

关于结构体的指针

在这里插入图片描述
区分指针*,解引用*,取地址&,引用&

关键字

const设为常量
static设为全局
enum设为枚举类型,尽量让里面的值不重复,常与switch case 结合

风格:习惯上可以在枚举类型的自定义类型名前加上大写的 E 加以区分
如 enum Esex { male, female} ;

工程的分享

分享时将工程文件夹sln文件同一目录下的 debug 和 release 文件夹 删除掉
再将与sln同一目录下的同名文件夹 里面的 debug 和 release 文件夹 删除掉

.h文件与.cpp文件

.h 里常放类成员的声明 .cpp 里常具体实现类内的方法

vs2013里可直接通过工程向导自动生成一对.h和.cpp文件

使用时include .h文件就好

vs会对类的成员进行内存对齐

在这里插入图片描述
占60b
关闭内存对齐

#pragma pack(push)
#pragma pack(1)
class a{
};
#pragma pack(pop);

类方法不占空间

class

设置多个构造函数以应对需求

类成员还是别用指针了吧

在这里插入图片描述
类似python的classmethod

文件io

https://www.cctry.com/forum.php?mod=viewthread&tid=290068&highlight=visual%2Bassist%2Bx
在这里插入图片描述
二进制

`在这里插入图片描述

关于统一字符集

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

宽字节转窄字节

#include <windows.h>
char *WideChar2Ansi(wchar_t *pWideChar){
	if (!pWideChar)return NULL;
	char *pszBuf = NULL;
	int needBytes = WideCharToMultiByte(CP_ACP, 0, pWideChar, -1, NULL, 0, NULL, NULL);
	if (needBytes > 0){
		pszBuf = new char[needBytes + 1];
		ZeroMemory(pszBuf, needBytes + 1);// using 0 to fill the region
		WideCharToMultiByte(CP_ACP, 0, pWideChar, -1, pszBuf, needBytes, NULL, NULL);
	}
	return pszBuf;
}

如果在函数内是用的char pszBuf[100]={0};的方式申请的内存,最后又返回指针,是非法的,因为这段内存的作用域是这个函数,函数执行完了内存就会释放,所以必须在堆上申请内存,也就是用new或者malloc来申请
new玩要delete掉

窄字节转宽字节

#include <windows.h>
wchar_t *AnsiChar2Wide(char *pChar){
	if (!pChar)return NULL;
	wchar_t *pszBuf = NULL;
	int needWChar = MultiByteToWideChar(CP_ACP, 0, pChar, -1, NULL, 0);
	if (needWChar > 0){
		pszBuf = new wchar_t[needWChar + 1];
		ZeroMemory(pszBuf, (needWChar + 1)*sizeof(wchar_t));
		MultiByteToWideChar(CP_ACP, 0, pChar, -1, pszBuf, needWChar);
	}
	return pszBuf;
}

注意输出要用 wcout 和 wcin 不然输出仅仅是地址

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值