DoubleLi

qq: 517712484 wx: ldbgliet

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

随笔分类 -  C++/C

上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 47 下一页

摘要:VS2005调试技巧集合http://blog.csdn.net/rainylin/archive/2007/09/06/1775125.aspx下面有从浅入深的6个问题,您可以尝试回答一下一个如下的语句for (int i = 0; i 0且f(x2)0,则函数的根就在区间x3和x2之间,如果f(x3)0;如果你把main函数里所有的操作都注释掉,那么 程序什么都不做,就不可能有bug,那就好比是f(x2)不可省略): >Debug.Print a + bMSDN参考:ms-help://MS.MSDNQTR.v90.en/dv_vscmds/html/48711628-1909-47 阅读全文
posted @ 2014-01-21 10:19 DoubleLi 阅读(2074) 评论(0) 推荐(1)

摘要:关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇《高质量C++/C编程指南》的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章。常见的给对象赋值方式有构造函数,拷贝构造函数,赋值运算符这三种方法,如下代码演示了这几种常见的方法。Aa1;Aa2(a1);Aa3 = a1;a3 = a2;如果不手动写代码,C++编译器默认提供了构造函数,拷贝构造函数,赋值运算符的这三种方法的默认实现。默认构造函数没有参数,它什么也不做,程序员如果要实现手动构造的话则需要编写相应的重载版本。前面代码的第一行就是通过默认构造函数来创建一个对象,一般也不会和其它几种构造方式混 阅读全文
posted @ 2014-01-09 10:13 DoubleLi 阅读(710) 评论(0) 推荐(0)

摘要:1、 DLL的概念DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。(2)静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。动态链接库的分类:Visual C++支持三种DLL,它们分别是:(1)Non-MFC DLL(非MF 阅读全文
posted @ 2014-01-02 09:44 DoubleLi 阅读(6406) 评论(0) 推荐(0)

摘要:源代码下载:http://download.csdn.net/detail/nuptboyzhb/49871411.统计文本中汉字的频数,为后续的文本分类做基础。对于汉字的统计,需要判断读取的是否为汉字。源代码如下:[C++ code][cpp]view plaincopy /**@author:郑海波http://blog.csdn.net/NUPTboyZHB*参考:实验室小熊*注:有删改*/#pragmawarning(disable:4786)#include#include#include#include#include#include#includeusingnamespacest 阅读全文
posted @ 2014-01-02 09:19 DoubleLi 阅读(3513) 评论(0) 推荐(0)

摘要:点击打开链接http://download.csdn.net/detail/nuptboyzhb/4228429c++调用matlab生成的Dll动态连接库实验平台: matlab 7.0(R2009a) VC++6.0思路:1. 设置matlab的编译器,使用外部的VC或者gcc等编译器。2. 编译m文件成dll3. 设置VC的Include路径和lib链接库的路径4. 编写C++调用dll步骤:1. 设置matlab的编译器在命令行窗口下,输入并执行如下命令:mex –setup在出现的编译器中,选择VC++6.0然后在输入命令:mbuild –setup 同样选择VC++6.02. 编写 阅读全文
posted @ 2014-01-02 09:06 DoubleLi 阅读(13179) 评论(3) 推荐(1)

摘要:有程序EXE和DLL,其中DLL中有1个函数用来显示对话框,被EXE调用。当EXE和DLL都为Release或Debug时,没有任何问题,但EXE为Release、DLL为Debug时,就会出错。该DLL是用VC提供的MFC Extension DLL,函数的代码如下:HINSTANCE hInstOld = AfxGetResourceHandle(); // 该句出错HINSTANCE hInstNew = GetModuleHandle("T01Test.dll");AfxSetResourceHandle(hInstNew);CHahaDlg dlg;dlg.DoM 阅读全文
posted @ 2014-01-01 23:33 DoubleLi 阅读(817) 评论(0) 推荐(0)

摘要:现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32DLL和MFCDLL两个方面来分析并解决这个问题。1.Win32DLL在Win32DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义你自己的对话框回调函数处理对话框收到的消息。下面通过一个具体实例来学习如何在Win32DLL中使用对话框,可以按照以下步骤来完成这个例子:1)在VC菜单中File->Ne 阅读全文
posted @ 2014-01-01 23:32 DoubleLi 阅读(5518) 评论(0) 推荐(0)

摘要:最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记一、修改预编译头文件(stdafx.h)在stdafx.h文件中添加下面代码,包含一些MFC的头文件,这些可以在一个MFC工程中复制过来 1 #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将为显式的 2 3 #include // MFC 核心组件和标准组件 4 #include // ... 阅读全文
posted @ 2014-01-01 23:26 DoubleLi 阅读(613) 评论(0) 推荐(0)

摘要:今天写了一个DLL,DLL中用到的一个类里用到的MSXML的COM组件,所以在DLL中要包含afx.h头文件,也就不可避免的要用到MFC的类库了,但在编译时出现了错误:mfcs42d.lib(dllmodul.obj) : error LNK2005:_DllMain@12already defined in NetDriverConfig.obj,在http://topic.csdn.net/t/20010911/10/281452.html处的贴子里找到了以下回答,试了一个原来是文件里定义的对象与mfcs42d.lib有冲突,加了命名空间后问题解决。还不知道DLL能不能使用,明天试一下再说 阅读全文
posted @ 2014-01-01 23:08 DoubleLi 阅读(532) 评论(0) 推荐(0)

