C/C++
文章平均质量分 72
ALCAT
苦心人天不负
展开
-
ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS
一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go! 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来转载 2011-11-15 16:13:36 · 653 阅读 · 0 评论 -
#pragma pack 使用说明
原文地址: http://hi.baidu.com/zhanghuikl/blog/item/124ea7998108a9006e068c19.html声明:整理自网络达人们的帖子,部分参照MSDN。作用:指定结构体、联合以及类成员的packing alignment;语法:#pragma pack( [show] | [push | pop] [, identi转载 2012-04-09 17:35:26 · 873 阅读 · 0 评论 -
预处理定义操作符Stringizing Operator (#) ,Charizing Operator (#@), Token-Pasting Operator (##)
一、开始前几天看代码,居然出来了“##”这个东东,不知道做什么的,学C++这么长时间了,居然。。。(太不给面子了)本着“先行先赢”的实践学习精神和“为人民服务”的奉献精神,以网上找的很多资料为参考,美美地总结一下,激励自己,启发别人。二、Charizing Operator (#@)1.作用字符化操作符。只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。作用,将传的转载 2012-02-01 14:34:06 · 797 阅读 · 0 评论 -
VC输出“烫”和“屯”
相信经常用VC的朋友对屏幕输出的一大堆“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫”不会陌生,但是也许会很奇怪,为什么会出现“烫”字呢?莫非改程序导致系统运行缓慢,发热过高???非也!下面让我解释一下吧,有错误的地方请指正:在上一篇文章中,我们逆向了Debug模式下的一个C程序,发现栈区开辟的存储空间都是使用0CCCCCCCCh来填充4字节单位的,也就是说,栈区开辟的存取局部变量的空间的每转载 2012-01-31 11:28:35 · 9918 阅读 · 1 评论 -
VC定时器的用法:SetTimer和Ontimer
Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。 Settimer是设置,Ontimer是响应Settimer消息的。SetTimer函数的用法1 )用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型UINT_PTR SetTimer(转载 2011-12-26 14:19:28 · 2064 阅读 · 0 评论 -
使用ShellExecute函数来安装INF文件
写驱动过程中有时候需要自动安装驱动程序,那么可以使用ShellExecute函数来完成这个工作: 首先查下看看你的HKEY_CLASSES_ROOT\inffile\shell\Install\command的值是什么,比如我的机子上是%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInst转载 2011-12-23 15:37:38 · 3174 阅读 · 0 评论 -
VC中调用外部函数的命令
WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 WinExec 两个参数,前一个指定路径,后一个指定显示方式。 ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的转载 2011-12-23 15:13:03 · 1780 阅读 · 0 评论 -
驱动开发中使用安全字符串函数
一、前言 大量的系统安全问题是由于薄弱的缓冲处理以及由此产生的缓冲区溢出造成的,而薄弱的缓冲区处理常常与字符串操作相关。c/c++语言运行库提供的标准字符串操作函数(strcpy, strcat, sprintf等)不能阻止在超出字符串尾端的写入。 基于Windows XP SP1以及随后的操作系统的Windows DDK版本提供了安全字符串函数(safe stri转载 2011-11-08 17:04:01 · 1462 阅读 · 0 评论 -
VS2008下编译错误(error C2065: '_S1max' : undeclared identifier)的解决办法
最近用VS2008+WDK调试程序,但是即使我新建的一个工程也调试不成功,想当的纠结,查了N久终于找到一篇靠谱的,然后才调试通过,先把原文贴上:After deep investigation, i solved my problem. The problem is after Windows Driver Kit (WDK) 7.1.0 installation , i ha原创 2011-11-08 13:53:59 · 5213 阅读 · 0 评论 -
CString 函数介绍
CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456"); CString csStr2(csStr);CString( TCHAR ch, int nRepeat = 1 );例:CString转载 2011-11-07 17:07:31 · 772 阅读 · 0 评论 -
CString 操作指南
CString Management原著:Joseph M. Newcomer翻译:littleloach原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管转载 2011-11-07 16:39:09 · 761 阅读 · 0 评论 -
使用USES_CONVERSION
首先,先介绍下USES_CONVERSION为何物。USES_CONVERSION是ATL中的一个宏定义。用于编码转换(用的比较多的是CString向LPCWSTR转换)。通俗的说,就是你用了这个宏后,就可以用一系列的字符串转换宏,有OLE到T,T到OLE,OLE到W,W到OLE等等,非常方便。或者说,这个宏会告诉编译器,在紧接的代码中我们要用ole库中代码(如ansi 到unicod原创 2011-11-07 16:22:34 · 14134 阅读 · 2 评论 -
Windows内核驱动中操作文件
一. 在驱动中使用文件在Windows执行体中,通过文件对象来代表文件,该文件对象是一种由对象管理器管理的执行体对象。例如:目录也是由文件对象代表的。内核组件通过对象名来引用文件,即在文件的全路径前面加\DosDevices。(在Windows 2000及后续操作系统中,\??等同于\DosDevices)。例如,文件C:\WINDOWS\example.txt的对象名为\DosDevic转载 2011-11-08 17:10:13 · 5839 阅读 · 1 评论 -
UNREFERENCED_PARAMETER
UNREFERENCED_PARAMETER是一个宏,定义如下#define UNREFERENCED_PARAMETER(P) (P)MSDN上的说明如下:UNREFERENCED_PARAMETER expands to the parameter or expression passed. Its purpose is to avoid compiler war原创 2011-11-15 17:19:41 · 3388 阅读 · 2 评论 -
关于编写DLL的一些问题
这几天需要编写DLL,突击了下,发现不少很好的资料,收藏在这里。感谢烛秋总结的这么好:原文地址:编写DLL所学所思(1)——导出函数编写DLL所学所思(2)——导出类动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。(1) 显式调用:使用LoadLibrayr载入动态链接库、使用GetProcAddress获取某函数转载 2012-04-26 16:35:07 · 864 阅读 · 0 评论