VS/VC/MFC
Beyond_cn
这个作者很懒,什么都没留下…
展开
-
在Release模式下能单步和断点
我们要怎么样才能在Release模式下能单步和断点呢? 第一步:选择C/C++ Tab,然后在Debug Info:列表里选择“Program Database”第二步:选择Link Tab,然后钩选"Generate debug info"原创 2013-06-07 15:10:14 · 1235 阅读 · 2 评论 -
在VC的一个workspace中使用多个project
vc里有工作空间的概念,一个VC只能有一个工作空间,但一个工作空间可以包含多个工程。 首先vc一般新建一个项目(workspace)都是一个project, 如果需要多个工程: 方法1:新建一个工程,然后选中“add to current workspace”即可。 方法2:已有工程,可以通过“project”菜单-》“insert project to workspace"转载 2012-06-12 17:29:55 · 2752 阅读 · 0 评论 -
在VC中设置屏幕分辨率和颜色质量
使用函数:LONG ChangeDisplaySettings(LPDEVMODE lpDevMode,// graphics modeDWORD dwflags // graphics mode options);示例如下:DEVMODE lpDevMode; lpDevMode.dmBitsPerPel=32; lpDevMode.转载 2012-06-11 17:28:12 · 1683 阅读 · 0 评论 -
EasySize
EasySize是VC中用于排版控件的非常实用的东东.对于初学者来说, 使用起来非常难以理解, 更别提弄出理想的效果.在这里, 我想说一下如何使用. 这里主要是说怎么使用EASYSIZE宏的.BEGIN_EASYSIZE_MAP(which_dialog) EASYSIZE( control_id,left,top,right,bottom,option)END_EAS转载 2013-06-13 08:50:49 · 846 阅读 · 0 评论 -
showwindow updatewindow..
The ShowWindow function, contrary to what you might assume, does only a portion of the task of creating (painting) the window display. It is principally原创 2013-06-10 17:28:04 · 840 阅读 · 0 评论 -
VC 调用 cmd
vc中调用的cmd命令目前知道4种方法,分别是system、WinExec,ShellExecute和CreateProcess四个命令.下面简单介绍一下 :1.在VC中调用DOS命令时,可以用函数system("DOS命令"),如我们经常见的命令system("ipconfig"),当然也可以执行别的应用程序,只要在cmd下执行的在这里应该也没问题,只是注意打开文件或保存文件时若不指定绝转载 2013-05-31 14:44:45 · 982 阅读 · 0 评论 -
Run,RunModalLoop...
Run是CWinApp的成员,主窗口为CFrameWnd或者非模态窗口时,会执行Run的消息循环;RunModalLoop是CWnd的成员,窗口为模态窗口时调用,来进行消息循环,这时一般还在CWinApp的InitInstance函数里,InitInstance必须返回为TRUE然后才会执行到Run();原创 2009-09-04 08:32:00 · 1533 阅读 · 0 评论 -
CString截取字符串全攻略
CString截取字符串全攻略例程1:(csdn) 文件xxxx.dll去掉后面的.dll方法1、 char str[] = "xxxx.dll"char*p;p=strrchr(str, '.');*p = 0;方法2、 CString str="xxxx.dll";int n = str.ReverseFind('.')str转载 2012-06-11 15:05:06 · 952 阅读 · 0 评论 -
利用::ClientToScreen将RECT转换为屏幕坐标
typedef struct tagPOINT { LONG x; LONG y;} POINT, *PPOINT;typedef struct _RECT { LONG left; LONG top; LONG right; LONG bottom;} RECT, *PRECT;BOOL ClientToScreen( _In_ HWND hWnd,原创 2013-06-07 09:57:00 · 3025 阅读 · 0 评论 -
visual SourceSafe...
1、安装服务器端,装完后服务器端会有: 管理界面:Visual SourceSafe Admin 客户端界面:visual SourceSafe 2、服务器端安装完后,路径下有客户端安装目录:NetSetup 共享这个目录,客户端直接用NetSetup安装,只安装客户端界面 3、管理界面:Visua原创 2009-09-03 16:09:00 · 744 阅读 · 0 评论 -
MFC中对话框的数据交换(DDX)和数据校验(DDV)。。。
MFC中对话框的数据交换(DDX)和数据校验(DDV)DDX : dialog data exchangeDDV : dialog data validation文档描述MFC中的DDX DDV机制,如何使用DDX_和DDV_ 函数和定制自己的DDX_ ,DDV_函数;Dialog Data Exchange概要:对话框的数据交换不依赖于任何宏来实现,全部依赖于C++代码实转载 2009-08-04 08:47:00 · 1336 阅读 · 0 评论 -
MapX 控件 鼠标事件响应
用VC进行MapX二次开发时,鼠标消息(如单击,双击,移动等)被MapX屏蔽了,所以这时,为WM_MOUSEMOVE等消息添加处理函数时,这些函数并不会被调用。当又需要对这些消息添加处理函数时,通常的做法是把这些鼠标消息作为“事件”(当然是MapX的事件了),为这些事件添加事件处理函数。(1)当将MapX.h和MapX.c文件添加到工程后,为MapX控件指定一个资源ID,如IDC_MAP。转载 2013-06-03 11:53:57 · 1900 阅读 · 0 评论 -
托盘图标
Windows95/98/NT/2000/XP中,任务栏的右边(托盘)常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到拥有托盘图标的软件,如金山词霸、有实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志。必要时我们可以通过用鼠标点击图标对其进行菜单操作或激活其主窗口。有时我们自己编写的程序也希望有类似的效果,本文详细地介绍用VC+转载 2013-06-14 15:01:57 · 844 阅读 · 0 评论 -
GetTextExtentPoint32
GetTextExtentPoint32 获取的字符串宽高和 dc 所选字体设置有关。原创 2013-06-21 14:51:50 · 991 阅读 · 0 评论 -
CTime和COleDateTime
如何在VC中加减日期, 使用CTime类,如: CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999 CTimeSpan ts = t2 - t1; // Subtract 2转载 2013-06-25 12:03:06 · 831 阅读 · 0 评论 -
Vmware Virtual Debug
Vmware virtual debug 是vmware 6.0新增加的功能,提供开发者在IDE环境中在VMWARE运行的虚拟机中进行调试,不过目前仅支持VS2005和VS2005 TEAM版本,以VS插件形式存在。如果没有VMWARE默认没有装上这个功能的话,可通过vmware6.0的安装程序修改现有功能来添加。 配置步骤:l 目标机器1. Vm转载 2013-07-12 15:11:20 · 1455 阅读 · 0 评论 -
VC6 调试 IE 控件 ocx 断点无法进入
原因:IE默认使用多进程打开网页,debug启动的IE进程和加载ocx的IE进程不是一个进程,所以不能进入断点。解决方案:通过修改注册表将IE改为单进程打开网页:1. 点击【开始】->【运行】 命令:regedit.2. 定位到HKEY_CURRENT_USER -> SOFTWARE -> Microsoft -> Internet Explorer -> Mai原创 2013-07-16 19:51:29 · 2541 阅读 · 0 评论 -
MAPX在VC中的开发
// ----------------------------------------------------------------------- // Reference: <MapInfo MapX 5.0 开发人员指南> // ----------------------------------------------------------------------- 控件加入到工程:转载 2013-07-02 16:30:55 · 913 阅读 · 0 评论 -
mapInfo文件格式详解
MapInfo以表(Tab)的形式存储信息,每个表是由一组MapInfo文件组成,包括: 1、属性数据的表结构文件,后缀为.TAB。该文件定义了地图属性数据的表结构,包括字段数、字段名称、字段类型、字段宽度、索引字段及相应图层的一些关键空间信息描述。.TAB文件实际上是一个文本文件,可以在写字板中打开观察其内容。 2、属性数据文件,后缀为.DAT。该文件存放了地图的属性数据转载 2013-07-02 16:32:54 · 1292 阅读 · 0 评论 -
线程Stack
Stack 增长很多人知道编译器有个设置选项,里面可以设置线程栈的大小,有两个值可以设置:l Stack Reserve Size表示在虚拟内存中保留(Reserve)给栈的虚拟空间大小,Stack增长不能超过这个界限,如果不设置,默认是1M。l Stack Commit Size表示线程初始化时在为其保留的虚拟空间内提交(Commit)的内存大小,如果不设置,默认仅提交一转载 2013-07-02 17:19:43 · 1271 阅读 · 1 评论 -
VC6 双击dsw文件 会关闭之前打开的工程
现象:双击dsw文件打开新的工程时, 如果之前打开了vc6,则vc6会关闭之前已经打开的工程,然后加载新的工程。这不是我们的初衷。原因:但是在双击sln文件时都会新打开一个VS编辑器,加载此工程;研究发现主要是sln文件的打开方式后面跟了个 "%1"。解决方案:编辑dsw的文件打开方式,在后面添加"%1"。步骤:文件夹选项->文件类型->dsw->高级->open->编辑->添加%原创 2013-07-19 10:56:52 · 1632 阅读 · 0 评论 -
VC环境下的头文件包含
一、#include MSDN给出的标准定义如下: #include #include "" :预处理器首先在包含此语句的文件的同级目录,以及所有带有include此头文件的文件目录下搜索,然后后去附加目录和工程目录,以及标准目录下搜索。 也就是说,两者最大的区别是预处理器搜索包含头文件的目录顺序不一样,对于VC2008等环境,两者对于头文件的查找,从结转载 2013-06-04 15:56:58 · 1010 阅读 · 0 评论 -
OnTimer MessageBox
模态MessageBox运行未返回时,屏蔽了对父窗口的操作,当前主线程消息循环阻塞,messagebox自身的消息循环不断的去处理队列里面的消息。WM_TIMERThe WM_TIMER message is posted to the installing thread's message queue when a timer expires. The message is posted原创 2013-06-20 09:45:23 · 961 阅读 · 0 评论 -
DLL动态链接库和LIB静态链接库之程序员经验分析
1:神马是Dll和Lib,神马是静态链接和动态链接大家都懂的,DLL就是动态链接库,LIB是静态链接库。DLL其实就是EXE,只不过没main。动态链接是相对于静态链接而言的。所谓静态链接就是把函数或过程直接链接到可执行文件中,成为可执行程序中的一部分,当多个程序调用同样的函数时,内存里就会有这个函数的多个拷贝,浪费内存资源。而动态链接则是提供了一个函数的描述信息给可执行文件(并没转载 2013-08-14 14:33:55 · 900 阅读 · 0 评论 -
如何删除ActiveX控件
1 查看已经安装的ActiveX控件1) 通过IE 浏览器“管理加载项”工具查看已经安装的ActiveX控件,详细信息中可以获取控件对应的GUID和文件完整路径,以下列出各IE版本打开“管理加载项”的方法: IE6、7下打开“管理加载项”:工具 –> Internet选项 –> 程序 –> 管理加载项。 IE8下打开“管理加载项”:工具 –> 管理加载项。2) 通过转载 2013-08-26 20:20:23 · 12598 阅读 · 0 评论 -
DbgView 显示OutputDebugString 输出内容 不能显示问题总结
确认下面的情况,看看是否有效(我用的是4.76版本): 1. 是否有其他编辑器作为了Debug信息输出窗口。 例如:vc在debug时调用OutputDebugString的内容不会输出到DbgView上。2.版本是否正确。 分两种:Under Windows 9x/Me DebugView can capture output from the following转载 2013-08-26 18:49:11 · 5270 阅读 · 0 评论 -
关于Debug和Release之本质区别的讨论
-------------------------------------- 本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别 2. 哪些情况下 Release 版会出错 2. 怎样“调试” Release 版的程序 -------------------------------------- 关于Debug和Re转载 2013-08-17 19:53:36 · 667 阅读 · 0 评论 -
利用#pragma data_seg在进程间共享变量
#pragma data_seg介绍用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为: #pragma data_seg ("shareddata") HWND sharedwnd=NULL;//共享数据 #pragma data_seg()--------------------------------------------转载 2013-08-17 22:51:59 · 1002 阅读 · 0 评论 -
UML 基础: 类图
这是关于统一建模语言、即UML 里采用的基本图的一系列文章的一部分。在我先前关于序列图的文章 里,我把重点从 UML 1.4 版,转移到 OMG的采用UML 2.0版草案规范(又称为UML 2)。在这篇文章中,我将会讨论结构图,这是已经在 UML 2 中提出的一种新图种类。由于本系列文章的目的是使人们了解记号元素及它们的含意,该文主要关注类图。你很快就会知道这样做的理由。随后的文章将会覆盖结构转载 2013-08-17 22:32:17 · 1130 阅读 · 0 评论 -
进程间通讯方法总结
进程间通讯方法总结进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。转载 2013-08-17 22:40:11 · 980 阅读 · 0 评论 -
VC++ 编写 Active X控件
前言: 暑假在做一个项目的时候,本来是用C#.NET来写的一个港口进出闸的流程控制程序,里面涉及一个响应用PLC的采集信息的问题(PLC用串口和工控机相连接),然后思考如何用C#写串口通讯程序,结果师兄在一旁直接用VC++写了一个“*.ocx控件”,并在自己的电脑上进行了测试,完工后就把生成的“*.ocx”控件注册文件复制到了我们的电脑上。我们就在C#.NET程序里面将此控件拖入到转载 2013-08-17 23:17:32 · 6751 阅读 · 0 评论 -
对Windows程序中设备上下文DC(device context)的理解
对Windows程序中设备上下文DC(device context)的理解:DC实际上是GDI内部保存的数据结构。DC与特定的显示设备(如显示器或打印机)相关。 对于显示器,DC总是与显示器上的特定视窗相关。DC中的有些值是图形「属性」,这些属性定义了GDI绘图函数工作的细节。例如,对於TextOut,DC的属性确定了文字的颜色、文字的背景色、x座标和y座标映射到视窗的显示区域转载 2013-04-27 09:57:22 · 1102 阅读 · 0 评论 -
窗口支持文件拖入功能
我们经常看到很多应用程序支持文件拖入功能,个人感觉很酷,碰巧本人毕设做的是一个多媒体播放器,刚好可以用到这个技术。所以查了下相关的资料。首先,我们要先熟悉下三个相关API函数的使用。1.VOID DragAcceptFiles( HWND hWnd, BOOL fAccept);这个函数的调用,表示你要让某个窗体能够接受文件的拖入。第一个参数指定是哪转载 2013-07-04 09:37:35 · 1099 阅读 · 0 评论 -
DC Device Context
问:设备描述表DC是一个什么概念,谁通俗的说说,先谢了学习Vc,首先遇到的就是这个dc,即设置描述表,输出文字,绘图都要用这个,好象它太重要了。但是我就是不明白,这是什么东西。 一些教程看了,但还是不太了解,谁能通俗的说说,能快速理解它,谢谢。 答:1、作画之前需要准备好画布、画笔、调色板等。 当使用GDI函数如MoveToEx/LineTo, TextOut时,只是告诉系统要划线或转载 2013-06-07 17:18:52 · 777 阅读 · 0 评论 -
Windows下Critical Section、Event、Mutex、Semaphores区别
临界区(Critical Section) 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区包含两个操作原语:转载 2013-09-04 21:09:33 · 706 阅读 · 0 评论 -
Cstring GetBuffer 和 ReleaseBuffer
GetBuffer()主要作用是将字符串的缓冲区长度锁定,releaseBuffer则是解除锁定,使得CString对象在以后的代码中继续可以实现长度自适应增长的功能。CString ::GetBuffer有两个重载版本:LPTSTR GetBuffer( );LPTSTR GetBuffer(int nMinBufferLength);在第二个版本中,当设定的长度转载 2013-06-03 15:18:23 · 1019 阅读 · 0 评论 -
#define new DEBUG_NEW...
在用vc时,利用AppWizard会产生如下代码: #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif 对于#define new DEBUG_NEW首先看msdn的解释:Assists in finding memory lea转载 2009-08-03 09:44:00 · 1847 阅读 · 0 评论 -
ClientToScreen ScreenToClient MoveWindow
CRect rect;GetDlgItem(IDC_OK)->GetClientRect(&rect);this->ClientToScreen(&rect);GetDlgItem(IDC_OK)->ClientToScreen(&rect);// --------------------------------------------=======GetDlg原创 2013-09-03 09:32:00 · 1063 阅读 · 0 评论 -
字符集和字符编码
一、字符集字符集是一个集合,描述并定义了这个集合中可以出现哪些字符,常见的字符有GB2312、GBK、GB18030、UNICODE等。字符集仅仅是一种规范,一种约定,我们也可以定义自己的字符集。举例来说,银行IT系统为了字段合法性校验的方便,常内部定义一些小字符集,比如X字符集,N字符集。x-字符集由以下86个字符组成a b c d e f g h I j k l m n转载 2013-07-30 19:31:42 · 2846 阅读 · 0 评论 -
用VC创建并使用DLL
先看看静态库与DLL的不同之处可执行文件的生成(Link期):前者很慢(因为要将库中的所有符号定义Link到EXE文件中),而后者很快(因为后者被Link的引入库文件无符号定义)可执行文件的大小:前者很大,后者很小(加上DLL的大小就和前者差不多了)可执行文件的运行速度:前者快(直接在EXE模块的内存中查找符号),后者慢(需要在DLL模块的内存中查找,在另一个模块的内存中查找自然较转载 2013-08-17 11:48:02 · 741 阅读 · 0 评论