12 2012 档案

摘要:1、利用IPicture接口加载、显示图片IPicture接口管理一个图片对象和它的属性。图片对象提供对Bitmap Icon Metafile的语言不相关的抽象支持。图像对象的主要接口是IPicture和IPictureDisp。IPictureDisp从IDispatch继承,提供了通过自动化访问图片属性的能力。图片对象可通过OleCreatePictureIndirect创建。关于IPicture支持的其他接口和方法可以看MSDN,一般创建图片对象可以用OleLoadPicture函数,它简化了基于流内容创建图片对象。IPicture接口管理一个图片对象和它的属性。图片对象提供对Bitm 阅读全文
posted @ 2012-12-29 20:44 任智康 阅读(1686) 评论(0) 推荐(0) 编辑
摘要:对象也可以作为函数的参数传递给函数,其转递方法与传递其他类型的数据一样,可采用值传递和地址传递两种方法。值传递:是把对象的拷贝而不是本身传递给函数,函数中对参数对象的任何修改都不会影响调用该函数的对象本身;地址传递:调用该函数的对象与参数对象共用同一个地址,所以,函数对参数对象的任何修改都会影响调用该函数的对象本身。注意:在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”) 1) 一个对象作为函数参数,以值传递的方式传入函数体 2) 一个对象作为函数返回值,以值传递的方式从函数返回 3) 一个对象用于给另外一个对象进行初始化(常称为复制初始化) 当用引用变量做参数时... 阅读全文
posted @ 2012-12-29 20:26 任智康 阅读(11206) 评论(0) 推荐(4) 编辑
摘要:前段时间由于项目需要,要求做一个服务器的实时性能监控(CPU、内存、网络利用率等)和读取服务器的硬件配置参数的接口供项目组使用,就是一个类似于鲁大师之类的东东吧...当然第一想法肯定是利用Windows提供的系统标准API函数来完成所需的功能,当然这也应该是当前最理想最有效率的选择了。但是如果你对API编程不是很熟练的话...那就相当蛋疼了!你知道用API可以做到但是不知道用哪个API,好啊,可以查MSDN。问题是你连API名字都不知道...当然,如果你们公司允许你们上国内局域网的话那就好办多了,因为有无数强大的网友会帮你找到答案。使用API编程的另一个问题是如果你仍旧对API不熟悉的话调用起 阅读全文
posted @ 2012-12-29 14:14 任智康 阅读(32127) 评论(2) 推荐(1) 编辑
摘要:有时我们希望某些常量只在类中有效。由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。const数据成员的确是存在的,但其含义却不是我们所期望的。const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。不能在类声明中初始化const数据成员。以下用法是错误的,因为类的对象未被创建时,编译器不知道SIZE的值是什么。class A{…const int SIZE = 100;// 错误,企图在类声明中初始化const数据成员int array[SIZE].. 阅读全文
posted @ 2012-12-28 13:22 任智康 阅读(350) 评论(0) 推荐(0) 编辑
摘要:1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。 原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。1.2 void *malloc(int size); 说明:malloc 向系统申请分配指定size个字节的内存空间,返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型... 阅读全文
posted @ 2012-12-27 13:22 任智康 阅读(204) 评论(0) 推荐(0) 编辑
摘要:对话条是工具栏和无模式对话框相结合的产物,对话条和对话框类似,包含有标准的Windows控件,并且可以通过创建对话框模板来表示对话条。伸缩条功能很强大,我们可以在伸缩条中直接增加CToolBar,CStatusBar和CDialogBar等类创建的控制条,如下:CReBar rb;rb.Create(....);CToolBar tb;tb.Create(...);tb.LoadToolBar(...);//将工具栏加入到伸缩条rb.AddBar(&tb,...);如果需要在伸缩条的段中包含其他的窗口类型(例如动画控件),仅需要将该控件放进对话框模板中,创建对话条,然后利用CReBar 阅读全文
posted @ 2012-12-26 15:13 任智康 阅读(993) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/fjiale/article/details/5556708第一部分:五个命令ID: 处理函数ID_FILE_NEW CWinApp::OnFileNewID_FILE_OPEN CWinApp::OnFileOpenID_FILE_SAVE CDocument::OnFileSaveID_FILE_SAVEAS CDocument::OnFileSaveAsID_FILE_CLOSE CDocument::OnFileClose1.ID_FILE_NEWCWinApp::OnFileNew调用CDocManager::OnFileNew。|CDocM 阅读全文
posted @ 2012-12-26 15:07 任智康 阅读(877) 评论(0) 推荐(0) 编辑
摘要:用Delphi、VB、Windows Form(Visual C#)等称之为RAD(Rapid Application Development)的开发工具进行项目开发的都会很满足这些工具和平台提供的快速界面开发的功效:你可以很容易就可以实现一个MIS系统的管理界面,提供一个主框架,点击主框架上的某一个菜单项就打开一个处理事务的窗口,这些窗口可以重叠,可以最大/小化,一切看起来都像那么回事。但是当你在VC中进行开发的时候,发现整个世界都变了,虽然VC提供了MDI支持多文档视图的框架,但是每次你点击“打开”/“新建”菜单项的时候,你会发现新打开的窗口千孔一面,都是同一个样式,根本就不能满足项目.. 阅读全文
posted @ 2012-12-26 14:38 任智康 阅读(5444) 评论(1) 推荐(1) 编辑
摘要:http://database.51cto.com/art/201105/263910.htm首先你正确安装了MYSQL的数据库驱动程序(mysql-connector-odbc-5.1.6-win32.msi)1.在桌面上新建一个空的文本文件mysql.txt,重命名为mysql.udl;2.双击这个mysql.udl文件,打开“数据库连接属性”对话框,在“提供程序”页选择”Micrsoft Ole DB Provider for ODBC Drivers“, 点击下一步;3.在“连接”页的,"指定数据源"选择"使用连接字符串";4.点击“编译”,弹出 阅读全文
posted @ 2012-12-18 16:11 任智康 阅读(1541) 评论(0) 推荐(0) 编辑
摘要:字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。 当一个指针变量在未取得确定地址前使用是危险的,容易引起错误。一个错误的例子,如下: char *name; scanf("%s",name); printf("%s",name);有的编译器虽然也能通过,但这是错误的,因为是个指针,定义时指向不可用的地址。解决这个问题有两种方法:用数组的方法或给字符针针分配内存空间的方法。 数组的方法:char name[20 阅读全文
posted @ 2012-12-18 12:56 任智康 阅读(698) 评论(0) 推荐(0) 编辑
摘要:指向对象的指针与对象指针的区别:指向对象的指针就是:类对象的指针class persion;persion apersion;persion* pa=&apersion; //指向类persion对象的指针 类对象是在内存中为这个类的分配一块内存,指针就是指这块一块内存的开始!对象只能事先定义好,只能在定义的区域内使用,生命周期有限,而指针可以在使用时创建,使用的范围为全局,可以保存只到你不在使用他时再删除。指针就是一个整数,这个整数就是一个地址,这个地址是某个数据块的地址,通过它,可以访问那块内存,总之,指针就是地址了。类的对象:用的是内存栈,是个局部的临时变... 阅读全文
posted @ 2012-12-12 22:00 任智康 阅读(1966) 评论(0) 推荐(0) 编辑
摘要:对于大多数mfc对象,请不要在线程间传递它们,不管是栈上的还是堆上的!原因如下: 1、 mfc的大多数类不是线程安全的,调用传入对象的成员函数可能不会报错,但是未必能达到程序预定的功能! 2、 mfc与界面有关的类,其大多数成员方法都是通过sendmessage实现的,如果消息处理函数本身不是线程安全的,你从工作线程中调用这些方法迟早会同你界面线程的用户消息响应发生冲突; 3、对于CWnd相关的类,即使传入窗口句柄,有时操作也会引起异常(ASSERT异常):通过句柄获取窗口对象并且调用其成员函数或者成员变量!因为该对象是临时对象,访问其成员变量没有意义,访问其成员函数可能会抛出异常! 不能在线 阅读全文
posted @ 2012-12-12 20:54 任智康 阅读(5242) 评论(0) 推荐(1) 编辑
摘要:MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员,可以这样实现:1)全局函数。如 UINT MyThread(LPVOID p)2)类的静态成员函数。如 static UINT MyView::MyThread(LPVOID p) 线程函数是可以带参数的,比如static__stdcallworkthread(LPVOIDlpParam)你可以在创建这个线程的时候,把对象指针传递到lpParam,然后使用这个指针就可以在线程函数里调用非静态成员变量... 阅读全文
posted @ 2012-12-12 11:51 任智康 阅读(15963) 评论(2) 推荐(1) 编辑
摘要:在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int (*f)(int x);double (*ptr)(double x);在定义函数指针时请注意: 函数指针和它指向的函数的参数个数和类型都应该是—致的; 函数指针的... 阅读全文
posted @ 2012-12-04 19:53 任智康 阅读(377) 评论(0) 推荐(0) 编辑
摘要:调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规定了该语言的函数中的参数传送方式、参数是否可变和由谁来处理堆栈等问题。不同的语言定义了不同的调用约定。 在C++中,为了允许操作符重载和函数重载,C++编译器往往按照某种规则改写每一个入口点的符号名,以便允许同一个名字(具有不同的参数类型或者是不同的作用域)有多个用法,而不会打破现有的基于C的链接器。这项技术通常被称为名称改编(Name Mangling)或者名称修饰(Name Decoration)。许多C++编译器厂商选择了自己的名称修饰方案。 因此,为了使其它语言编写的... 阅读全文
posted @ 2012-12-03 16:46 任智康 阅读(908) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示