如题,一个CGridCtrl控件,在VC6下调试可以使用,在VS2008下总是报错,那位知道啊
编译结果如下:
正在编译...
GridCtrl.cpp
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(396) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(396) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(396) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(397) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1845) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1845) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1849) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2084) : warning C4244: “初始化”: 从“ULONGLONG”转换到“DWORD”,可能丢失数据
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2121) : error C2440: “初始化”: 无法从“LPSTR”转换为“ATL::CStringT”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
class“ATL::CStringT”的构造函数声明为“explicit”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2490) : error C2065: “col”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2502) : error C2065: “col”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2505) : error C2065: “col”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2521) : error C2065: “row”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2533) : error C2065: “row”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2536) : error C2065: “row”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2582) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2582) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2586) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2586) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2586) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2588) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2595) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2595) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2622) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2622) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2628) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2628) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2628) : error C2065: “i”: 未声明的标识符
“CUIntArray::InsertAt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(336): 可能是“void CUIntArray::InsertAt(INT_PTR,CUIntArray *)”
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(333): 或 “void CUIntArray::InsertAt(INT_PTR,UINT,INT_PTR)”
试图匹配参数列表“(int, int)”时
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(3312) : error C2668: “CUIntArray::InsertAt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(336): 可能是“void CUIntArray::InsertAt(INT_PTR,CUIntArray *)”
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(333): 或 “void CUIntArray::InsertAt(INT_PTR,UINT,INT_PTR)”
试图匹配参数列表“(int, int)”时
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(4377) : error C2065: “i”: 未声明的标识符
“i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(5509) : error C2440: “初始化”: 无法从“const char [6]”转换为“ATL::CStringT”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
class“ATL::CStringT”的构造函数声明为“explicit”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6019) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6019) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6019) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6023) : error C2065: “i”: 未声明的标识符
TitleTip.cpp
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(297) : error C2360: “pts”的初始化操作由“case”标签跳过
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(258) : 参见“pts”的声明
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(298) : error C2360: “pts”的初始化操作由“case”标签跳过
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(258) : 参见“pts”的声明
正在生成代码...
(提示帖子内容过长,相同的报错我删了)
上面d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\是我引用控件的位置,其他的错误也许是unicode字符引起的,但是“pts”的初始化操作由“case”标签跳过是什么意思啊
编译结果如下:
正在编译...
GridCtrl.cpp
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(396) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(396) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(396) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(397) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1845) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1845) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1849) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2084) : warning C4244: “初始化”: 从“ULONGLONG”转换到“DWORD”,可能丢失数据
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2121) : error C2440: “初始化”: 无法从“LPSTR”转换为“ATL::CStringT”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
class“ATL::CStringT”的构造函数声明为“explicit”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2490) : error C2065: “col”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2502) : error C2065: “col”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2505) : error C2065: “col”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2521) : error C2065: “row”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2533) : error C2065: “row”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2536) : error C2065: “row”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2582) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2582) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2586) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2586) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2586) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2588) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2595) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2595) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2622) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2622) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2628) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2628) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2628) : error C2065: “i”: 未声明的标识符
“CUIntArray::InsertAt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(336): 可能是“void CUIntArray::InsertAt(INT_PTR,CUIntArray *)”
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(333): 或 “void CUIntArray::InsertAt(INT_PTR,UINT,INT_PTR)”
试图匹配参数列表“(int, int)”时
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(3312) : error C2668: “CUIntArray::InsertAt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(336): 可能是“void CUIntArray::InsertAt(INT_PTR,CUIntArray *)”
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(333): 或 “void CUIntArray::InsertAt(INT_PTR,UINT,INT_PTR)”
试图匹配参数列表“(int, int)”时
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(4377) : error C2065: “i”: 未声明的标识符
“i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(5509) : error C2440: “初始化”: 无法从“const char [6]”转换为“ATL::CStringT”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
class“ATL::CStringT”的构造函数声明为“explicit”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL
]
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6019) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6019) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6019) : error C2065: “i”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(6023) : error C2065: “i”: 未声明的标识符
TitleTip.cpp
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(297) : error C2360: “pts”的初始化操作由“case”标签跳过
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(258) : 参见“pts”的声明
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(298) : error C2360: “pts”的初始化操作由“case”标签跳过
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(258) : 参见“pts”的声明
正在生成代码...
(提示帖子内容过长,相同的报错我删了)
上面d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\是我引用控件的位置,其他的错误也许是unicode字符引起的,但是“pts”的初始化操作由“case”标签跳过是什么意思啊
比如
for(int i = 0; i<10; i++)
{
}
int b = i;//vc6 ok, vs2008 error应该
int i = 0;
for(int i=0; i<10; i++)
{
}
int b = i;//ok
我改了一遍 然后有如下错误 不知道怎么办------ 已启动生成: 项目: BillsManager, 配置: Debug Win32 ------
正在编译...
GridCtrl.cpp
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxconv.h(51) : error C2440: “return”: 无法从“LPOLESTR”转换为“LPTSTR”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1845) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1845) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(1849) : error C2065: “pos”: 未声明的标识符
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(2084) : warning C4244: “初始化”: 从“ULONGLONG”转换到“DWORD”,可能丢失数据
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(3278) : error C2668: “CUIntArray::InsertAt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(336): 可能是“void CUIntArray::InsertAt(INT_PTR,CUIntArray *)”
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(333): 或 “void CUIntArray::InsertAt(INT_PTR,UINT,INT_PTR)”
试图匹配参数列表“(int, int)”时
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\gridctrl.cpp(3330) : error C2668: “CUIntArray::InsertAt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(336): 可能是“void CUIntArray::InsertAt(INT_PTR,CUIntArray *)”
c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(333): 或 “void CUIntArray::InsertAt(INT_PTR,UINT,INT_PTR)”
试图匹配参数列表“(int, int)”时
TitleTip.cpp
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(297) : error C2360: “pts”的初始化操作由“case”标签跳过
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(258) : 参见“pts”的声明
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(298) : error C2360: “pts”的初始化操作由“case”标签跳过
d:\program files\vcprogram\billsmanager\billsmanager\gridctrl_src\titletip.cpp(258) : 参见“pts”的声明
正在生成代码...
生成日志保存在“file://d:\Program Files\VCprogram\BillsManager\BillsManager\Debug\BuildLog.htm”
BillsManager - 8 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
哈哈 在VC6.0下,自己生成一个新的该类型的控件,(静态)编译成ActiveX,然后到2008里面去用 汗,最好还是一点一点的改你里面那些没有
声明的变量。