- 博客(18)
- 收藏
- 关注
原创 根据错误代码使用VS自带的errlook.exe查看错误信息及常见错误信息代码含义总结
在调试开发时,可能经常需要调用GetLastError();得到错误代码,在得到错误代码之后,希望知道该错误代码的含义,VS自带有errlook.exe可供方便的获取错误代码含义,有助于提高开发调试的效率,以VS2003为例方法如下:(1) 【开始】->【所有程序】->【Microsoft Visual Studio .NET 2003】->【Visual Studio .NET 工具】->【
2015-02-26 11:13:32
6711
原创 MFC编译选项设置与MSVCRT链接版本的对应关系总结
MFC工程编译选项:【项目】->【属性】->【配置属性】->【C/C++】->【代码生成】->【运行时库】,对应的CRT版本总结如下:多执行线程调试 (/MTd):对应 LIBCMTD.lib多执行线程 (/MT):对应 LIBCMT.lib多执行线程调试 DLL (/MDd):对应 MSVCRTD.lib多执行线程 DLL (/MD):对应 MSVCRT.lib
2015-02-25 23:02:40
639
原创 为CToolBar工具栏窗口按钮添加ICON图标需要注意的一点
VC使用CToolBar类创建工具栏,例如一个SDI应用程序,在MFC应用程序框架自动生成的工具栏IDR_MAINFRAME基础上,可使用资源编辑器创建工具栏资源,步骤如下:(1) 使用资源编辑器编辑工具栏IDR_MAINFRAME,删除所有自动生成的工具栏按钮,如新建、打开等(2) 添加ID为ID_EXIT_BAR图标。(3) 资源视图选中工程,右键【添加】->【添加资源】->【IC
2015-02-25 22:12:40
2711
原创 SDI应用程序调用DestroyWindow()退出程序出现异常引起的一些思考
1. 创建一个SDI应用程序SimSence。2. 在CSimSenceView创建线程,调用第三方动态库,进行周期性数据采集处理。3. 重载CMainFrame类DestroyWindow()函数,在该函数中设置线程jieshu释放加载的Dll等资源。 4. 添加工具栏图标按钮,ID为ID_EXIT_BAR,并为该按钮添加消息处理 函数OnExitProgramme(),在OnExi
2015-02-05 23:06:32
1766
原创 warning C4996: '_snprintf' was declared deprecated 警告信息的消除方法
使用VS2005编译如下语句:_snprintf(gs_LastErr, sizeof(gs_LastErr) - 1, "%s: NULL device %s\n", sFunc, !pDev ? "handle" : "context");vsnprintf(gs_LastErr, sizeof(gs_LastErr) - 1, sFormat, argp);提示如下警告信
2015-02-04 10:03:38
1603
原创 error LNK2019: 无法解析的外部符号 __imp__FtpGetFileA@28 解决方法
VS2003实现FTP下载功能,调用MFC如下API函数:FtpGetFile()、InternetCloseHandle()、InternetConnect()、InternetOpen(),编译时提示如下错误信息:TestView.obj : error LNK2019: 无法解析的外部符号 __imp__FtpGetFileA@28TestView.obj : error LNK
2015-02-01 22:24:50
2557
原创 warning C4541: “dynamic_cast”用在了带 /GR- 的多态类型“CWnd”上;可能导致不可预知的行为的解决办法
如下语句:CScrollBarEx* pScrollBar = dynamic_cast(pWnd);使用VS2003进行编译时提示如下警告信息:e:\code\GMP\TestView.cpp(800) : warning C4541: “dynamic_cast”用在了带 /GR- 的多态类型“CWnd”上;可能导致不可预知的行为解决办法:【项目】->【GMP属性】
2015-01-30 16:46:48
1988
原创 error C2666: “pow” : 7 个重载有相似的转换的解决办法
如下语句:double Value = 15.3;double lowTick = pow(10,floor(log10(Value)));double highTick = pow(10,floor(log10(Value*10)));使用VS2003进行编译时,提示如下错误:e:\code\GMP\TestView.cpp(104) : error C2666: “
2015-01-30 16:29:56
5480
原创 error C3861: “strcat_s”: 即使使用参数相关的查找,也未找到标识符
使用strcat_s进行字符串连接,代码如下:char TestEle[256] = "Lon";strcat_s(TestEle, ":");使用VS2003进行编译时提示入戏错误:error C3861: “strcat_s”: 即使使用参数相关的查找,也未找到标识符解决办法:将strcat_s换为strcat即可。函数原型如下:strcat_s是VS2
2015-01-30 13:46:37
2977
原创 CDialog::Create()创建非模态对话框框,若未销毁造会成内存泄露的解决办法
CDialog::Create()创建非模态对话框框,若未销毁造成内存泄露,代码如下:CTestView类中有成员变量CSetDBSource* m_SetDBSource;,CSetDBSource的基类为CDialog,m_SetDBSource = new CSetDBSource;m_SetDBSource->Create(IDD_SETDB_DLG,this);m_S
2015-01-29 16:52:18
3839
1
原创 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
执行如下语句:float dAngle = 0;dAngle = m_dAcrossAngle;if(dAngle > 60.0){dAngle = 60.0;}else{if(dAngle {dAngle = -60;}}其中m_dAcrossAngle = -6.2774385622041925e+066,执行if(dAngle
2015-01-28 17:12:56
6200
原创 关于INT_PTR的理解
使用CStringArray 定义数组获并取数组大小,语句如下: CStringArray sArr; sArr.Add("姓名"); sArr.Add("姓名"); int nCount = sArr.GetCount();使用VS2003编译时,得到如下警告信息:warning C4244: “=” : 从“INT_PTR”转换到“int”,可能丢失数据
2015-01-26 11:43:40
4640
原创 使用MFC的CArray自定义数据类型,编译报错的解决方法
使用MFC的CArray定义double类型数组,如下所示:typedef CArray CDoubleArray;//double类型数组编译时提示如下错误信息:error C2143: 语法错误 : 缺少“;”(在“error C2059: 语法错误 : “解决办法:在stdafx.h中添加如下语句:#include 原因:afxtempl.h是数据
2015-01-26 11:24:40
947
原创 CWnd::UpdateData()用法总结
在MFC应用程序中,经常需要更新对话框中控件变量的值,或更新控件显示值,为达到此目的,方法之一是使用CWnd::UpdateData()函数,下面通过一个小的Demo程序对此此函数的用法进行总结,以加深理解。1. 新建MFC对话框应用程序TestModel。2. 删除对话框中默认的Static Text控件及确定取消、按钮。3. 添加一个Static Text控件,将Caption设置
2015-01-22 23:54:44
3021
原创 MFC分割窗口总结
MFC提供了CSplitterWnd类切分SDI程序的客户区,步骤如下:1、创建SDI应用程序DivWindow。2、为CMainFrame添加两个CSplitterWnd类型的成员变量,如下所示: CSplitterWndm_wndSplitterMain;//主分隔条CSplitterWnd m_wndSplitterChild;//子分隔条3. 为C
2015-01-21 23:55:28
674
原创 不能将参数 2 从“const char [7]”转换为“LPCTSTR”问题解决办法
如下语句:ctrlList.InsertColumn(0, "属性页", LVCFMT_LEFT, 300, 0);使用VS2005编译时提示如下错误信息:error C2664: “int CListCtrl::InsertColumn(int,LPCTSTR,int,int,int)”: 不能将参数 2 从“const char [7]”转换为“LPCTSTR”1>
2015-01-21 23:44:41
1412
原创 C++如何调用C开发的DLL
在一个C++工程中调用C开发的动态库,包含动态库中的头文件时,需要在调用的头文件中添加如下语句:#ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif实例如下:#ifdef __cplusplus extern "C" { #endif #i
2015-01-21 09:34:29
624
原创 warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;使用 /NODEFAULTLIB:library问题解决方法
使用VS2003编译程序提示如下警告信息:warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;使用 /NODEFAULTLIB:library编译选项设置如下:【项目】->【属性】->【配置属性】->【C/C++】->【代码生成】->【运行时库】,设置为“多线程DLL(/MD)解决方法:【项目】->【属性】->【配置属性】->【连接器】->【输入】-
2015-01-20 14:04:19
22333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人