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……