C/C++/C#/MFC
Wentasy
Blockchain specialist.
展开
-
MFC利用CImage类将图片显示到Picture控件上
环境:Visual Studio 2010问题:MFC利用CImage类将图片显示到Picture控件上解决:1.通过向导为Picture控件添加变量,如果不成功,则手动添加。参考(VS2010为Picture Control 手动添加变量) 2.在对应的函数里添加如下代码: CImage image; //创建图片类 image.Load(rphoto); //原创 2012-04-02 11:18:54 · 15656 阅读 · 6 评论 -
Visual C++6.0显示行号
在Visual C++6.0环境下进行开发,相信大家都会遇到这个问题:想看下自己的代码所在位置,却找不到地方设置。现在解决方式如下:1.下载显示行号插件:下载地址:http://download.csdn.net/detail/wentasy/39944512.使用方法:下载插件后,保存到任何目录-------->运行VC6--------->点击菜单-------->“Tools原创 2012-01-03 10:50:19 · 4210 阅读 · 12 评论 -
fatal error C1083: Cannot open precompiled header file: 'Debug/dian.pch': No such file or directoy解决
环境:Visual C++ 6.0问题:fatal error C1083: Cannot open precompiled headerfile: 'Debug/dian.pch': No such file or directoy 解决:Visual C++6.0------>菜单------->工程(project)------->设置(settings)-------->原创 2012-01-02 15:26:54 · 2139 阅读 · 0 评论 -
C++中派生类之间的赋值对基类的影响
环境:VS2010代码:#include using namespace std;class A{public: A() { a = 0; cout<<"A::A()"<<endl; } int a;};class B:public A{public: B() {原创 2011-11-28 17:12:19 · 2541 阅读 · 0 评论 -
内存分配——堆和栈的区别
1、数据结构的栈和堆 堆栈,实际上堆栈是两种数据结构:堆和栈。 堆和栈都是把一些数据项按序排列的数据结构。2、内存分配中的栈和堆 这里有必要把内存分配:一般情况下程序存放在Rom或Flash中,运行时需要拷到内存中执行,内存会分别存储不同的信息,如下图(数据在内存中的存储图示)所示:0xc0000000 内核虚拟内存 ——有内核使用转载 2011-11-25 16:50:35 · 2889 阅读 · 2 评论 -
C++虚函数探讨(一)
环境:2010代码: #include using namespace std;class A{public: A() { a = 0; cout<<"A::A()"<<endl; } int a;};class B:protected A{public: B() { i=1; cout<<"B::B()"<<endl; }原创 2011-11-18 20:15:01 · 1593 阅读 · 2 评论 -
C++私有继承访问
环境:VS2010问题:探讨C++私有继承在外部的访问代码:#include using namespace std;class A{public: A() { a = 0; cout<<"A::A()"<<endl; } int a;};class B:protected A{public: B() { i=1; cout<<"原创 2011-11-18 19:56:53 · 1622 阅读 · 0 评论 -
C++标准转换运算符reinterpret_cast
reinterpret_cast (expression)reinterpret_cast运算符是用来处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位。什么是无关类型?我没有弄清楚,没有找到好的文档来说明类型之间到底都有些什么关系(除了类的继承以外)。后半句倒是看出了reinterpret_cast的字面意思:重新解释(类型的比特转载 2011-12-14 13:44:20 · 1472 阅读 · 0 评论 -
C++虚函数探讨(四)
环境:VS2010代码://public:#include using namespace std;class A{public: virtual ~A() {} virtual void func() { printf("A::func()\n"); };};class B: public A{private: virtual void func(){原创 2011-11-28 17:19:34 · 1488 阅读 · 0 评论 -
C++虚函数探讨(三)
环境:VS2010代码: #include using namespace std;class A{public: virtual void func1(int i){ cout <<"A::func1()"<<endl; } virtual int func2(float f){ cout <<"A::func2()"<<endl; retu原创 2011-11-28 16:41:00 · 1723 阅读 · 2 评论 -
C++虚函数探讨(二)
环境:VS2010代码:#include using namespace std;class A{ public: A() { q(); cout<<"A::A()"<<endl; } virtual void q() { cout<<"A"<<endl; }};class B:public A{ public: B() { q(); cou原创 2011-11-19 09:26:00 · 1757 阅读 · 0 评论 -
C++设计类选择继承或组合
在C++程序设计设计类时,用到其他类的属性或者方法要明白是用组合还是继承。组合即是has a,该类拥有哪些属性或者方法;继承即是is a,该类拥有父类的属性或者方法。 这里举一个例子,假如有一个父类汽车,当有轿车、卡车、面包车等类似的实体时,此时应该选择继承,即派生类拥有父类汽车的属性或者方法;当有发动机、车门、车窗等和汽车相关的属性时,就应选择组合。 总之,选择组合还是继承,就原创 2011-11-18 14:36:55 · 1893 阅读 · 0 评论 -
Visual C++ 6.0设置动态/静态链接MFC DLL
环境:Visual C++ 6.0问题:动态/静态链接MFC DLL设置解决:菜单------->工程(project)------>Settings------>General菜单或选项------>在Microsoft Foundation Classes 中进行设置。如图:原创 2012-01-03 15:42:57 · 2284 阅读 · 0 评论 -
好书推荐_Windows程序设计(第五版)
书 名: Windows程序设计(第五版 ) 作 者:佩措尔德(CharlesPetzold) 关于书籍: 《Windows程序设计(第5版)》是一本经典的Windows编程圣经,曾经伴随着近50万Windows程序员步入编程殿堂,成长为IT时代的技术精英。 作为Windows开发人员的必备参考,涵盖基础知识和中高级主题,全原创 2012-01-06 16:56:58 · 4209 阅读 · 7 评论 -
VC中GetTextMetrics和GetTextExtent用法区别
环境:Visual C++ 6.0问题:GetTextMetrics和GetTextExtent用法区别解决:先来看看MSDN里对它们的解释:GetTextMetrics:CDC::GetTextMetrics BOOLGetTextMetrics( LPTEXTMETRIC lpMetrics) const;Return ValueNonzeroif the fu原创 2012-01-07 10:34:36 · 4063 阅读 · 0 评论 -
Visual Studio error C4335: 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式解决
环境:VS2010问题: error C4335: 检测到 Mac 文件格式: 请将源文件转换为 DOS 格式或 UNIX 格式问题分析:多数因为复制代码产生。解决:1.利用Editplus:复制文件------>打开Editplus------->菜单栏--------->文档-------->文件类型-------->更改文件类型------->改为对应的平台。2.利用Ul原创 2011-12-24 15:54:38 · 7475 阅读 · 0 评论 -
Visual Studio 2010显示行号设置
环境:Visual Studio 2010问题:设置行号解决:菜单-------->工具-------->选项-------->文本编辑器-------->C/C++-------->常规-------->显示-------->把复选框中的行号勾中即可。原创 2012-01-03 10:54:03 · 15974 阅读 · 3 评论 -
VS2010为Picture Control 手动添加变量
环境:Visual Studio 2010问题:利用向导为Picture Control添加变量不成功,所以手动添加。 解决: 1.在头文件添加如下代码: // 对话框数据 CStatic m_Pic; 2.在对应的源文件DoDataExchange函数里添加如下代码:void CKQ_SystemDlg::DoDataExchange(CData原创 2012-04-02 10:48:31 · 9219 阅读 · 0 评论 -
ASCII表
转载地址:http://blog.sina.com.cn/s/blog_4a0c2872010006xa.htmlASCII表ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97转载 2012-01-09 16:15:59 · 1730 阅读 · 0 评论 -
VC编程时不显示提示信息(类的成员和参数列表)解决
环境:Visual C++ 6.0问题:VC编程时不显示提示信息(类的成员和参数列表) 想必大家使用VC6.0时或多或少地都会遇到这个问题,现提供三种解决方法。解决: 1.菜单------->工具(Tools)------->选项(Options)------->编辑器(Editor)------->语句完成选项(Statement compl原创 2012-01-09 15:51:59 · 3906 阅读 · 0 评论 -
模拟电话簿提取名字显示
环境:Visual C++ 6.0问题:模拟电话簿提取名字显示解决:假设在屏幕上输入名字+空格+电话号码。提供动态添加弹出菜单,再在弹出菜单上添加菜单项,通过输入的名字和电话号码存储到CStringArray里,菜单项由名字建立,当点击菜单项时再在屏幕上显示姓名和电话号码。源码: void CPhoneBookView::OnChar(UINT nChar, UINT原创 2012-01-08 19:13:03 · 2021 阅读 · 2 评论 -
查询特殊字符的ASCII码及MSDN精简版下载地址
环境:Visual C++ 6.0问题:查询特殊字符的ASCII码解决:MSDN 比如你想知道换行符或者退格符的ASCII码,可以通过查阅MSDN。(换行符0x0d 退格符0x08) 注:MSDN是很强大的帮助文档,学习VC 或者以后进行开发时要经常使用。 附chm格式的帮助文档下载地址:http://ishare.iask.sina.com.cn原创 2012-01-08 11:16:54 · 2481 阅读 · 0 评论 -
VC工程下各种文件格式含义
.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加 快资源装载速度。资源辅助文件。.BMP:位图资源文件。.BSC:浏览信息文件,由浏览信息维护工具 (BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在转载 2012-01-07 15:11:05 · 1714 阅读 · 0 评论 -
VC ClassView标签页里不显示类信息或者显示不全解决
环境:VC问题: ClassView标签页里不显示类信息或者显示不全解决:打开工程所在项目----->找到一个以.ncb结尾的文件,将其删除----->再次打开工程----->看到完整的类信息了----->解决。 注:NCB是 “No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由V原创 2012-01-07 15:07:28 · 3681 阅读 · 0 评论 -
VC注释宏含义
注释宏 注释宏就是在两行特殊注释中定义的宏。如下: //{{AFX_MSG(CDrawView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //}}AFX_MSG 在VC++6.0中用ClassWizard自动生成的,定义的宏就生成在像上面的两行注释中,这是让ClassWizard能够分辨出原创 2012-01-07 14:31:56 · 2171 阅读 · 0 评论 -
VC模拟卡啦OK字幕变色
环境:Microsoft Visual C++ 6.0问题:模拟卡啦OK字幕变色解决:主要利用Timer计时器处理。新建MFC AppWizard(exe)工程-------->在Resource页添加String table资源------->在CXXView中添加OnTimer消息处理------->在OnCreate里设置Timer计时器------->在OnTimer事件中添加原创 2012-01-07 14:08:23 · 2541 阅读 · 2 评论 -
C++文件操作中文本文件和二进制文件比较
* 以text形式存储,优点是具有较高的兼容性。缺点是存储一批纯数值信息时,要在数据之间人为地添加分割符;输入输出过程中,系统要对内外存的数据格式进行相应转换;另外text文件不便于对数据实行随机访问。 * 以binary形式存储 优点是便于对数据实行随机访问(每一同类型数据所占磁盘空间的大小均相同,不必在数据之间人为地添加分割符);输入输出过程中,系统不对数据进行任何转换。缺点是兼容性原创 2011-12-18 16:01:08 · 2715 阅读 · 0 评论 -
内存分配在栈上创建与堆上分配的区别
内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分配。程序在运行原创 2011-11-25 16:55:48 · 3257 阅读 · 0 评论 -
基于对话框的MFC程序加入菜单资源
环境:Microsoft Visual C++ 6.0问题:在基于对话框的MFC程序加入菜单资源解决:1.在对话框头文件中声明CMenu 变量,例如CMenu m_Menu;2.在主对话框的OnInitDialog()函数中加入如下语句: m_Menu.LoadMenu("此处加入你的菜单ID");SetMenu(&m_Menu); 3.解决。原创 2012-03-03 16:15:40 · 2631 阅读 · 0 评论 -
REG_OPTION_NON_VOLATILE
REG_OPTION_NON_VOLATILE:该宏是RegCreateKeyEx函数的参数可选项。LONG RegCreateKeyEx( HKEY hKey, LPCWSTR lpSubKey, DWORD Reserved, LPWSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRI翻译 2012-03-03 15:45:50 · 4789 阅读 · 0 评论 -
error C2440: 'type cast' : cannot convert from 'int *' to 'void (__thiscall CCmdTarget::*)(void)'解决
环境:Microsoft Visual C++ 6.0问题:自定义消息时,出现如下错误:error C2440: 'type cast' : cannot convert from 'int *' to 'void (__thiscall CCmdTarget::*)(void)' ,There is no context in which this conversion is possibl原创 2012-03-03 15:36:03 · 6112 阅读 · 0 评论 -
字符串前加 _T含义
#ifdef _UNICODE #define _T(x) L##x // 就是把_T( "XXX ")变成L "XXX ",把字符串编译为Unicode格式 #else #define _T // 什么也不做 #endif 简而言之,就是把字符串转换成Unicode编码格式。 注:如果使用了_T,则应该包含tchar.h(#include )原创 2012-03-03 15:25:05 · 2373 阅读 · 0 评论 -
#include <tchar.h> 是什么意思
因为VS里的很多字符编码都是采用unicode来编码的,为了兼容字符集。微软开发了tchar包,tchar 在unicode下是wchar(双字符),而普通是char。 因为C++支持两种字符串,即常规的ANSI编码和Unicode编码,这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串 。微软将这两套字符集及其操作进行了统一,通过条件编译(通过_U原创 2012-02-25 11:21:50 · 18333 阅读 · 0 评论 -
C++ Psapi.h头文件
Psapi是: Pocess Status API ,是获取系统状态的函数集合.它会返回以下系统信息:进程信息模块信息设备驱动程序信息进程内存使用信息工作集信息内存映射文件信息包括的函数.The following are the PSAPI functions. EmptyWorkingSet 整理内存 EnumDeviceDrivers EnumDeviceDrive原创 2012-02-26 15:04:06 · 7937 阅读 · 2 评论 -
Tchar.h
Visual C++支持多字节字符集 (MBCS)多字节字符集 (MBCS) 是一种替代 Unicode 以支持无法用单字节表示的字符集(如日文和中文)的方法。为国际市场编程时应考虑使用 Unicode 或 MBCS,或使程序能够通过更改开关来生成支持两种字符集之一的程序。最常见的 MBCS 实现是双字节字符集 (DBCS)。一般来说,Visual C++(尤其是 MFC)完全转载 2012-02-25 11:19:54 · 1902 阅读 · 0 评论 -
_T() 函数
_T("")是一个宏,他的作用是让你的程序支持Unicode编码因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。如转载 2012-02-16 17:53:35 · 1661 阅读 · 0 评论 -
error LNK2001: unresolved external symbol __imp__closesocket@4解决
环境:Visual C++ 6.0问题:连接错误。描述:Linking...NetSrv.obj : error LNK2001: unresolvedexternal symbol __imp__closesocket@4NetSrv.obj : error LNK2001: unresolvedexternal symbol __imp__inet_ntoa@4NetS原创 2012-02-15 11:02:14 · 3957 阅读 · 2 评论 -
Visual C++ 6.0 快捷键和使用技巧(更新中)
环境:Visual C++ 6.0 快捷键总结:1. Alt+F8:整理代码。2.Ctrl+Tab:同一工作空间不同工程切换。 。。。。。。 使用技巧:1. 在界面设计时,选中1个控件,按住ctrl键(可以选择多个),然后左下角左对齐。2. 在界面设计时,选中1个控件,按住ctrl键,然后进行拖动即可完成复制粘贴(注意修改编号)。 。。。原创 2012-02-01 18:20:11 · 1903 阅读 · 0 评论 -
单击Visual C++ 6.0 的打开按钮,出现“Microsoft (R) Developer Studio 已停止工作”解决
环境:Visual C++ 6.0 问题:单击Visual C++ 6.0 的打开按钮,出现“Microsoft (R) Developer Studio 已停止工作” 分析:使用的应该是Vista 或者WIN7系统,这是VC6.0的一个兼容性问题,可以按官方方法试一下原因:VC与VISIO冲突。 解决方法:1. 下载FileTool.exe,并解压下载地址http://s原创 2012-02-01 18:14:00 · 4951 阅读 · 0 评论 -
ClassWizard里面找不到WM_ACTIVATE消息解决
环境:Microsoft Visual C++ 6.0 问题:在使用WM_ACTIVATE消息时,在Windows消息处理找不到此消息。解决:1.类向导中选择 Class Info 选项卡,然后在 Message filter 组合框下选择 Window 就可以了。2.也可以手工映射afx_msg LRESULT OnActive(WPARAM wParam, LP原创 2012-03-11 15:12:46 · 1978 阅读 · 0 评论