gpt4 book ai didi

c++ - Migration from VC6 to VC9 的编译问题

转载 作者:行者123 更新时间:2023-11-30 00:59:56 25 4
gpt4 key购买 nike

我正在将旧版 C++ 系统从 VC6 移植到 VC9。

应用程序(<APP A>) 静态链接到内部应用程序<APP B>(内部开发,但由单独的团队开发)。来自 <APP B> 的头文件的本地拷贝包含在 CPP 文件中并在 <APP A>. 中编译

目前我们不打算迁移 <APP B>到VC9。虽然两者都是<APP A><APP B>将使用单独的 CRT,但预计不会发生冲突。

我们面临的问题是来自(本地拷贝)的包含文件未使用 VC9 进行编译。

fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory

可能的解决方案:如果我在 <APP A> 的本地拷贝中进行更改并使用 VC9 编译然后我不确定它是否会在运行时引起一些问题。

有没有其他方法可以让 VC9 编译 <APP A>带有 <iostream.h> 的文件而不是 <iostream>

最佳答案

抱歉,您遇到了很多问题。

首先是基础知识:<iostream.h>是一个较旧的 Microsoft header ,用于定义例如::cout . <iostream>是标准 header ,并定义例如std::cout .你可以同时使用这两个,但是这个标题应该包含在APP.H中. <iostream>不定义您在声明中使用的类型。大概你依赖于 VC6 实现的工件,即 <iostream.h>拉进来了 <istream.h><ostream.h> .您可能想切换到 <iosfwd>相反, 旨在用于 header 中。

更大的问题是您假设您可以将“APP A”和“APP B”链接在一起,即使它们是用 VC6 和 VC9 编译的。这是真的当且仅当它们共享一个 extern "C" API。C++ 名称修改在它们之间(有意地)不同。并且由于您提到了 <iostream.h> 而不是 <stdio.h> ,我假设您的通用名称确实是 C++。

关于c++ - Migration from VC6 to VC9 的编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3598861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com