MFC+VS 一些debug的解决方案

来源:互联网 发布:网络语言73是什么意思 编辑:程序博客网 时间:2024/05/16 15:22

1、error C2065: 'IDD_PARA_SET_DIALOG' : undeclared identifier

方法1:将#include "Rsource.h"添加到你的Dialog类中~

方法2:在头文件Resource.h里加一行#DEFINE IDD_FIGUREDLG  XXXX,XXXX表示随便的一个数字,不要和本来有的资源冲突就行

方法3:(临时解决方法)在对话框头文件中有个enum{}行注释掉,编译后会出错,但问题不同了,再把注释掉的行恢复,再编译就OK了


2、error C2668: 'pow' : ambiguous call to overloaded function

在vs03或者vc6.0里,可以直接写成:pow(i, 2)

而在vs05和vs2008中需要改成:pow((double)i, 2),需要给i一个确定的类型。

在Dev-C++中的math.h中,这两个数学函数的原型是
_CRTIMP double __cdecl pow (double, double);
_CRTIMP double __cdecl sqrt (double);


在VC2005中的math.h中,这两个数学函数的原型是
double __cdecl pow(__in double _X, __in double _Y);
__cdecl sqrt ((__in double _X);


解决方法:

可通过指定参数的类型解决,如下:

MaxInteger = (long int) pow( (float)2,(int)( 8*sizeof(long int) - 1 ) )

这样,编译器就直达是要用'long double pow(long double,int)'这个函数了。


3、fatal error C1083: Cannot open include file: 'iostream.h'错误解决方法

这个错误一般在使用Visual C++ .NET 2005时出现。

原因,iostream.h为C类库,C++类库中应该为iostream。

另外cin,cout等函数在std命名空间中。使用时应加上using namespace std;

解决方法:将#include <iostream.h>

改为#include <iostream>
using namespace std;


4、 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

产生原因:

1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.

2. 你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。

解决方法:

1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS

2.进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.

3.保存设置,Rebuild All.


5、tchar.h 头文件的作用

实现了 数据类型、函数以及其他对象依据宏定义进行map过程。由SBCS (ASCII)字符集转换到Unicode (wide-character)字符集。


6、error C2440: 'initializing' : cannot convert from 'BSTR' to 'ATL::CStringT<BaseType,StringTraits>'

原来的程序是

_TablePtr m_pTable=NULL;CString tableName=(BSTR)m_pTable->Name;
改为

CString tableName;tableName.Format("%s",(LPCTSTR)(_bstr_t)(m_pTable->Name));




在实践中不断更新ing……

0 0
原创粉丝点击