VC++
必成桂
资深码农一枚
展开
-
VC++中如何获得一个当前进程的运行目录
利用windows API获得: CString GetAppPath() { CString strAppPath; // 保存结果 TCHAR szModuleFileName[MAX_PATH]; // 全路径名 TCHAR drive[_MAX_DRIVE]; // 盘符名称,比如说C盘啊,D盘啊 TCHAR dir[_MAX_DIR]原创 2009-08-13 16:26:00 · 2869 阅读 · 1 评论 -
windows定时器详解,如何使用windows定时器
定时器在VC中的使用频繁,以下讨论定义器的使用方法。定时器的原型是:WINUSERAPI UINT WINAPI SetTimer ( HWND hWnd , UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc);hWnd 是欲设置定时器的窗体句柄。定时时间到时,系统会向该窗体发送WM_TIMER消息。nIDEvent 定时器翻译 2009-10-29 15:49:00 · 9010 阅读 · 0 评论 -
推荐的书:windows程序调试
最近奋战在调试一线的我,看了这本书深有感触。 希望对如何提高软件的质量和自己的调试能力和技术有兴趣的朋友们可以下来看看。CSDN的资源里有。原创 2009-11-12 16:11:00 · 893 阅读 · 0 评论 -
Link2001常见错误以及VC6.0工程文件的用途
引起LNK2001的常见错误都有哪些遇到的LNK2001错误主要为:unresolved external symbol “symbol”如果链接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误信息。一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在,拼写不正确或者使用错误;其次可能使用了不同版本的链接库转载 2010-03-19 17:47:00 · 1444 阅读 · 0 评论 -
项目工程从VC6.0迁移到VS2008的几个体会
最近将一个小工程从VC6.0迁移到VC9.0,预计时间是3天完成,结果3个小时就ok了。过程还是很正常的,没有遇到什么难题。总结了一下,大致有以下几个问题: 1. stdafx.h的问题。6.0下IDE生成的头文件放到Vs2008下编译已经不行了。将stdafx.h文件的内容用vs2008下生成的stdafx.h替换、 2. 加上targetver.h. 3. for循原创 2010-03-25 12:10:00 · 1775 阅读 · 0 评论 -
c++编译时提示"psapi.h"找不到的解决办法
出现此类问题是,一般是因为系统没有安装platform sdk所致,下载并安装platform sdk可以解决这个问题。 还有一个更简单一点的方法,从晚上下载psapi.h 和psapi.lib,然后分别放到Visual studio相关的头文件目录和lib文件目录。 遇见这个问题两次了。杯具。原创 2010-03-30 17:22:00 · 7987 阅读 · 0 评论 -
windows vista的符号链接
相信使用过UNIX的朋友都会对符号链接印象深刻,通过符号链接,可以方便地创建指向文件系统中其他文件的快捷方式,这在很多时候能够给操作带来极大的便利。不过,在Windows系统中,想要实现类似的功能则麻烦得多,虽然微软自Windows 2000开始,便为NTFS卷引入了对名为Junction Point的symbolic link(符号链接)的支持,但是,在图形界面下往往工作不太正常,很转载 2010-03-30 18:30:00 · 1030 阅读 · 0 评论 -
VC工程下各种文件格式含义
.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。.BMP:位图资源文件。.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有转载 2010-05-11 16:11:00 · 2259 阅读 · 0 评论 -
枚举串口端口
串口作为最基本的电脑通信 I/O 接口,其使用虽然在 PC 上越来越少,但是在工业仪器领域仍然用的相当普遍,由于笔者工作中需要用到串口,而且发现枚举串口至今仍未搞得很清楚,为此自己先整理下,希望大侠和同行们对我不懂和错误的地方指点一下。 1 、查询注册表查询注册表的方法是网转载 2010-05-18 17:07:00 · 7316 阅读 · 1 评论 -
如何判断进程是否具有administrator权限
<br />判断进程是否具有admin权限的source code。<br />是的话返回TRUE,否则为FALSE。<br /> <br />static BOOL IsAdmin(void) <br />{ <br /> HANDLE hAccessToken; <br /> BYTE InfoBuffer[1024]; <br /> PTOKEN_GROUPS原创 2010-06-09 16:31:00 · 1672 阅读 · 0 评论 -
关于Crystal Reports在64位机器上的运行时问题。
<br />有时候会hang住。进程挂起了。<br /> <br />Crystal Reports默认是不支持64位系统的,因为官方从来没有说明过。因此为了解决这个问题,需要安装一个针对64位的专门的补丁包。<br /> <br />下载地址: <br /> <br />http://resources.businessobjects.com/support/downloads/redistributables/vs_2008/redist/x64/CRRedist2008_x64.msi<br /> <原创 2010-06-13 11:33:00 · 12936 阅读 · 12 评论 -
CWinThread类,以及和createthread API的区别
<br /> CWinThread<br /><br />CObject <br /> └CCmdTarget <br /> └CWinThread <br /><br />CWinThread对象代表在一个应用程序内运行的线程。运行的主线程通常由CWinApp的派生类提供;CWinApp由CWinThread派生。另外,CWinThread对象允许一给定的应用程序拥有多个线程。<br /><br />CWinThread支持两种线程类型:工作者线程(Worker Thread)和用户界面线程(UI转载 2010-10-19 16:34:00 · 3731 阅读 · 0 评论 -
int_ptr, long_ptr這些類型的含义
The *_PTR types were added to the Windows API in order to support Win64's 64bit addressing.Because 32bit APIs are used to store pointers to things using data types like DWORDS, it was necessar原创 2012-01-05 10:23:15 · 8537 阅读 · 5 评论 -
DLL中GDIPlus初始化和退出时注意的问题
转载的别人的文章,因为自己也在实际工程中遇到类似的问题。DLL工程中使用GDIPlus2009-08-04 14:51前段时间项目的需求有所更改,因此我将工程中部分GDI改为了GDI+,主要是为了增加图片格式的支持,没时间看东西了,而因为我以前对于GDI+比较熟,所以就直接用GDI+了。一开始在几个工程的Dllmain中添加Gdiplus的G转载 2012-03-29 14:23:28 · 5261 阅读 · 1 评论 -
GdiplusStartup函数
GdiplusStartup function3 out of 4 rated this helpful Rate this topicApplies to: desktop apps onlyThe GdiplusStartup function initializes Windows GDI+. Call GdiplusStartup before maki原创 2012-03-29 14:37:14 · 14346 阅读 · 0 评论 -
MFC设置对话框的焦点
方法有二: 1. 设置对话框控件的tab order。 按Ctrl+D即可看见。将需要被设置到焦点的空间的tab order设为1.2. 对话框的OnInitDialog返回FALSE。解释如下:(摘抄至msdn) If OnInitDialog returns nonzero, Windows sets the input focus to the first c原创 2012-03-29 17:12:54 · 8462 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式只适用于对象的创建。说白了就是封装了new‘一个对象的操作。简单工厂模式1. 目的 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。2 . 简单工厂模式的结构 3. 一个简单例子java 代码// 产品接原创 2012-04-02 11:43:56 · 2750 阅读 · 0 评论 -
免费c++图片操作库(类)
OpenCV:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法;然后将图像格式和矩阵运算,然后将各个算法的实现函数。我用它来做了一个Harris角点检测器和Canny边缘检测器,总共就花了一个小时(第一次用OpenCV)。而且该库显示图像极其方便,两句话就可以。但该库似乎不大稳定,对32F和16S、8U的原创 2012-10-08 10:29:00 · 7406 阅读 · 0 评论 -
_MSC_VER的含义
_MSC_VER的含义: Reports the major and minor versions of the compiler. For example, 1310for Microsoft Visual C++ .NET 2003. 1310 represents version 13 and a 1.0 pointrelease. The Visual C++ 200原创 2009-10-27 12:17:00 · 3195 阅读 · 0 评论 -
windows消息和消息队列详解
windows消息和消息队列 与基于MS - DOS的应用程序不同,Windows的应用程序是事件(消息)驱动的。它们不会显式地调用函数(如C运行时库调用)来获取输入,而是等待windows向它们传递输入。 windows系统把应用程序的输入事件传递给各个窗口,每个窗口有一个翻译 2009-10-15 22:14:00 · 34396 阅读 · 3 评论 -
一道容易出错的笔试题
#include using namespace std; struct Foo{ Foo() {} Foo(int) {} void fun() {} }; int main() { Foo a(10);//语句1 a.fun();//语句2 Foo b();//语句3 b.fun();//语句4 return 0; } A:语句1 B:语句2 C:语句3 D:语句4 答案选什么呢?原创 2009-10-12 15:48:00 · 1278 阅读 · 3 评论 -
SendMessage和PostMessage的区别
1、首先是返回值意义的区别,我们先看一下 MSDN 里的声明: LRESULT SendMessage ( HWND hWnd, UINT Msg, WPARAM wParam,原创 2009-08-18 10:33:00 · 994 阅读 · 1 评论 -
VC文件目录常见操作
VC里文件操作有很多,本文在这里收录了一些常见的函数,仅供参考。 1. 判断一个目录是否存在 #include "windows.h" 参数: strPath: 目录的完整路径,注意不要以/结尾 返回值: 如果为目录,返回真,否则返回假 BOOL FolderExist(CString strPath) { WIN32_FIND_DATA wfd; BO原创 2009-06-16 15:03:00 · 4174 阅读 · 0 评论 -
VC里如何打印word,excel,文本文件
因工作上的原因,搜集了一些这方面的资料。深感搜集到这些资料的不易,因此拿出来和大家分享,希望能帮到大家一点点。 1. Vc打印Excel: 关于VC如何打开一个excel,这方面的资料很多了,一般用的是OLE Avtive Control/假设当你打开了一个excel文件,并获得了它的workbook的handle,相应的接口为:原创 2009-06-17 10:29:00 · 8382 阅读 · 2 评论 -
CListBox一些用法
最近编程序需要用到listbox,感觉listbox还是比较简单的。有问题,去msdn。 1. listbox 有单选和多选两个模式。 单选状态下,只能选择一个item,多选状态下,可以选择多个item。 2. list的每一个item有会有显示的text和与之关联的data。一个是字符串类型,一个是整型。 3. 如何实现listlox元素的上移和下移原创 2009-08-24 16:23:00 · 10422 阅读 · 3 评论 -
条件断点的设置和应用
什么是条件断点? 条件断点就是带有一个条件表达式的断点,在调试中,只有这个条件表达式为真时,程序到达断点时,才会暂停。而对于普通的断点,只要程序到达该断点是,就会暂停。这个条件表达式必须能被调试器识别和求值,,比如说在watch窗口里可以识别和求值的变量同样也可以在条件表达式里被识别和求值。这大大方便了我们调试某些问题,比如说,你在循环体内设置了一个断点(1000次循环),而这原创 2009-09-02 11:41:00 · 4444 阅读 · 0 评论 -
windows 句柄
windows句柄,其实是在说这么一个类型: HANDLE,在windows.h里面,是这样定义的:LPVOID,其实就是一个void*。对于很多新手来说,句柄这个概念有点难以理解。 想要真正了解句柄,你必须首先要了解内核对象。不了解内核对象而空谈句柄,没有任何的意义。 windows内核对象是由操作系统内核分配的一块内存(储存着对象的相关信息), 这段内存只能由内核访问和管理原创 2009-09-07 16:59:00 · 1663 阅读 · 0 评论 -
windows VARIANT
windows的VARIANT本质是含有类型信息的union。其结构如下: typedef struct tagVARIANT VARIANT; struct tagVARIANT { union { struct __tagVARIANT { VARTYPE vt; // typedef unsigned short VA原创 2009-09-08 15:51:00 · 1407 阅读 · 0 评论 -
windows异常处理 __try __except
try-except用法 try except是windows 系统独有的异常处理模型,windows的异常处理模式,称为SEH( structured exception handling ), SEH的异常处理模型主要由try-except语句来完成,与标准的try catch相似。与C++异常处理模型使用catch关键字来定义异常处理模块,而SEH是采原创 2009-09-09 18:19:00 · 8567 阅读 · 1 评论 -
如何对VC的dll进行profile
如何profile一个dll呢?有以下步骤。 1.) Delete the export (.exp) and lib file (.lib) for the library you want to check 2.) Tick in the settings dialog on the tab-page the checkbox "Enable profiling"原创 2009-07-14 17:08:00 · 1455 阅读 · 2 评论 -
windows API窗口消息分流器
对于熟悉Win API编程的同志们来说,windowsx.h这个头文件应该不会太陌生吧,这次要讲的内容就来自这个windowsx.h头文件。经常能在msdn上查到这样一些函数,明明是个函数,而且模样长得和一般的api函数也一样一样的,可却叫做macro,为什么呢?留意一下函数使用的requirement,你会发现,它的声明正是在windowsx.h这个头文件里。Windowsx.h包含了这样一些内转载 2009-09-14 22:56:00 · 1475 阅读 · 1 评论 -
BSTR、LPSTR和LPWSTR
一、 BSTR、LPSTR和LPWSTR 在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。那么什么是BSTR、LPSTR以及LPWSTR呢? BSTR(Basic S转载 2009-09-16 17:09:00 · 4742 阅读 · 0 评论 -
从MFC消息映射宏分析MFC消息映射的实现
在MFC中,我们可以找到如下三个宏DECLARE_MASSAGE_MAP()BEGINE_MASSAGE_MAP(CLASS, BASSCLASS)END_MASSAGE_MAP() 下面来分析这三个宏1 DECLARE_MESSAGE_MAP() 作用:为一个消息响应类声明必需的成员变量和成员函数。#define DECLARE_MESSAGE_MAP()转载 2009-09-21 18:47:00 · 988 阅读 · 0 评论 -
Unicode入门
如果你编写的程序是针对非英语国家的用户,如中国、日本、东欧和中东地区,那么你一定要熟悉 UNICODE 字符集。尤其是用 Visual C++/MFC 编写针对上述国家和地区的用户的程序时,如果你想让自己的应用程序得到更广泛的用户,那么必须考虑代码 UNICODE 的兼容性,也就是说它既在 ASCII 模式下运行 ,也能在UNICODE 模式下运行。本文将介绍 UNICODE 的一些基本原创 2009-09-22 15:27:00 · 719 阅读 · 0 评论 -
VC++利用Automation操作word, excel
关于VC操作word和EXCEL的,其中有网上抄的资料,也有自己的理解和体会。1. 一般来说,VC操作word和EXCEL比较直接的方式是利用automation. 翻译成中文就是自动化。你要做的第一件事情就是为你的工程添加操作word和EXCEL需要的头文件。方法如下: 对于VC6.0来说,打开class wizard, 然后选中automation,弹出以下界面:原创 2009-09-24 18:11:00 · 5767 阅读 · 2 评论 -
VS2010试用体会
装了没几天,感觉确实很赞。就是内存消耗太大了。看来要去加内存了。发几张图,和大家分享一下。1. 启动后的欢迎界面,也是初始界面: 2. 新建一个工程时的界面。全新的look and feel 3. 对于单个源代码文件,可以拖出来,使其浮动起来。还可以最大化。 打开一个测试工程。原创 2009-09-24 22:25:00 · 1226 阅读 · 0 评论 -
静态连接库和动态链接库的区别
windows下, 库可以通过以下两种方式来发布: static link library和dynamic link library.一般我们称之为静态库和动态库(DLL)。 什么是静态连接库(static link library),什么是动态链接库(dynamic link library) 首先,静态链接库与动态链接库都是共享代码的方式。 如果采用静态链接库原创 2009-10-10 15:31:00 · 4912 阅读 · 0 评论 -
VC++操作Excel 2007
自己设计的。用来读excel 2007的。excel 2007的数据一般都是double 和string的。希望对大家能有所帮助。 声明: #if _MSC_VER > 1000#pragma once#endif #include "excel12.h" class CExcelReader{public: CExce原创 2009-10-09 18:29:00 · 6367 阅读 · 4 评论 -
VC如何让窗口半透明
VC让窗口半透明的方法,自己已经使用过。//修改窗口的风格ModifyStyleEx(0, WS_EX_LAYERED); //设置透明度,第二个参数,取值从0-255SetLayeredWindowAttributes(0, 100, LWA_ALPHA);原创 2012-12-13 17:41:51 · 4515 阅读 · 0 评论