摘要:如果使用VC编写DLL时,需要MFC功能; 一般在源文件里就不能手动写DLLMAIN函数了它给MFC集成了,\src\mfc\dllmodule.cpp打开它,里面有有一个DLLMAIN函数,根据源码意思就可以看出来,这里截取的一点点代码if (dwReason == DLL_PROCESS_ATTACH) { BOOL bResult = FALSE;#ifdef _AFXDLL // wire up resources from core DLL AfxCoreInitModule();#endif _AFX_THREAD_STATE* pState = AfxGetThreadS... 阅读全文
posted @ 2013-12-31 18:00 DoubleLi 阅读(1915) 评论(0) 推荐(0)

摘要:第一部分:API函数简介1.SetWindowsHookEx函数函数原型HHOOKSetWindowsHookEx(int idHook, // hook type HOOKPROC lpfn, // hook procedure HINSTANCE hMod, // handle to application instance DWORD dwThreadId // thread identifier);函数功能:该函数将一个应用程序定义的挂钩处理过程安装到挂钩链中去,您可以通过安装挂钩处理过程来对系统的某些类型事件进行监控,这些事件与某个特定的线程或系统中的所有事件相关.具体参数详见MSD 阅读全文
posted @ 2013-12-27 17:56 DoubleLi 阅读(4174) 评论(0) 推荐(0)

摘要:1、添加#include 或者这时会报错1>c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]解决方法,点击项目属性,然后配置属性、常规,然后右边有个“项目默认值”,下面有个MFC 阅读全文
posted @ 2013-12-27 09:34 DoubleLi 阅读(421) 评论(0) 推荐(0)

摘要:Visual Leak Detector是一款免费的、健全的、开源的Visual C++内存泄露检测系统。相比Visual C++自带的内存检测机制,Visual Leak Detector可以显示导致内存泄露的完整内存分配调用堆栈。主页地址:http://vld.codeplex.com/旧版地址:http://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced-Memory-Leak-Detectio 下载Visual Leak Detector,当前版本2.2.3,在Visual C++ IDE的"工具 阅读全文
posted @ 2013-12-24 20:33 DoubleLi 阅读(524) 评论(0) 推荐(0)

摘要:这下有了CImage类,处理其他类型的图片不再寻找第三方类库了。加载到对话框背景的代码如下: //从资源里载入背景JPEG图片 HRSRC hRsrc=::FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_JPG1), _T("JPG")); if(hRsrc!=NULL) { HGLOBAL hImgData=::LoadResource(AfxGetResourceHandle(),hRsrc); if(hImgData==NULL) ... 阅读全文
posted @ 2013-12-24 20:02 DoubleLi 阅读(486) 评论(0) 推荐(0)

摘要:系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现VC单文档、对话框程序显示图片效果CImage是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入、显示、转换和保存多种格式的图像文件,包括BMP、GIF、JPG、PNG、TIF等。CImage是一个独立的类,没有基类。(CImage类是基于GDI+的,从VC.NET起引进,VC 6.0中没有。)ATL(Active Template Library,活动模板库)是一套基于模板的 C++ 类,用以简化小而快的COM对象的编写。为了 阅读全文
posted @ 2013-12-24 20:00 DoubleLi 阅读(970) 评论(0) 推荐(0)

摘要:一个类可以只有声明没有定义,如:classSimple ; //没有 阅读全文
posted @ 2013-12-23 16:12 DoubleLi 阅读(341) 评论(0) 推荐(0)

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

摘要:1.引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一个指针指向自己时计数值加1;当删除一个指向自己的指针时,计数值减1,如果计数值减为0,说明已经不存在指向该对象的指针了,所以它可以被安全的销毁了。可以很直观的用下面的图表示: 引用计数算法的优点在于内存管理的开销分布于整个应用程序运行期间,非常的“平滑”,无需挂起应用程序的运行来做垃圾回收;而它的另外一个优势在于空间上的引用局部性比较好,当某个对象的引用计数值变为0时,系统无需访问位于堆中其他页面的单元,而后面我们将要看到的几种垃圾回收算法在回收前都回遍历所有的存活单元,这可能会引起换 阅读全文
posted @ 2013-12-23 10:48 DoubleLi 阅读(4027) 评论(0) 推荐(0)

摘要:remberthisstrncpy(a,b,5);a[5]='\0';chara[10];memset(a,'#',sizeof(a));a[10]='\0';刚开始学C/C++时,一直对字符串处理函数一知半解,这里列举C/C++字符串处理函数,希望对初学者有一定的帮助。C:charst[100];1.字符串长度strlen(st);2.字符串比较strcmp(st1,st2);strncmp(st1,st2,n);把st1,st2的前n个进行比较。3.附加strcat(st1,st2);strncat(st1,st2,n);n表示连接上st2的 阅读全文
posted @ 2013-12-23 10:47 DoubleLi 阅读(56706) 评论(0) 推荐(6)

摘要:充分的利用调试工具可以非常方便地避免内存泄漏问题。 这里介绍两种方法,互为补充,第一种是VC编译器提供的方法,第二种是专用的内存泄漏检查工具Memmory Validator。这两种方法的基本原理是一样的:内存分配要通过CRT在运行时实现,只要在分配内存和释放内存时分别做好记录,程序结束时对比分配内存和释放内存的记录就可以确定是不是有内存泄漏。其中,第一种方法重载了new操作符,第二种方法是替换了CRT运行时库,在用户程序与运行库之间加了一层,用于记录内存分配情况。两种方法的不同是前者是在编译时完成的,分析内存情况的代码编译到执行文件中,用于程序的debug版本,后一种对编译过程没有影响,在执 阅读全文
posted @ 2013-12-23 10:29 DoubleLi 阅读(1395) 评论(0) 推荐(0)

上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 47 下一页