c到c++的移植问题

tianyxy 2004-03-15 04:14:55
小弟单位在VC环境下的工程有三个.c文件以及两个.h文件 我想使用字符串库在头儿文件中加入: #include <string>
using namespace std;
后编译出现如下错误:
Debug--------------------
Compiling...
Tcpip.c
d:\program files\microsoft visual studio\vc98\include\eh.h(32) : fatal error C1189: #error : "eh.h is only for C++!"
Error executing cl.exe.
这是为什么呀?高手请指教!!


我新建一个C++ sourse 文件 ,编译生成工程后删除系统自己生成的文件,把原来工程里的.c文件后缀改为cpp,然后添加头文件到新工程里边,编译后又错了 晕呀,错误如下:
--------------------Configuration: TryUseStd - Win32 Debug--------------------
Compiling...
Db.cpp
d:\tryusestd\db.cpp(353) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Main.cpp
d:\tryusestd\main.cpp(718) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Tcpip.cpp
d:\tryusestd\tcpip.cpp(3996) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Generating Code...
Error executing cl.exe.

TryUseStd.dll - 3 error(s), 0 warning(s)

哎,错误是越改越多呀!这是怎么回事呀 各位大虾呀 多多指教!!!
1、.c工程如何正确移植到.cpp?只拷贝文件,改后缀是否可行?
2、c中可否使用std???

小弟非常困惑,烦了好久,各位大哥大姐一定多多帮忙呀!!谢谢了!

...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wolf0403 2004-03-17
  • 打赏
  • 举报
回复
对于 VC,建议参照 MSDN
对于 STD 等等,建议参考 C++ 语言参考书。

预编译头的问题前面出现过无数次了。
abitz 2004-03-17
  • 打赏
  • 举报
回复
关于“预编译头”:
方法1。创建新的”空白“工程,不要预编译头选项。
方法2。使用预编译头,在每个工程中的cpp文件中#include "stdafx.h".
注意:这应该是第一个被include的头文件。
oyd 2004-03-16
  • 打赏
  • 举报
回复
tianyxy(天涯夕阳)
这样是取消预编译头,
如果你使用预编译头,你也可以在每一个出现错的地方加上#include "stdafx.h"
但是你必须保证你要有一个stdafx.cpp文件中只有一行#include "stdafx.h"
而且在工程设置中stdafx是通过stdafx.h来创建预编译头的。
关于预编译头的工程设置是可以作用到文件的,也就是说你可以指定某些文件用而其他文件不用,这些都可以在选
project->settings-> c/c++ tab ->category ->precompiled heaers
后,再在左边的文件列表中选你要改变设置的文件或目录。

具体编译过程中,如果设置了由stdafx.cpp来产生预编译头,那么编译的时候会首先编译stdafx.cpp,然后其他的文件只要#include "stdafx.h",那么编译器会把那个编好的头直接连接上去,而不会重复包含stdafx.h来编译了,这样可以明显提高编译速度。

还有一个好办法是自动使用stdafx.h作为预编译头,这样#include "stdafx.h"后就使用,否则不使用,就不会出现上面的编译错误了。
tianyxy 2004-03-16
  • 打赏
  • 举报
回复
to oo(为了名副其实,努力学习oo技术ing):
大哥,我照你说的做了,可是错误依旧,能不能讲一下这样做是完成什么功能呀:
project->settings-> c/c++ tab ->category 选precompiled headers 然后选中 not using precompiled headers
oo 2004-03-15
  • 打赏
  • 举报
回复
在vc的ide里一步一步做就可以了。
tianyxy 2004-03-15
  • 打赏
  • 举报
回复
楼上的能不能讲得仔细一点呀 谢谢了
oo 2004-03-15
  • 打赏
  • 举报
回复
project->settings-> c/c++ tab ->category 选precompiled headers 然后选中 not using precompiled headers
tianyxy 2004-03-15
  • 打赏
  • 举报
回复
哦 忘了 工程里包含的头文件如下:
#include <io.h>
#include <fcntl.h>//请问包含了那些功能??
#include <sys/types.h>>//??请问包含了那些功能??
#include <sys/stat.h>>//??请问包含了那些功能??
#include <time.h>
#include <stdio.h>
#include "TCPIP.h"//自定义
#include "db.h"//自定义

#include <windows.h>
#define DBNTWIN32
#include <sqlfront.h>
#include <sqldb.h>
本压缩包文件集锦了嵌入式C/C++开发编程技巧,高效编程技术探索,C/C++语言相关技术问题的深层探索,并且对嵌入式C/C++程序员应聘常见面试题进行了深入剖析,对嵌入式C/C++开发者编程修炼,提升自身的相关能力具有很要的作用。 文档包含如下内容: struct 深层探索. C++中extern "C"含义深层探索. C 语言高效编程的几招 想成为嵌入式程序员应知道的 0x10 个基本问题 C 语言嵌入式系统编程修炼之一:背景篇 C 语言嵌入式系统编程修炼之二:软件架构篇 C 语言嵌入式系统编程修炼之三:内存操作 C 语言嵌入式系统编程修炼之四:屏幕操作 C 语言嵌入式系统编程修炼之五:键盘操作 C 语言嵌入式系统编程修炼之六:性能优化 C/C++语言 void 及void 指针深层探索 C/C++语言可变参数表深层探索 C/C++数组名与指针区别深层探索 C/C++程序员应聘常见面试题深入剖析(1) C/C++程序员应聘常见面试题深入剖析(2) 一道著名外企面试题的抽丝剥茧 C/C++结构体的一个高级特性――指定成员的位数 C/C++中的近指令、远指针和巨指针 从两道经典试题谈 C/C++中联合体(union)的使用. 基于 ARM 的嵌入式Linux 移植真实体验 基于 ARM 的嵌入式Linux 移植真实体验(1)――基本概念 基于 ARM 的嵌入式Linux 移植真实体验(2)――BootLoader 基于 ARM 的嵌入式Linux 移植真实体验(3)――操作系统 基于 ARM 的嵌入式Linux 移植真实体验(4)――设备驱动 基于 ARM 的嵌入式Linux 移植真实体验(5)――应用实例 深入浅出 Linux 设备驱动编程 1.Linux 内核模块 2.字符设备驱动程序 3.设备驱动中的并发控制 4.设备的阻塞与非阻塞操作

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