
VC/MFC
文章平均质量分 66
sheltonwan
码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在C#中如何调用dll文件
在不转换直接调用方式的示例如下所讲(转载)下面以C#为例简单介绍调用API的基本过程:动态链接库函数的声明 动态链接库函数使用前必须声明,相对于VB,C#函数声明显得更加罗嗦,前者通过 Api Viewer粘贴以后,可以直接使用,而后者则需要对参数作些额外的变化工作。 动态链接库函数声明部分一般由下列两部分组成,一是函数名或索引号,二是动态链接库的文件名。 譬如,你想调用User32.DLL中的M转载 2008-08-06 14:19:00 · 2052 阅读 · 0 评论 -
windows消息队列
windows消息队列关于消息和消息队列与传统的应用程序不同,Microsoft Windows应用程序并不显式地用一个函数的调用(如c运行库)来获取输入,而是,等待windows系统把输入传给它们。 windows系统把应用程序的所有输入传给应用程序的窗口,每个窗口都有一个称之为窗口过程的函数.当窗口有输入时windows系统要调用它,窗口过程处理输入并把控制返回windows系统。有关窗口过程转载 2010-05-07 11:16:00 · 1029 阅读 · 0 评论 -
WM_PAINT消息小结
在Windows API编程中,WM_PAINT是Windows窗口的一个重要消息,应用程序就是通过响应这个消息来完成窗口的绘制。 The WM_PAINT message is generated by the system and should not be sent by an application.The system sends this message when t转载 2010-05-06 22:59:00 · 705 阅读 · 0 评论 -
浅谈内存泄漏(一)
对于一个c/C++程式员来说,内存泄漏是个常见的也是令人头疼的问题。已有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已包含支持Smart Pointer的class,但是他的使用似乎并不广泛,而且他也不能解决任何的问题;Garbage Collection技术在Java中已比较成熟,但是在转载 2010-03-25 00:26:00 · 539 阅读 · 0 评论 -
浅谈内存泄漏(二)
检测内存泄漏: 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve M转载 2010-03-25 00:24:00 · 412 阅读 · 0 评论 -
用c++实现com组件示例
1、 创建一个win32 dll应用类型项目工程。2、 添加ComTest.h及ComTest.cpp文件,并在ComTest.h头文件包含Unknwn.h头文件3、 用guid.exe生成一个接口IID及com对象类CLSID代码如下://ComTest.h#pragma once #include EXTERN_C const CLSID CL原创 2008-09-27 16:35:00 · 6590 阅读 · 3 评论 -
结构化异常处理和C++的异常处理区别
Windows异常由系统内核代码捕获,然后传递至用户层,多用于非法内存访问、指令错误等,其类型是CPU定义的,参见《X386保护模式编程》。 C++异常是C++编译器生成的结构(多在堆栈上),是普通的用户层代码,异常类型由用户自定义。 由于Windows异常处理和C++异常处理均使用堆栈展开,在局部堆栈的使用中存在冲突,一般不能混用。 __try{} __finally{}不会检查类内析构以及构造原创 2008-09-28 17:54:00 · 3167 阅读 · 0 评论 -
如何从c++中调用c#的com组件
开发环境VS2005 1、 首先创建一个c#的类库项目。2、 将AssemblyInfo.cs文件中的[assembly: ComVisible(false)]改为[assembly: ComVisible(true)],或者在项目属性中“应用程序”构选上“使程序集com可见”复选框。3、 在项目属性中”生成”构选上”为com interop注册”复选框。4、 参考以下原创 2008-09-25 17:27:00 · 1402 阅读 · 1 评论 -
如何获取文件夹大小
DWORD64 GetFolderSize(LPCTSTR szPath, DWORD *dwFiles, DWORD *dwFolders){ TCHAR szFileFilter[512]; TCHAR szFilePath[512]; HANDLE hFind = NULL; WIN32_FIND_DATA fileinfo; DWORD64 dwSize = 0; lstrcpy原创 2008-09-23 11:42:00 · 2355 阅读 · 1 评论 -
简单使用MSXML生成xml文件
//.h#pragma once#include #include #include class CXmlDoc{ TCHAR m_szXmlFile[MAX_PATH];protected: IXMLDOMDocument * m_pXmlDoc; public: CXmlDoc(void);public: ~CX原创 2008-09-24 00:52:00 · 2683 阅读 · 0 评论 -
子类化
也许你需要一个特殊的Edit来限制浮点数的输入,但是现有的Edit却并不能完成这项工作——因为它只能够单纯的限制大小写或者纯数字。当你在论坛上求救的时候,某个网友告诉你:“用子类化。”你也许会在看到一线曙光的同时多出了一连串的问题:何为子类化?子类化的原理是什么?如何实现子类化?下面就让我从一个简单的C++程序开始,一步步解开你的疑团吧。 首先,我为你列出以下这个C++程序:#include转载 2008-05-25 15:36:00 · 3152 阅读 · 0 评论 -
win32程序启动过程
<br />在现代操作系统中,计算机应用程序以文件形式(可执行文件、动态库文件、配置文件和其他文件等)保存在磁盘中。所谓“程序启动过程”,指从用户发出请求执行程序,到该应用程序完全启动(例如程序界面完全显示,准备响应用户的输入)这个过程。从系统分工的角度来看,程序启动过程包括两个阶段:<br />(1) 操作系统负责把程序从磁盘读入内存并且建立相应得运行环境<br />(2) 应用程序自身的初始化过程。<br />编译连接过程:<br />1、预编译展开一些宏<br />2、为每一个转载 2010-08-25 09:48:00 · 2164 阅读 · 0 评论