
vc
文章平均质量分 83
syflyhua
这个作者很懒,什么都没留下…
展开
-
VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称转载 2013-07-04 12:11:36 · 648 阅读 · 0 评论 -
DgbView 调试类
#ifndef __MYDBG_HEADER_FILE_#define __MYDBG_HEADER_FILE_#define __DBG_RELEASE#ifdef __DBG_RELEASEvoid DbgPrintfA(LPCSTR lpFmt,...);void DbgPrintfW(LPCWSTR lpFmt,...);void DbgDumpBuf(转载 2013-05-09 14:43:03 · 920 阅读 · 0 评论 -
VC中隐式链接无.LIB动态链接库的方法
VC中隐式链接无.LIB动态链接库的方法茅煦鹏 xpmao@163.net摘要: 本文提出在不具备动态链接库的源文件或. Lib输入库文件或欲调用Windows未公开函数的情况下重建.Lib文件的方法,并给出相应的例子。关键词:未公开函数 VC DLL 无源文件 .Lib文件 隐式链接undocumented function,no source ,implicit转载 2013-05-21 09:56:36 · 1520 阅读 · 0 评论 -
虚函数和虚继承及其在内存中布局
虚函数和虚继承及其在内存中布局1.虚函数一般类的布局class A { public: int m_pbl;转载 2013-05-16 18:40:53 · 613 阅读 · 0 评论 -
WTL工程中出现运行“Did you forget to pass the LIBID to CComModule::Init”的解决方法
开发WTL项目的时候,在运行的时候出现一个ALERT提示,提示内容如下:问题原因:我们从提示的语句中很容易看到,这是一个GUID_NULL造成的错误。所以我检查代码之后,是工程模块加载方法CComModule::Init需要三个参数,第三个参数GUID如果为默认的NULL,编译通过,但是运行的时候出现了以上的一个ASERT提示,我们找到调用这个的地方,是在winma原创 2013-05-15 14:19:53 · 673 阅读 · 0 评论 -
有符号/无符号数混合运算
有关C语言中有符号/无符号数混合运算的小问题这两天的工作需要涉及到对无符合数,有符号数作混合运算。作了一些实验,发现自己写了这么多年的程序,以前对于符号数计算相关的理解居然仍存在一些盲点。有符号数与无符号数混合运算可能有三种混合方式1。操作数全为有符号数如:int a = -1;int b = 2;a + b;2。操作数全为无符号数转载 2013-04-19 10:39:55 · 1345 阅读 · 0 评论 -
wsprintf swprintf sprintf
wsprintf要求的第一个参数是LPTSTR,假设环境是UNICODE的,那么LPTSTR相当于就是wchar_t* 就是宽字符指针,在非Unicode环境下就是char*有关格式化字符串的函数还有如下,详细用法各位可以查看MSDN,和上面所介绍的都差不多sprintf 单字节版本的C/C++库函数swprintf 宽字节版本的C/C++库函数而我们上面的转载 2013-04-27 15:51:02 · 1036 阅读 · 0 评论 -
GetMessage和PeekMessage的区别
在Win32中使用GetMessage和PeekMessage都可以获取对应该程序产生的消息。他们有什么区别呢?GetMessage的一般用法是GetMessage(&msg,NULL,0,0);这样可以接受所有的消息,GetMessage在没有产生消息的时候并不返回,而是一直在等待,直到一个消息返回;当消息不是WM_QUIT时,返回一个非零值,也就是说,当是WM_QUIT时会转载 2013-04-26 11:07:07 · 707 阅读 · 0 评论 -
sendmessage和postmessage的区别
大概区别: PostMessage只负责将消息放到消息队列中,不确定何时及是否处理 SendMessage要等到受到消息处理的返回码(DWord类型)后才继续 PostMessage执行后马上返回 SendMessage必须等到消息被处理后才会返回。详细说明:函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPA转载 2013-03-21 15:42:00 · 975 阅读 · 0 评论 -
DDE
DDE(Dynamic Data Exchange,动态数据交换)是进程间通讯(InterProcess Communication,IPC)的方法。进程间通讯(IPC)包括进程之间和同步事件之间的数据传递。DDE使用共享内存来实现进程之间的数据交换以及使用DDE协议获得传递数据的同步。DDE协议是一组所有的DDE应用程序都必须遵循的规则集。DDE协议可以应用于两类DDE应用程序:第一类是基于消息转载 2013-04-15 14:23:59 · 1296 阅读 · 0 评论 -
FS寄存器资料
转自 http://blog.youkuaiyun.com/yushiqiang1688/archive/2010/01/04/5127180.aspxFS寄存器指向当前活动线程的TEB结构(线程结构)偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUse转载 2013-05-23 19:15:29 · 1545 阅读 · 0 评论 -
ClientToScreen ScreenToClient GetWindowRect GetClientRect
ScreenToClient BOOL ScreenToClient( HWND hWnd, // handle to window LPPOINT lpPoint // screen coordinates); 该函数把屏幕上指定点的屏幕坐标转换成用户坐标。所谓用户坐标即hwnd窗口的相对坐标ClientToScreen 于上相反原创 2013-05-11 16:21:56 · 697 阅读 · 0 评论 -
GetWindowDC-BeginPaint-GetDC 区别详解
1. BeginPaint和EndPaint用在WM_PAINT消息处理当中;GetDC可以在处理非WM_PAINT消息时获取设备描述表句柄。 2. BeginPaint返回的设备描述表句柄只能在PAINTSTRUCT结构中指定的矩形范围内绘图,并使该矩形区域有效;GetDC返回的设备描述表句柄可以在整个窗口客户区上绘图,但不使客户区中任何可能的无效区域变得有效。 GetWindow转载 2013-05-24 15:53:31 · 1099 阅读 · 0 评论 -
图标覆盖之IShellIconOverlayIdentifier
想实现类似SVN样式的文件夹及文件的效果,即如果文件已经有改动,则需要在相应的文件图标上添加一个标志。下面的几个连接可以提供很多参考http://msdn.microsoft.com/en-us/library/windows/desktop/bb761265(v=vs.85).aspxhttp://msdn.microsoft.com/en-us/library/wind转载 2013-07-08 18:42:37 · 2080 阅读 · 0 评论 -
广度 深度 遍历文件夹
#include #include #include #include #include #include #pragma comment(lib, "Shlwapi.lib")#include using namespace std;#ifdef _UNICODE #define tstring wstring#else#define tstring string#原创 2013-05-31 20:14:31 · 773 阅读 · 0 评论 -
使用ATL::CWindowImpl实现Win32窗口
开发大型GUI界面程序MFC当仁不让,但如果是开发图形应用程序,并不需要大规模界面控件,没有必要链接庞大的MFC库,直接使用platform sdk会很麻烦,这时ATL中的关于Windows的封装就是最好的选择[cpp] view plaincopy#include #include class CMyWindow转载 2013-06-20 17:01:42 · 1154 阅读 · 0 评论 -
C++程序员成长历程
1、可以考虑先学习C. 大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语言写得好不好看。 C++是C的一个面向对象的解释,C++为C扩充了大规模工程应用,复杂的系统结构的组织和掌控方法,但是,我认为,C++骨子里还是C的。转载 2013-06-17 10:17:40 · 926 阅读 · 0 评论 -
xx
http://bbs.pediy.com/showthread.php?t=172494转载 2013-05-30 10:55:52 · 559 阅读 · 0 评论 -
WM_USER和WM_APP[转]
WM_USER常量是Windows帮助应用程序定义私有窗口类里的私有消息,通常使用WM_USER+一个整数值,但总值不能超过0x7FFF。#define WM_USER 0x0400 WM_APP常量是Windows帮助应用程序定义私有消息,通常使用WM_APP+一个整数值,但总值不能超过0xBFFF。#define WM转载 2013-05-15 15:52:24 · 1367 阅读 · 0 评论 -
二维数组和指针
1.二维数组和指针二维数组和指针1、二维数组和数组元素的地址若有以下定义:int *p, a[3][4]; 1)二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的每一个成员又是一个一维数组。如以上定义的a数组,则可视a数组由a[0]、a[1]、a[2]等三个元素组成,而a[0]、a[1]、a转载 2013-05-14 20:24:21 · 788 阅读 · 0 评论 -
POINT RECT
point = *((POINT *)&rect);原创 2013-05-11 16:17:31 · 678 阅读 · 0 评论 -
GetSystemMetrics GetDeviceCaps
GetSystemMetrics 可以获取窗口中菜单和标题的高度,这样我们可以相对获取编辑区的大小SM_CYMENU SM_CYCAPTIONGetDeviceCapsHORZSIZE:物理屏幕的宽度(毫米);VERTSIZE:物理屏幕的高度(毫米);HORZRES:屏幕的宽度(像素);VERTRES:屏幕的高度(光栅线)AS原创 2013-05-11 15:55:39 · 867 阅读 · 0 评论 -
WinDbg分析DMP文件方法完全攻略
前言:在C++实际开发过程中,开发出来的程序,一般情况下由开发人员进行单元测试,然后移交给测试人员进行测试。在开发人员测试出现的bug,我们可以直接在本地进行调试。如果测试人员测试出崩溃级别的bug,如果我们需要调试往往借助于vs提供的Remote Debugger工具进行远程调试(关于vs2010远程调试的方法,请参考http://blog.sina.com.cn/s/blog_a459dc转载 2013-04-15 10:37:07 · 1553 阅读 · 0 评论 -
关于VC Linker的/INCREMENTAL链接选项(转)
VC Linker默认会使用/INCREMENTAL选项产生incremental linking效果。使用此选项产生的exe或dll文件将比不使用此选项产生的文件要大一些,因为Linker会向代码中插入填料代码或数据。Linker这样做的目的是为了在代码有变化时不用重新产生整个exe或者dll,而只用将里面的填料替换掉,从而达到incremental linking的目的。由于Linker向转载 2013-04-15 11:01:30 · 1228 阅读 · 0 评论 -
WM_USER和WM_APP
WM_USER常量是Windows帮助应用程序定义私有窗口类里的私有消息,通常使用WM_USER+一个整数值,但总值不能超过0x7FFF。#define WM_USER 0x0400 WM_APP常量是Windows帮助应用程序定义私有消息,通常使用WM_APP+一个整数值,但总值不能超过0xBFFF。#define WM转载 2013-03-21 11:28:27 · 806 阅读 · 0 评论 -
批处理 %~0
%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录cd是转到这个目录,不过我觉得cd /d %~dp0 还好些%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录cd是转到这个目录,不过我觉得cd /d %~dp0 还好些选项语法: ~0 - 删除任何引号("),扩充 %转载 2013-02-06 15:44:11 · 3617 阅读 · 0 评论 -
关于Z序的总结
关于Z序的总结 Z 序:一个重叠窗口的堆,每个窗口在Z 序中 都有唯一一个位置。一个窗口的Z 序 ,指明了该窗口在重叠窗口堆中的位置。这个窗口堆 是沿着一个虚拟的轴——“ Z 轴”,从屏幕上垂直向屏幕外延伸。 Z 序顶部的窗口覆盖 Z 序中的其他窗口。 Z 序底部的窗口被 Z 序中的其他窗口覆盖。 系统用一个单链表维护 Z 序。系统按照顶端窗口、顶层转载 2013-01-21 14:59:53 · 537 阅读 · 0 评论 -
http://blog.sina.com.cn/s/blog_4ac0a0d30100cp9d.html
http://blog.sina.com.cn/s/blog_4ac0a0d30100cp9d.htmlSetWindowLong和SetWindowPos函数详解SetWindowPos函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗转载 2013-01-19 15:48:25 · 1069 阅读 · 0 评论 -
Union和Struct的内存分配
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。也就是说Big-endian模式符合人的习惯,而Little-endian更加方便计算机操作。例如,16bit宽的数0x1234在Little-endian模式CP转载 2013-02-02 11:33:03 · 387 阅读 · 0 评论 -
大端法、小端法、网络字节序 转
关于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endia转载 2013-02-02 11:27:12 · 455 阅读 · 0 评论 -
大端小端存储模式以及其对Union数据类型的影响
计算机都是以八位一个字节为存储单位,那么一个16位的整数,也就是C语言中的short,在内存中可能有两种存储顺序big-endian和litte-endian.考虑一个short整数0x3132(0x32是低位,0x31是高位),把它赋值给一个short变量,那么它在内存中的存储可能有如下两种情况:大端字节(Big-endian):----------------->>>>>>>>转载 2013-02-02 11:24:58 · 535 阅读 · 0 评论 -
从C++到C++/CLI
http://www.cnblogs.com/feisky/archive/2009/11/22/1607999.html刘未鹏(pongba) /文 看起来只是在C++后面多写了一个“/CLI”,然而其意义却远不止于此,google的c++.moderated版上为此还发起了数星期的讨论,在国内大部分人对C++/CLI还不是很了解的情况下,google上面已然硝转载 2012-06-05 16:59:24 · 1096 阅读 · 0 评论 -
CRegKey类来操作注册表
CRegKey Members Visual Studio 2005Other Versions2 out of 5 rated this helpful Rate this topicMethodsAttachCall this method to attach原创 2012-04-16 14:37:03 · 1080 阅读 · 0 评论 -
vc dll 调试
1.打开工程属性,调试2.在工作目录 填:$(OutDir)3.在命令填:rundll32.exe4.将命令参数填为:xxx.dll,function (即调试的dll和dll的输出函数。)原创 2011-11-25 17:01:30 · 502 阅读 · 0 评论 -
批处理技术内幕 ECHO命令介绍
echo是批处理中最简单的命令,但是你真的掌握了吗?你知道echo输出空行的十种方法吗?你知道用echo怎么输出on或者off或者/?吗?你知道echo, echo+ echo.哪个效率更高吗众所周知,如果echo后面跟一个环境变量,但是该变量却为空时,相当于不加任何参数的echo,即输出当前echo是on还是off。很多文章或者教程给出的解决方案都是在echo后面加一转载 2013-02-06 15:37:53 · 848 阅读 · 0 评论 -
批处理获取当前路径
@echooffecho 当前盘符:%~d0echo 当前盘符和路径:%~dp0echo 当前批处理全路径:%~f0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前CMD默认目录:%cd%pause转载 2013-02-06 16:13:04 · 346 阅读 · 0 评论 -
%~0
%~0 表示当前批处理的路径,去掉引号的路径%~f0 表示当前批处理的绝对路径,去掉引号的完整路径这是扩展表示方法,具体用法cmd下输入for/?可以查看到.不明白这样写啥意思,因为按理%~0表示的就是去引号的当前批处理完整路径了.cls 清屏命令.if "%~0"=="%~f0" cls如果前面的if判断,左右边相等则执行后面的命令.转载 2013-02-06 15:54:59 · 1180 阅读 · 0 评论 -
Windows消息机制概述
Windows消息机制概述消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,转载 2013-04-03 09:36:37 · 553 阅读 · 0 评论 -
如何从PRINTDLG 结构体中获得打印机的名称
如何从PRINTDLG 结构体中获得打印机的名称?http://msdn.microsoft.com/zh-cn/site/ms646843里面的字就是看不懂,似乎是说调用 PrintDlg 之后, hDevMode中会指向一个DEVMODE对象,但是我使用DEVMODE *devmode = (DEVMODE*)pd.hDevMode;DEVNAMES *转载 2013-03-20 10:43:35 · 1724 阅读 · 0 评论 -
堆和栈的区别 (转贴)
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态转载 2013-03-20 11:18:10 · 532 阅读 · 0 评论