1、HWND WindowFromPoint(POINT point)
获取指定点所在的窗口句柄
2、Embedded 嵌入
3、WideCharToMultiByte
宽字符转化为窄字符
4、#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
实现控制台隐藏
5、CWnd::FromHandle(HWND hWnd)
通过窗口句柄获得窗口指针
6、_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
//_CrtSetBreakAlloc(217594);
//内存泄露查找
7、PIP_ADAPTER_INFO
// 网络适配器
8、SHELLEXECUTEINFO
可以控制程序界面的显示
调整入口函数也可以实现界面的隐藏
9、ON_COMMAND_RANGE
ON_CONTROL_RANGE
10、PathFileExists()
11、SHFILEOPSTRUCT()
12、关于防火墙:通过设置某些选项,使软件无法上网
13、字符类型转化
std::string -> CString
CString strTemp = _T("");
strTemp = std::string .c_str();
或 strTemp.Format(_T("%s"),std::string.c_str());
std::string -> char *
char * = std::string.c_str();
char * -> std::string
std::string(char *)
14、
类成员函数的重载、覆盖和隐藏区别?
答案:
a.成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
b.覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
15、
String a(“hello”);
String b(“world”);
String c = a; // 调用了拷贝构造函数,最好写成 c(a);
c = b; // 调用了赋值函数
关键字:explicte
16、编程可优化操作
内存对齐方式
#pragma pack(push,1)
#pragma pack(pop)