hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 727|回复: 6

_VC80_UPGRADE=0x0600 起什么作用?

[复制链接]

523

主题

523

帖子

1599

积分

大司空

Rank: 5Rank: 5

积分
1599
发表于 2024-2-15 01:21:46 | 显示全部楼层 |阅读模式
因有人反馈说 HugeCalc V8.0.0.0 无法在 VC2008 下编译通过,我决定测试一下。

通过双击\HugeCalc\testDLL\src\ANSI_C++\ansi_c++.dsp文件,系统自动弹出Microsoft Visual Studio 2008,提示是否转换工程,选择“是”;
编译,出错,提示<iostream.h>文件不存在,去掉“.h”这个后缀即可;
后再编译,出现一堆error,说“cout”等未声明,
在头文件后追加“using namespace std;”,一切OK。

这时,我去查工程属性,在“Command Line”属性页中有如下内容:
/O2 /Ob1 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_VC80_UPGRADE=0x0600" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fp".\Release/ansi_c++.pch" /Fo".\Release/" /Fd".\Release/" /W3 /nologo /c /TP /errorReport:prompt

请问,这个"_VC80_UPGRADE=0x0600" 是起什么作用?
我试图查 MSDN,但未有说明。
回复

使用道具 举报

0

主题

171

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2024-2-15 01:22:42 | 显示全部楼层
之所以提出此问,是因为有用户反映调用 HugeCalc V8.0.0.0 时会提示:
用户反馈的截图

而我查得在VC6.0下,GetVerW的导出函数.def文件记录是:
?GetVerW@HugeCalc@@YAQBGXZ
怎么到Vc2008下就变成了:
?GetVerW@HugeCalc@@YAQB_WXZ

这就是说,两个编译器不兼容。
那么,加上 _VC80_UPGRADE=0x0600 是否就可以了呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

203

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-2-15 01:23:07 | 显示全部楼层
生成dll最好用c接口函数,这样编译器就不会再给函数名换名字了。
回复

使用道具 举报

0

主题

184

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-2-15 01:23:53 | 显示全部楼层
标准C接口已经包含了,出问题的是C++接口。
我想在VC2008下编译一个空壳的DLL,得到对应的.lib文件,让用户替换VC6下的.lib文件,也许这样即可以解决问题?
回复

使用道具 举报

585

主题

769

帖子

2007

积分

大司空

Rank: 5Rank: 5

积分
2007
发表于 2024-2-15 01:24:18 | 显示全部楼层
不知道
c++接口是比较麻烦的,跨编译器容易出问题的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

198

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2024-2-15 01:25:05 | 显示全部楼层
这个宏的意思可能是表示从VC6升级而来。
如果原工程是VC2003的话,这个_VC80_UPGRADE=0x0710
但搞不清为什么宏是VC80,VC2008应该是VC90才对。
回复

使用道具 举报

0

主题

185

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-2-15 01:25:49 | 显示全部楼层
我估计这个宏是从VC2005开始的,也许是通知编译器向后兼容。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 03:51 , Processed in 0.080735 second(s), 22 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表