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???

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

...全文
51 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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>

24,860

社区成员

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

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