vc6转到vc2005的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:38:47
vc6没问题,用vc2005编译出现了一大堆问题,如何解决啊?
能不能在哪个设置里改改就解决?

------ 已启动生成: 项目: Demo, 配置: Release Win32 ------
Demo : warning PRJ0009 : 未能打开生成日志进行写入。
请确保该文件未被其他进程打开并且未被写保护。
正在编译...
StdAfx.cpp
.\Demoh.h(194) : warning C4996: “wcscpy”被声明为否决的
C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(250) : 参见“wcscpy”的声明
消息:“This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.”

.\Demo.h(140) : error C2664: “LoadStringA”: 不能将参数 3 从“ACHAR [133]”转换为“LPSTR”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

.\Demo.cpp(82) : error C2664: “bool AcDbLayerTable::has(const ACHAR *) const”: 不能将参数 1 从“const char *”转换为“const ACHAR *”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

.\Demo.cpp(89) : warning C4996: “strcat”被声明为否决的
C:\Program Fi

当然,要求高了,你就一条条的修改吧!把ERROR的错的都改就行了,警告就不用了,那样编译就通过了,我那时也转换过工程,我典型的错误就是
for(int i=0;...)
{
.....
}
i=1;
很郁闷,这样不行!
你慢慢改吧,恭喜了

VC6.0 对C++标准支持的不怎么好.

VC2005 就不同了.

可能头文件上有问题
加上#include <string.h>
#include <stdio.h>
试试

VS2005采用UNICODE
VC6采用ANSI
这样就会导致很多函数问题
因为在不同的环境下同样的函数名处理不同的宽度字符
最好的是你把这个工程从VC6转到2005而不要直接贴代码
这样可以解决部分问题