
Visual C++
文章平均质量分 72
clever101
2006年本科毕业于CUG(武汉)的GIS专业,毕业后参加工作,现在在北京从事软件开发和团队管理工作。现任CSDN博客专家(CSDN博客访问量600万+)。熟练掌握C++、Java和Python等多门开发语言。在遥感图像处理、地理信息系统、导航地图和三维可视化方面具有丰富的开发经验。曾担任某上市公司首席架构师,主持过新一代遥感处理软件平台的研发。曾获有色金属工业科技进步奖二等奖。
展开
-
关于创建模态窗口和非模态窗口的研究
模态窗口和非模态窗口的主要区别在于是独占的活动窗口。模态窗口是独占的活动窗口,非模态窗口不是独占的活动窗口,是可以和其它窗口进行切换的。注意这里说的模态窗口和非模态窗口并不限于模态对话框和非模态对话框。原创 2022-05-11 22:09:40 · 1299 阅读 · 0 评论 -
一个有用的Win32消息处理宏HANDLE_MSG
在windowsx.h上找到一个有用的消息处理宏HANDLE_MSG原创 2022-05-11 18:17:10 · 722 阅读 · 0 评论 -
解决一个MFC程序的工具栏背景为黑的问题
解决一个MFC程序的工具栏背景为黑的问题。原创 2022-05-01 15:33:01 · 860 阅读 · 0 评论 -
windows下编写绿色软件的设想
作者:朱金灿来源:clever101的专栏一.什么是绿色软件 我设想过一些简单实用的工具,比如解压缩工具、图像浏览器之类本身就不应该通过安装包来安装。就是说一些简单的工具应该把运行文件下载下来就能用的,而不应该通过安装包来安装。在这里最典型的例子就是微软出品的depends软件,它就只有一个depends.exe,无论你把这个depends.exe拷贝到windows xp、windows 7还是windows 10上(无论是32位系统还是64位系统),它都能直接运行。它是怎么做到的,我试着研究了一原创 2020-08-08 20:49:29 · 694 阅读 · 0 评论 -
windows平台编译pthreads库的经验总结
作者:朱金灿来源:clever101的专栏问题描述将从网上下载了pthreads-w32-2-9-1-release包,解压将源码工程升级成vs2013编译出现下图错误提示:1>version.rc(119): error RC2104: undefined keyword or key name: PTW32_ARCH问题描述这是VC的资源编译器在编译rc文件时没有添加预处理器PTW32_ARCHx86造成的(如果编译64位版本时,需要添加预处理器PTW32_ARCHx64问题解决在工原创 2020-07-26 14:45:17 · 1253 阅读 · 0 评论 -
ParsingError问题的解决
在VC编程遇到了一个奇怪的问题。我建了一个对话框工程,首先是用ClassWizard给对话框类添加了一些对应编辑框的CString变量,通过手动添加了另外一些变量,接着我准备利用ClassWizard添加一些消息函数,突然弹出一个警告对话框,如下图: 我很纳闷:我又没有编译运行,怎么会有警告框呢?既然警告框提示了我添加的变量,我以为是少了;之类的错误原创 2006-05-26 19:48:00 · 7433 阅读 · 0 评论 -
如何从一个对话框弹出单文档视图
朱金灿 相信不少人进行数据库编程都有这样的问题,如何设置一个登陆框,通过登陆框来进入单文档视图。我看到很多数据库编程方面的书,都是对话框之间的相互切换。而在对话框中添加菜单不少人都不太熟悉(当原创 2006-06-01 20:02:00 · 17255 阅读 · 17 评论 -
大括号的匹配问题
在VC编程时原以为{}的匹配发生在编译阶段。实际上并不是。今天碰到一个新问题,就是{}的匹配问题。我在一个类里添加了一个新函数B,可是单击类视图时老是找不到提示出错,说找不到这个函数的实现,如下图: 我左看右看,cpp文件的函数名和.h的文件名一样啊,为什么说“Cannot find the definition(implementation)of this原创 2006-06-07 12:04:00 · 3628 阅读 · 0 评论 -
“ODBC驱动程序不支持动态记录集”错误的解决
在使用VC进行数据库编程时我遇到一个问题。代码编译通过,在运行时突然弹出一个警告对话框,如下图: 我纳闷在哪里出了问题。我想唯一有可能的是连接数据库时出现了问题。于是我找到连接数据库的代码:m_pdatabase->Open(NULL,FALSE,FALSE,"ODBC;DSN=libraryMIS;UID=txm;PWD=txm");其中m原创 2006-06-21 00:01:00 · 5920 阅读 · 2 评论 -
Rich Edit控件的使用
之前没有使用过Rich Edit控件,以为它的使用方法和Edit Box一样。我建了一个单文档工程A,由A的一个菜单弹出对话框B,再由B的一个按钮弹出对话框C。代码如下:void B::OnButton1(){ CCdlg dlg; dlg.DoModal();} 但是单击对话框B的按钮,对话框C一直没有弹出来.原创 2006-06-22 14:17:00 · 3652 阅读 · 1 评论 -
‘OpenThread”: undeclared identifier 问题的解决之道
朱金灿 最近做一个项目,基于公司的一个产品进行开发,使用VC 6.0进行开发,使用到Win API函数OpenThread函数,编译时出现:‘OpenThread”: undeclared identifier 的问题。我查了一下msdn, 其配置要求是:Requirements Windows原创 2007-11-17 23:50:00 · 6241 阅读 · 1 评论 -
VS C++ 2005的预生成事件及设置
朱金灿 在VS C++的工程属性中有一项是预生成事件设置。预生成事件,顾名思义,就是在编译之前先运行这个命令。那么这个预生成事件有什么用呢?今天我碰巧要用到这个预生成事件。因为要使用bcg界面库,而使用bcg界面库的一个原创 2008-02-03 21:01:00 · 4112 阅读 · 7 评论 -
程序员调试能力和相关书籍
楼主vcleaner(我没当大哥很久了.......)2005-05-23 09:09:42 在 VC/MFC / 基础类 提问在软件行业中,个人觉得每个Coder、Leader(那些当了Leader以后就不需要Code的除外)都应该除了具有良好的编码能力以外,最为主要的就是Debug的能力要坚实。千万不要告诉我Debug工作是Tester和QA的事情,首先你要认识到Debug的能力是一个并不转载 2007-11-22 21:52:00 · 8906 阅读 · 1 评论 -
Microsoft Platform SDK 选择
Windows Server 2003 PSDK February 2003 Edition,可以和VC6一起使用、并支持各种目标OS的最后一个版本的SDK。 This edition of the SDK supports development for the following platforms: Windows Server 2003 Windows Advanced Se转载 2007-11-22 22:54:00 · 5833 阅读 · 2 评论 -
VC计时器的一个使用心得
朱金灿 最近使用VC的计时器。计时器一般是先设置一个Timer,然后响应WM_TIMER消息,然后销毁计时器。但是我发现在哪里设置计时器和销毁计时器是有讲究的。 开始我的代码是这样的:CMainFrame::CMainFr原创 2008-02-24 00:17:00 · 7412 阅读 · 5 评论 -
如何在VC6.0中设置条件断点
朱金灿 在平时使用编程中我们调试程序一般都要设置断点进行调试。但是设置一般的断点难以调试一些循环次数比较大的代码。从网上看到一篇文章《VC调试入门》再结合自己的实践,懂得了如何设置条件断点。下面我以例子来说明:原创 2008-02-29 22:10:00 · 13125 阅读 · 7 评论 -
error PRJ0019的一个解决心得
朱金灿 使用VS C++2005时出现一个错误:Project : error PRJ0019: 工具从"正在执行预生成事件..." 开始我不知道问题出现在哪里,然后上原创 2008-02-29 22:43:00 · 21802 阅读 · 3 评论 -
internal heap limit reached问题的解决
朱金灿 编译朋友一个程序:compiler limit : internal heap limit reached; use /Zm to specify a higher limit 上网搜索了一下:意思是超过内部默认分配的堆的限制 解决办法如下:原创 2008-03-24 22:52:00 · 12168 阅读 · 0 评论 -
My First English Thread
zhujincan Unhandle exception in DAO350.dll hi,I used mapobjects2.3 (ESRI product) to develop, In Application class a error occur:if (!Proc原创 2008-03-23 15:35:00 · 1985 阅读 · 0 评论 -
::GetModuleFileName函数的一个妙用
朱金灿 Windows API函数::GetModuleFileName的主要作用是获取当前应用程序的路径,其用法大致如下:extern CWinApp theApp;char szAppNam原创 2008-04-30 23:50:00 · 17410 阅读 · 2 评论 -
无法使用MSHFLXGD.OCX控件的一个解决办法
朱金灿 一次在VS 2005编的一个程序上无法使用MSHFLXGD.OCX控件(具体症状是当要使用该控件时出现程序崩溃)。开始以为MSHFLXGD.OCX控件没有注册,使用regsvr32进行注册,但是注册成功后原创 2008-07-13 22:39:00 · 10551 阅读 · 2 评论 -
通用文件操作类的设计
朱金灿 Windows环境下读写文件一般有下列有下面几种方式:C语言的文件操作函数,如fope原创 2008-05-17 21:54:00 · 1981 阅读 · 2 评论 -
以ListBox为例谈谈控件里字符串的对齐办法
朱金灿 一般往ListBox等控件里插入字符串后对符串对得都不是很齐,如下图的ListBox控件,第一行和其它行对得明显不齐: 对字符串进行对齐,常规的做法是设定字符串的各部分的所占长度,不足的补空格,其代码大致如下:比如strin原创 2008-08-21 20:02:00 · 6546 阅读 · 2 评论 -
VC使用CRT调试功能来检测内存泄漏
信息来源:csdn C/C++ 编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++ 应用程序正好印证了这句话。在 C/C++ 应用程序开发过程中,动态分配的内存处理不当是最常见的问题。其中,最难捉摸也最难检测的错误之一就是内存泄漏,即未能正确释放以前分配的内存的错误。偶尔发生的少量内存泄漏可能不会引起我们的注意,但泄转载 2008-09-07 17:45:00 · 2591 阅读 · 0 评论 -
error PRJ0002的一个解决心得
朱金灿 最近在编程时遇到这样一个错误:项目 : error PRJ0002 : 错误的结果 1359 (从“C:/Program Files/Microsoft Visual Studio 8/VC/bin/mt.exe”返回)。经过检查,发现这个错误是由于内存不足造成的,关掉一些程序释放内存就解决。原创 2008-09-07 17:48:00 · 12384 阅读 · 3 评论 -
关于对话框DoModal()函数调用失败的原因分析
朱金灿 对话框DoModal()函数调用失败一般而言有两种表现形式:一是对话框弹不出来,但是没有错误提示;二是对话框弹不出来,同时伴随内存访问错误的提示框出现。 第一种表现主要是因为没有对资源句柄进行切换造成的,原创 2008-06-22 23:30:00 · 17483 阅读 · 5 评论 -
Win32 DLL的一个调试心得
朱金灿 在MFC工程(包括单文档、多文档、基于对话框、MFC DLL等)调试程序时可以使用trace宏来输出相关变量的值,在Win 32工程(包括Win32 Application和Win 32DLL)只能使用Output原创 2008-06-21 23:34:00 · 3654 阅读 · 1 评论 -
如何调试MFC中的内存泄漏
转载地址: http://blog.csdn.net/xuweiqun/archive/2006/11/15/1385231.aspx 首先,应该是MFC报告我们发现内存泄漏。注意:要多运行几次,以确定输出的内容不变,特别是{}之间的数值,不能变,否则下面的方法就不好用了。 我们来看看: F:/CodeSample/Test/TestPipe/LeakTest/转载 2008-10-17 15:21:00 · 1443 阅读 · 0 评论 -
VC获取精确时间的做法
声明:本文章是我整合网上的资料而成的,其中的大部分文字不是我所为的,我所起的作用只是归纳整理并添加我的一些看法。非常感谢引用到的文字的作者的辛勤劳动,所参考的文献在文章最后我已一一列出。 对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈原创 2008-10-18 15:40:00 · 8059 阅读 · 1 评论 -
VC常用代码之动态加载DLL
根据MSDN:// File: RUNTIME.C // A simple program that uses LoadLibrary and // GetProcAddress to access myPuts from MYPUTS.DLL. #include #include typedef VOID (*MY转载 2008-10-21 16:12:00 · 3109 阅读 · 0 评论 -
VC常用代码之输出调用出错信息
很多时候要使用GetLastError函数来获取函数调用的出错代码,但仅仅是代码并不够,我们还需要知道错误代码所代表的具体信息。在《Windows核心编程》中提到过一种办法,现整理代码如下: LPVOID lpMsgBuf; DWORD dw = GetLastError();原创 2008-10-21 10:34:00 · 2469 阅读 · 1 评论 -
使用控制台程序测试DLL依赖
作者:朱金灿来源:http://blog.csdn.net/clever101/ 使用VC 6.0的Depends工具打开DLL可以让你知道该DLL依赖于哪些DLL。但是很多时候加载DLL失败的原因是间接的,比如说a.dll依赖于b.dll、c.dll、d.dll,你的当前目录下都有b.dll、c.dll、d.dll,但是加载a.dll就是失败,这是为什么呢?原因是加载b.dll、c.原创 2008-10-29 13:09:00 · 2923 阅读 · 1 评论 -
在VS2005中搭配VSS6.0
作者:朱金灿来源:blog.csdn.net/clever101 VS2005有自己配套的源码管理工具VSS2005,但因为性子懒,不想下载和安装。实际上在使用VS2005中依然可以使用VSS6.0 (Visual SourceSafe6.0) 作为源码管理工具,今天搞了一下,颇费了一番周折。 一般安装了VSS6.0,在VS 2005中的“工具”——〉“选项”的源代码管理选项卡原创 2008-12-29 19:37:00 · 2172 阅读 · 0 评论 -
略谈如何在对话框创建视图类画图
作者:朱金灿来源:blog.csdn.net/clever101 在对话框上画图可以通过添加控件来进行,但这种画图有一个严重弊端就是画图范围受控件范围控制。最近做一个程序,需要一个数据报告窗口,因为输出的内容比较多,格式不一致(涉及多个表,但每个表的数据要严格对齐),所以如ListControl等控件并不适合。所以我想到在对话框上创建视图类上进行数据显示。 一是视图窗原创 2009-01-14 21:44:00 · 8176 阅读 · 15 评论 -
Win Server2003安装VS 2005sp1出现的常见两个错误及解决办法
关于 Visual Studio 2005 SP1 安装的 2755 错误 今天是为 Visual Studio 2005 Team Suite 安装 SP1,这回可是全新的系统、全新的 VS2005,没有任何添加剂!可是,经过了漫长的等待后还是出现了 2755 的错误。使用 google 搜索之后,我决定将遇到的问题记录下来,供自己参考,也希望能给遇到同样问题的你些许帮助。按照说原创 2009-02-16 19:42:00 · 2537 阅读 · 0 评论 -
有关_sprintf函数重定义错误的思考
作者:朱金灿来源:blog.csdn.net/clever101 最近使用VS C++2005编一个MFC共享DLL,在没有编译错误,但是在链接时出现一大堆诸如error LNK2005: _sprintf 已经在msvcrtd.lib(MSVCR80D.dll) 中定义的链接错误。 开始不解,后来想了一下,错误可能是这个DLL使用一个底层原创 2009-03-01 19:14:00 · 3267 阅读 · 0 评论 -
从VC 6.0移植代码到VS C++ 2005得出的一些经验
作者:朱金灿来源:blog.csdn.net/clever101 最近将一个系统的源码从VC 6.0移植到VS C++ 2005上,从而得出了一些经验。不同编译平台的代码移植(这里指从低版本的编译器往高版本的编译器之间的代码移植),其移植成本主要由两方面组成,一是系统库的变化产生的成本,如API函数的变化和类成员函数的变化;二是由于在低版本编译器写出的不规范的代码产生的成本(一般而言,原创 2009-03-12 09:45:00 · 3250 阅读 · 0 评论 -
VC编程中如何设置对话框的背景颜色和静态文本颜色
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <! /* Styl原创 2009-04-27 20:56:00 · 5204 阅读 · 0 评论 -
编程实现自定义解决方案
作者:朱金灿来源:blog.csdn.net/clever101 一般开发我喜欢遵循下面的规范:在项目解决方案文件夹下建5个文件夹: 文件夹名备注src存放解决方案的源代码thirdparty存放第三方库的源代码(无源码的就存放头文件)Doc原创 2009-05-09 11:55:00 · 1803 阅读 · 0 评论 -
VC编程中关于新建的框架窗口的销毁的一个心得
因为要做一个项目,其中一个需求是动态新建一个单文档框架窗口和视图窗口。大致清楚单文档窗口的构建需要新的框架类调用LoadFrame函数来触发。新建并显示窗口并不是大问题,在程序退出时释放框架窗口的相关内存的释放出现了一些问题。 代码实现过程大致是这样的: 首先在应用程序类里定义一个框架类指针: COpenglFrame *m_pOpenglFrame;// COpenglFrame继原创 2009-05-14 22:07:00 · 3285 阅读 · 0 评论