VS: [项目属性]->[配置属性]->[常规]->[字符集]
在该属性中选择"使用多字节字符集"或者"使用Unicode字符集" 本代码段均可处理
#include <string>
#ifdef _WIN32
#include <windows.h>
std::string WcharToChar(const wchar_t* wp, size_t encode = CP_ACP)
std::string str;
int len = WideCharToMultiByte((UINT)encode, 0, wp, (int)wcslen(wp), NULL, 0, NULL, NULL);
char* mychar = new char[len + int(1)];
WideCharToMultiByte((UINT)encode, 0, wp, (int)wcslen(wp), mychar, len, NULL, NULL);
mychar[len] = '\0';
str = mychar;
delete[] mychar;
return str;
std::wstring CharToWchar(const char* c, size_t encode)
std::wstring str;
int len = MultiByteToWideChar((UINT)encode, 0, c, (int)strlen(c), NULL, 0);
wchar_t* mywchar = new wchar_t[len + int(1)];
MultiByteToWideChar((UINT)encode, 0, c, (int)strlen(c), mywchar, len);
mywchar[len] = '\0';
str = mywchar;
delete[] mywchar;
return str;
#endif
void show_file(const std::string& szFile)
#ifdef _WIN32
#ifdef UNICODE
std::wstring wstr = CharToWchar(szFile.c_str(), CP_ACP);
::SetFileAttributes(wstr.c_str(), FILE_ATTRIBUTE_NORMAL);
#else
SetFileAttributes(szFile.c_str(),FILE_ATTRIBUTE_NORMAL);
#endif
#endif
void hide_file(const std::string& szFile)
#ifdef _WIN32
#ifdef UNICODE
std::wstring wstr = CharToWchar(szFile.c_str(), CP_ACP);
::SetFileAttributes(wstr.c_str(), FILE_ATTRIBUTE_HIDDEN);
#else
::SetFileAttributes(szFile.c_str(), FILE_ATTRIBUTE_HIDDEN);
#endif
#endif
int main(int argc, char *argv[])
hide_file("E:\\test.dat");
show_file("E:\\test.dat");
return 0;
@[TOC](windows C++ 设置文件隐藏(unicode/多字节字符集均可处理))VS: [项目属性]->[配置属性]->[常规]->[字符集]在该属性中选择"使用多字节字符集"或者"使用Unicode字符集" 本代码段均可处理#include <string>#ifdef _WIN32#include <windows.h>std::string WcharToChar(const wchar_t* wp, size_t encode)
用于C/C++的繁简转头文件,可以迅速定位转换。
//*****************************说明******************************
//==========================AllCode[][]数组========================
//繁简转换编码对照数组,每6个编码为一组
//依次为Big5Unicode, GBUnicode, Big5(BE), GB(BE), Big5(LE), GB(LE)
//Big5Unicode: 繁体字的Unicode编码
//GBUnicode: 简体字的Unicode编码
//Big5(BE): 繁体字的Big5编码,Big-Endian序系统用
//GB(BE): 简体字的GB编码,Big-Endian序系统用
//Big5(LE): 繁体字的Big5编码,Little-Endian序系统用
//GB(LE): 简体字的GB编码,Little-Endian序系统用
//===============================================================
//=========================CodeIndex[][]数组=======================
//快速序号查找对照数组,每6个为一组
//依次为Big5Unicode, GBUnicode, Big5(BE), GB(BE), Big5(LE), GB(LE)
//可以根据已知的字符编码以及字符集查找其在AllCode[]数组中的序号
//举例:
//已知“华”的GB编码为0xBBAA,要转为Big5码。
//由于GB码是大字节序,那么如果在Little-Endian的系统上,其在内存中的值应该是0xAABB,
//于是我们可以在CodeIndex[][]数组中找到编码为0xAABB的那一行的GB(LE)所对应的数值为9311,
//然后再找到AllCode[]中序号为9311的那行数据。
//然后就可以将“华”在内存中的数据0xAABB转换为9311那一行对应的Big5(LE)编码0xD8B5
//===============================================================
//由于简体字与繁体字为一对多的关系,所以此对照方法从简体转为繁体并不是十分准确,
//最好的办法是使用词库转换,但词库转换比较复杂,需要大量的词库对照。
//****************************************************************
不要泄密,不要公开提供抽象的实体的内部信息。
为了尽量减少操作抽象的调用代码和抽象的实现之间的依赖性,必须隐藏实现内部的数据。否则,调用代码就能够访问该信息,或者更糟,操作该信息,而原来应属于内部的信息就泄漏给了调用代码所依赖的抽象。应该公开抽象,而不是数据。
信息隐藏主要从一下两方面降低了项目的成为,加快了项目的进度,减少了项目的风险。
C++中的文件操作
在C++中,类ifstream,ofstream和fstream是处理有关文件I/O的。引用这三个类均要在头文件fstream.h内申明,如果程序涉及到对文件的操作必须加头文件:
#include 一.文件的打开
在上述三个类中,均具有成
bool CopyMyDirFlie(const std::string strMyDir, const std::string strDestDir)
std::string strDir = strMyDir;
std::string strNewDestDir = strDestDir;
CreateDirectory(strDestDir.c_str(), NULL);
if (strDir.at(strDir.length() - 1) != '\\')
CFileStatus status;
CFile::GetStatus(path,status); //获取原属性
status.m_attribute |= 0x02; //追加隐藏属性
CFile::SetStatus(path,status); //设置新属性
1. CreateFile 这个函数的功能是创建或者打开一个文件或者I/O设备,通常使用的I/O形式有文件、文件流、目录、物理磁盘、卷、终端流等。如执行成功,则返回文件句柄。 INVALID_HANDLE_VALUE 表示出错,会设置 GetLastError 。
函数的声明定义: HANDLE WINAPI CreateFile(
_In_ LPCTSTR lpFileNa
一上大学才开始接触真正的计算机,到现在已经快三年了,以为自己已经学得很不错了,什么C++、C语言、汇编、操作系统什么的都学了。
但是,今晚陪师妹去听个计算机的通选课,我竟然被震惊了。。。原来计算机也能玩得这么惟妙惟肖啊!!以防忘记,特此写下这篇听课日记!!
进入正题吧!
隐藏文件绝招:
1.鼠标右键属性->隐藏(SB式隐藏)
//////鼠标右击要隐藏的文件或文件夹,属性-->隐
1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。ANSI表示英文字母时就和
ASCII一样,但表示其他文字时就需要用多字节。
2、Unicode:用两个字节表示一个字符的编码方式。比如字符'A'在ASCII下面用一个字节表示,而在
Unicode下面用两个字节表示,其中高字节用“0”填充;函数'程'在ASCII下面用两个字节表示,而在
Unicode下面也是用...
方法一:在你的cpp文件中添加
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
//这种方法无法灵活的显示或者隐藏窗口
方法二:适用于对本身隐藏窗口
#include<Windows.h>
HWND hwnd=GetForegroundWindow();//获取你当前启动窗口的...
在 Windows 下使用 Visual Studio Code 配置 C/C++ 编程环境需要以下步骤:
1. 下载并安装 Visual Studio Code。
2. 安装 C/C++ 扩展,在扩展面板中搜索 "c/c++" 并安装。
3. 安装 GCC 编译器,可以使用 MinGW 或 Cygwin。
4. 配置环境变量,将 GCC 的 bin 目录添加到 PATH 中。
5. 在 VSCode 中配置 tasks.json 和 launch.json 文件以使用 GCC 编译和调试程序。
6. 可以在 VSCode 中使用快捷键编译和调试代码。