L是vc中的宏,将ANSI字符串转换成unicode的字符串。
strlen("asd") = 3;
strlen(L"asd") = 6;
(A/W/T)
_T是一个宏转换 ,让字符串在unicode和ansi两种编码形式下都编译没问题
PS:用 @ 引起来的优点在于换码序列“不”被处理,这样就可以轻松写出字符串,例如一个完全限定的文件名:
@"c:/Docs/Source/a.txt" //rather than "c://Docs//Source//a.txt"
为了避免和其他头文件冲突, STL的头文件不再使用常规的.h扩展。为了包含标准的string类,迭代器和算法,用下面的指示符:
#include <string> #include <iterator> #include <algorithm>
如果你查看STL的头文件,你可以看到象iterator.h和stl_iterator.h这样的头文件。由于这些名字在各种STL实现之间都可能不同,你应该避免使用这些名字来引用这些头文件。为了确保可移植性,使用相应的没有.h后缀的文件名
{
int a;
public:
MyClass() { printf("ctorn"); }
~MyClass() { printf("dtorn"); }
};
void* operator new[](size_t size)
{
void* p = operator new(size);
printf("calling new[] with size=%d address=%pn", size, p);
return p;
}
void * operator delete[] (){
// 主函数
MyClass* mc = new MyClass[3];
printf("address of mc=%pn", mc);
delete[] mc;
Unicode环境下是wchar_t ,ANSI下是char
Unicode下,一个字符代表两个字节, Ansi下是一个字符
sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出到指定的字符串中了
#define DWORD unsigned long 表示一个32位无符号整型数,或用来表示段地址和段地址的偏移量; #include<windows.h>
GC.GetTotalMemory(false)
GC.CollectionCount(0)
REF驱动,它用软件的方式虚拟这些功能.比如我们要测试顶点和像素阴影,但我们的显卡不支持,那么我们就可能通过REF驱动的方式来测试我们的代码,不过这种方式只能用来测试我们的代码,不要把他们发布给我们的最终用户,因为这种方式只存在于SDK中,并且奇慢无比