DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  C++/C

上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 47 下一页

摘要:CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString");TCHAR* szMsg = new TCHAR[100];//其参数为CString字符串的长度szMsg = str.GetBuffer(str.GetLength());str.ReleaseBuffer();delete []szMsg;szMsg = NULL;TCHAR*->CString的转化TCHAR szTchar[18] = L"TCHA 阅读全文
posted @ 2012-11-23 18:37 DoubleLi 阅读(1071) 评论(0) 推荐(0)

摘要:简介 摘要:关于VC中的数据类型转换BSTR、char*和CString的深入研究。 步骤/方法 char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如: char chArray[] = "This is a test"; char * p = "This is a test"; 或 LPSTR p = "This is a test"; 或在已定义Unicode应的用程序中 TCHAR * p = _T("This is a test" 阅读全文
posted @ 2012-11-23 18:36 DoubleLi 阅读(558) 评论(0) 推荐(0)

摘要:最近在学习MFC的过程中,看到一个窗口动画特效例子,不过它是在一个对话框里面嵌入效果,我想如果能把它的代码提取出来再写成一个窗口动画类就好了。于是便着手写了这个类,你可以去CSND下载(http://download.csdn.net/source/2196359)这个代码运行看看。闲话少说,先看看这个类的声明:/******************************************//************CDlgFlash.h*******************//************ Author:Arlin *****************//********* 阅读全文
posted @ 2012-11-22 20:55 DoubleLi 阅读(5552) 评论(0) 推荐(0)

摘要:添加鼠标左键按下响应函数:1、声明afx_msg void OnLButtonDown(UINT nFlags, CPoint point);2、消息映射BEGIN_MESSAGE_MAP(CDddDlg, CDialog) //{{AFX_MSG_MAP(CDddDlg) ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAPEND_MESSAGE_MAP()3、实现函数void CDddDlg::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/ 阅读全文
posted @ 2012-11-22 20:51 DoubleLi 阅读(260) 评论(0) 推荐(0)

摘要:气泡提示和气球提示是不一样的,如果要实现气球提示(经常在系统栏弹出的提示)需要去微软网站下载新的SDK才能支持。我们来看看气泡提示是怎么样的。1、写一个类继承CToolTipCtrl。2、在类中添加下列方法BOOL AddTool(UINT nID,LPCTSTR Text){ TOOLINFO ti; memset(&ti,0,sizeof(TOOLINFO)); ti.cbSize=sizeof(TOOLINFO); ti.hwnd=this->GetOwner()->GetSafeHwnd(); ti.uFlags=TTF_IDISHWND|TTF_SUBCLASS; 阅读全文
posted @ 2012-11-22 20:50 DoubleLi 阅读(551) 评论(0) 推荐(0)

摘要:一、DLL简介它是Dynamic Link Library 的缩写形式,DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含 阅读全文
posted @ 2012-11-22 20:47 DoubleLi 阅读(2212) 评论(0) 推荐(0)

摘要:VC6.0 支持三种dll,如下Non-MFC Dlls(非MFC dll);指的是不用MFC的类库结构,直接用C语言写的DLL,其输出函数一般是标准的C接口,能被非MFC和MFC编写的应用程序调用。可以用“Win32 应用程序向导”创建非 MFC DLL 项目。Regular Dlls(MFC正规DLL),使用“MFC DLL 向导”创建,又分为静态链接和动态链接两种。Extension Dlls(MFC扩展DLL),使用“MFC DLL 向导”创建,始终动态链接MFC。下面来自MSDN--确定要使用的dll的类型如果 DLL 要使用 MFC,且将由 MFC 或非 MFC 应用程序使用,则必 阅读全文
posted @ 2012-11-22 20:30 DoubleLi 阅读(240) 评论(0) 推荐(0)

摘要:文章作者:宋宝华信息来源:天极网原始连接: http://soft.yesky.com/lesson/318/2166818.shtml?412 动态链接库(DLL)是Windows系统的核心,也是COM技术的基础,因此突破动态链接库一直是技术人员的攻坚目标,本期专题将由浅入深的介绍动态链接库的基础慨念、分类、实现和应用。基础慨念1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代... 阅读全文
posted @ 2012-11-22 20:27 DoubleLi 阅读(7399) 评论(0) 推荐(0)

摘要:在c中使用molloc,free动态分配释放内存,而在c++中可以使用new delete运算符。比如在c中定义数组我们可以有两大种方式:1,静态分配内存:如: int a[10];2,使用new动态定义:如: int *p = new int[10];那么这两种方法有什么区别呢??其实,使用new,delete等叫做“动态分配内存”,我们一般定义的int a[10]数组存在函数的整个生命期,也就是说,在一个函数中定义了a[10]数组,那么从定义时起直到这个函数执行完成a[10]数组都会存在,他是静态的,不能由程序员自动的分配释放。而所谓的“动态分配内存”之所以是动态的就是因为我们可以在函数中 阅读全文
posted @ 2012-11-22 20:23 DoubleLi 阅读(2518) 评论(0) 推荐(0)

摘要:这几天准备论文,涉及到LIb和Dll文件,同学问了一句这两个文件有什么区别,我一时还真说不很清楚,在这里整理一下,以供以后参考。 静态链接库LIB和动态链接库DLL的区别:1. 如果采用静态链接库,lib中的指令都包含在最终生成的exe文件中。如果采用动态的链接库,该dll不必包含在exe文件中。Exe文件执行时,可以动态的加载和卸载这个与exe无关的dll文件。2. 静态链接库不能再包含其他的动态链接库或者静态链接库;而动态链接库不受限制,仍然可以包含其他的动态链接库和静态链接库。VC的动态链接库有三种类型,分别是非MFCdll,MFCdll和MFC扩展dll1. 非MFCdll不采用mfc 阅读全文
posted @ 2012-11-22 20:22 DoubleLi 阅读(480) 评论(0) 推荐(0)

摘要:在一些项目中,考虑到系统的安全性和稳定性,经常要封装一些DLL或者LIB库供别人使用,那么怎么制作DLL或者LIB文件呢?今天特酷吧根据自己的实际情况给大家讲解下基本的制作方法。以下是我亲自操作的记录:1,动态库dll的编写方法:新建一个动态链接库:填好工程名称即可选择工程类型,如果没有特别的要求,选择一个空工程即可。会看到这里和标准的控制台工程一样,没有任何系统默认建立的文件下面就需要我们添加一些文件。建立动态库dll文件 , 我们不需要写main函数。只需要一个一个的实现我们需要实现的接口函数即可.这里需要用到extern "C" __declspec(dllexpor 阅读全文
posted @ 2012-11-22 20:20 DoubleLi 阅读(5487) 评论(0) 推荐(0)

摘要:引言:在编写MFC程序的时候,通常需要编写dll库以供其他程序调用。关于MFC dll的相关知识很多很杂,这里特酷吧结合自己学习中遇到的问题专门整理了一些MFC dll的基础知识。本部分共上下两篇文章,本文为上篇,MFC DLL应用程序类型分为以下三种:(1)使用共享MFC DLL的规则DLL(2)带静态链接MFC的规则DLL(3)MFC扩展DLL下面重点解释一下这些DLL的含义区别:一,规则DLL首先谈谈所谓的"规则DLL":"规则DLL"是由"Regular DLL"翻译而来的。它实际上体现出来两方面的本质:(1)该DLL是基于M 阅读全文
posted @ 2012-11-22 20:18 DoubleLi 阅读(4094) 评论(0) 推荐(0)

摘要:a、Non-MFCDLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。b、RegularDLL:和下述的ExtensionDlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。该类DLL应用程序里头的输出函数可以被任意Win32程序使用,包括使用MFC的应用程序。输入函数有如下形式:extern"C"EXPORTYourExportedFunct 阅读全文
posted @ 2012-11-22 20:11 DoubleLi 阅读(2044) 评论(0) 推荐(0)

摘要:在DLL弹出一个对话框,开始弹出对话框时出现“Debug Assertion Failed”, 上网搜了下,发现模块句柄的设置问题。然后作出如下解决: 1. 定义两个全局变量: HINSTANCE g_hModuleInstance = NULL; HINSTANCE g_hOldModuleInstance = NULL; 2.在DllMain函数中对g_hModuleInstance进行赋值: g_hModuleInstance = hInstance; 3.在要使用对话框资源的类新建两个函数设置模块句柄。 void CAlternatExtractFun::SetResourceHand 阅读全文
posted @ 2012-11-22 19:54 DoubleLi 阅读(3423) 评论(0) 推荐(0)

摘要:1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。实际上具体大概有下面两种情况需要使用友元函数:(1)运算符重载的某些场合需要使用友元。(2)两个类要共享数据的时候。1.2使用友元函数的优缺点1.2.1优点:能够提高效率,表达简单、清晰。1.2.2缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用 阅读全文
posted @ 2012-11-22 13:55 DoubleLi 阅读(480) 评论(0) 推荐(0)

摘要:1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( float x,float y){return (x>y)? x:y ;}//函数3.double max(double x,double y){return (c>y)? x:y ;}但如果在主 阅读全文
posted @ 2012-11-22 11:38 DoubleLi 阅读(271) 评论(0) 推荐(0)

摘要:转自:http://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.html,致谢!!!assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include <std 阅读全文
posted @ 2012-11-21 21:02 DoubleLi 阅读(962) 评论(0) 推荐(0)

摘要:以下内容转自http://blog.csdn.net/hairetz/article/details/4141043一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 阅读全文
posted @ 2012-11-21 21:00 DoubleLi 阅读(652) 评论(0) 推荐(0)

摘要:Summary:总结Win32提供的创建多线程相关的API接口和基本的使用框架。Ref:MSDN: http://msdn.microsoft.com/zh-cn/library/y6h8hye8(v=VS.100)Win32多线程的创建方法主要有:(1)CreateThread()(2)_beginthread()&&_beginthreadex()(3)AfxBeginThread()(4)CWinThread类(1)CreateThread()百度百科:http://baike.baidu.com/view/1191444.htm函数原型:view plaincopy t 阅读全文
posted @ 2012-11-21 20:59 DoubleLi 阅读(11411) 评论(0) 推荐(0)

摘要:这三个参数都是告诉编译器参数的传递约定,参数的传递约定是指参数的传递顺序(从左到右还是从右到左)和由谁来恢复堆栈指针(调用者或者是被调用者),在 Win16下有两种约定: C 和 PASCAL。 C约定规定参数传递顺序是从右到左,即最右边的参数最先压栈,由调用者恢复堆栈指针。 PASCAL约定和C约定正好相反,它规定参数是从左向右传递,由被调用者恢复堆栈。 STDCALL是C约定和PASCAL约定的混合体,它规定参数的传递是从右到左, 恢复堆栈的工作交由被调用者完成。Win32只用STDCALL约定, 但除了一个特例, 即: wsprintf。 __stdcall 这是一种函数调用方式。 _. 阅读全文
posted @ 2012-11-21 20:57 DoubleLi 阅读(2346) 评论(1) 推荐(0)

上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 47 下一页