unicode 转换 ascii
1.WideCharToMultibyte 函数
2.使用ATL的W2A 使用时头文件 atlbase.h atlconv.h
W2A 使用还要注意内存溢出 不能再一个循环里直接调用 W2A,要自己写一个调用函数
3.控制台输出 unicode wcout<<
4. COM使用返回值 HRESULT 不能简单的使用 S_OK判断,返回错误代码有很多个,返回成功的代码也有多个
是否正确应该使用 SUCCEEDED宏判断
5.COM的理解 客户端通过服务器请求类工厂给它创建一个组件对象并把指针给它使用
6.客户程序和组件程序 通过接口互相通信,接口有虚拟表,虚拟表含有所有函数实现的地址,指向的就是组件类
7.char *p = "yuqingbin"; sizeof(p) 的大小 是4,编译器中 不管指向什么类型的指针,其大小就是 sizeof(void *) == 4
8.字节序,大小端的问题,大端 高位在前(在内存上端),小端 高位在后(在内存的低端)
9.当一个类中只含有虚拟函数时(不论几个),类在内存中的大小就是四个字节,其实就是指向虚拟函数表指针的大小
10.union 成员共享一个地址空间
11.int i=3; int s = ++i + ++i + ++i; s等于18 汇编调试可以清楚看到过程
12.多线程同步:事件、临界区、互斥对象、信号量
linux 下 信号量 互斥
13.shell脚本的编写 使用vi或者vim命令创建脚本文件 开始第一行要写 #! /bin/sh
接着就可以写大量的shell命令 保存退出 改变脚本的权限 使其可执行 chmod +x 脚本文件名
./脚本文件名 参数
14. enablewindow 可以使窗口无效,禁止接受鼠标键盘等输入设备信息,在触摸屏软件设计中可以应用
15.wince同步问题:
可以跨进程: 互斥体、信号量、事件通知
不能跨进程: 临界区、互锁函数
16.wince进程间通信:点对点消息、内存映射
17.系统提供的ExtEscape 直接查询、设置显示驱动
18.wince 输出调试信息,printf() RETAILMSG() ,这两个函数第二个速度比较快,使用比较多
19.C++ 多态的实现是使用virtual机制,使用虚拟函数表,运行期绑定函数地址,来实现不同的调用
对于普通的成员函数调用在编译器函数的调用地址就确定了,而对于虚拟函数,编译器只是把虚拟函数表指针传 递,运行期再根据具体对象移动虚拟函数表指针,实现不同的函数调用。
20.C++ 模板也是一种多态机制,只是编译时期就确定的,叫做静态多态。
21. 内存分配,new 是否比malloc 快
22. C++ 和 C的区别 : C++ 面向对象,C面向过程,C++ 三个主要性质:多态、封装、继承
23. new delete 是运算符,malloc free 库函数,new delete 主要是C++ 处理对象的
step into 调试看了看,发现new 还是调用了 malloc ,而malloc 最后都调用了 HeapAlloc
24.在MFC程序中打开文件有个 CFileDialog对话框,如果在非MFC程序想使用这个功能,可以使用win32 api getopenfilename
25.coredll.ll wince 调用接口,实现触摸校屏
26.启动另一个程序 createprocess 函数 获取窗口的名字 getwindowtext()