c/c++学习
文章平均质量分 61
wsgxiaomianao
这个作者很懒,什么都没留下…
展开
-
windows驱动之间异步调用(二)
ZwCreateFile之后会产生一个文件句柄,根据文件句柄获得文件对象指针,使用文件原创 2014-06-24 16:52:03 · 877 阅读 · 0 评论 -
C++类型转换
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多转载 2014-03-13 16:53:34 · 449 阅读 · 0 评论 -
test
理解c++语言中一些概念以及它们之间的区别(需要深刻理解): (1)局部变量全局变量静态变量 const常量寄存器变量宏定义的常量 static 变量 注:包括它们的内存分配区域,作用域,初始化等等 (2)理解malloc与new之间的区别,以及free与delete之间区别 (3)内联函数与宏定义的区别,它们各有什么优点 (4)内存分配转载 2013-12-16 09:02:27 · 695 阅读 · 0 评论 -
windows核心编程(二)关于windows的UNICODE的编程相关
//宽字节定义: typedef unsigned short wchar_t//字符串连接 char *strcat(char *,const char *); wchar_t *wcscat(wchar_t *,const wchar_t *);//比较 char *strcmp(const char *,const char *); wchar_t *wcscmp(const wcha原创 2013-11-14 09:51:57 · 1213 阅读 · 0 评论 -
堆、栈、自由存储区、全局/静态存储区和常量存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区 1.栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 2.堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 3.原创 2012-05-25 09:20:40 · 1693 阅读 · 0 评论 -
简单的C++ template实例
#include #include using namespace std; template T MaxNum(T x,T y) { return (x > y ? x : y); } template class CMaxNum{ public: CC m_x,m_y; CMaxNum(CC x,CC y) { m_x = x; m_y = y; } CC原创 2013-08-27 22:48:34 · 643 阅读 · 0 评论 -
windows开发,不要仅仅使用GetLastError了,更加人性化的显示错误描述
void CheckErrorCode() { HLOCAL hlocal = NULL; DWORD dwErrorCode = GetLastError(); DWORD systemLocal = MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL); BOOL bOk = FormatMessage(FORMAT_MESSAGE_FROM_SY原创 2013-04-27 09:43:33 · 707 阅读 · 0 评论 -
_access在unicode字符集下的问题。。
_access在unicode字符集下使用的时候,传入的路径参数中含有中文字符要使用CP_ACP格式来转化,若使用CP_UTF8转化,则返回-1. 不包含中文,没影响。 CString m_csCon(_T("D:\\360安全浏览器下载\\usbcleaner20101017")); int nLen = WideCharToMultiByte(CP_ACP原创 2013-04-27 14:52:30 · 3075 阅读 · 0 评论 -
fopen("con","w")
今天无意中发现在windows下面不能建立文件名为con的文件,新建时系统提示与现有的文件名同名,无法新建。后来査了一下,con是windows系统保留的系统关键字。除此还有:con、prn、aux、nul、com0、com9、lpt0、lpt9等等。 下面的代码很意思: #include int main() { int i; FILE *fp;转载 2012-08-31 09:23:57 · 1333 阅读 · 0 评论 -
有关c/c++中位域的疑问
#include #include /*位域: 把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数 (1)一个位域必须存储在同一个字节中,不能跨两个字节。 如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始 (2)由于位域不允许跨两个字节,因此位域的长度不能大于一个字节的长度,也就是说不能超过 8 位二进位。 (3)位域可以无位域名,原创 2014-08-26 10:17:05 · 663 阅读 · 0 评论