我手上有个VC2005的项目,里面包含若干个工程, 其中有几个工程比较大. 最近由于有个库是C#写的, 因此其中一个工程需要设定成\clr的. 这个工程使用了预编译头文件, 里面添加了其它的几个工程的相关头文件. 我按照常规在stdafx.h里面加上了#include <afxwinforms.h> // MFC Windows Forms support
可以编译的时候这个改了\clr的工程总是提示
error C2855: command-line option '/clr' inconsistent with precompiled header
请问这样的问题如何处理呢?
我试着去掉预编译头,但是也提示错误.请问大家有什么解决办法吗?
11 个解决方案
#1
预编译头?
#2
你这属于混合编程了,在托管的程序上加#pragma managed,在非托管的程序上加#pragma unmanaged
#3
请问2楼一下
这个需要加上clr进行编译的工程有很多文件,您的意思是每个都加上吗? 可是现在我只是在试原来的VC工程能不能在加上clr以后编译成功, 并没有加如任何的C#内容.
这个需要加上clr进行编译的工程有很多文件,您的意思是每个都加上吗? 可是现在我只是在试原来的VC工程能不能在加上clr以后编译成功, 并没有加如任何的C#内容.
#4
你是把stdafx.h编程CLI的吧 ,需要把整个项目变的
#5
大家好,是这样的.这个VC2005的项目,包含ABCDE五个工程,其中A工程里面有个stdafx.h文件,里面包含了两个头文件,分别是属于B和C工程的.
现在需要利用一个C#的库做显示, 这样一来就需要在A工程的某些cpp文件中包含和使用C#的库.
我的策略就是其它工程不做任何变化,先让A工程在设定成\clr以后编译通过. 代码改动就是前面说的在A工程的stdafx.h文件中加入 #include <afxwinforms.h>
可是编译A工程的时候提示与预编译头冲突. 我不可能去掉预编译头因为编译时间会增加很多. 难道是和预编译头里面包含的B和C工程的头文件产生了冲突? 这两个是很大的库, 我不能改的.
想问大家是什么原因? 有什么解决的办法没有? 谢谢大家.真的很着急弄了好久了.
现在需要利用一个C#的库做显示, 这样一来就需要在A工程的某些cpp文件中包含和使用C#的库.
我的策略就是其它工程不做任何变化,先让A工程在设定成\clr以后编译通过. 代码改动就是前面说的在A工程的stdafx.h文件中加入 #include <afxwinforms.h>
可是编译A工程的时候提示与预编译头冲突. 我不可能去掉预编译头因为编译时间会增加很多. 难道是和预编译头里面包含的B和C工程的头文件产生了冲突? 这两个是很大的库, 我不能改的.
想问大家是什么原因? 有什么解决的办法没有? 谢谢大家.真的很着急弄了好久了.
#6
托管的代码语法和非托管的有很大不同,所以不能简单地加上/clr编译就行的。方法就是我之前说的那样,不明白的地方要勤用搜索查资料
#7
比如如何使用#pragma managed 和#pragma unmanaged,详细用法我一句半句也说不清楚的
#8
谢谢楼上的回答.
现在的问题是我的代码完全是VC的,一点C#的内容也没有,只是想加\clr选项后编译成功. 而且之前我自己造了一个简单的MFC程序,同时也造了一个C#的LIB, 给MFC工程加\clr选项后编译运行一点问题也没有, 并不需要添加#pragma managed 和#pragma unmanaged. 所以我想是不是设置上面的问题.
现在的问题是我的代码完全是VC的,一点C#的内容也没有,只是想加\clr选项后编译成功. 而且之前我自己造了一个简单的MFC程序,同时也造了一个C#的LIB, 给MFC工程加\clr选项后编译运行一点问题也没有, 并不需要添加#pragma managed 和#pragma unmanaged. 所以我想是不是设置上面的问题.
#9
自己顶自己,希望高手现身说法. 谢谢.
#11
谢谢楼上给出的连接. 我会按照它再试下. 我以前也看见过一个类似的.
#1
预编译头?
#2
你这属于混合编程了,在托管的程序上加#pragma managed,在非托管的程序上加#pragma unmanaged
#3
请问2楼一下
这个需要加上clr进行编译的工程有很多文件,您的意思是每个都加上吗? 可是现在我只是在试原来的VC工程能不能在加上clr以后编译成功, 并没有加如任何的C#内容.
这个需要加上clr进行编译的工程有很多文件,您的意思是每个都加上吗? 可是现在我只是在试原来的VC工程能不能在加上clr以后编译成功, 并没有加如任何的C#内容.
#4
你是把stdafx.h编程CLI的吧 ,需要把整个项目变的
#5
大家好,是这样的.这个VC2005的项目,包含ABCDE五个工程,其中A工程里面有个stdafx.h文件,里面包含了两个头文件,分别是属于B和C工程的.
现在需要利用一个C#的库做显示, 这样一来就需要在A工程的某些cpp文件中包含和使用C#的库.
我的策略就是其它工程不做任何变化,先让A工程在设定成\clr以后编译通过. 代码改动就是前面说的在A工程的stdafx.h文件中加入 #include <afxwinforms.h>
可是编译A工程的时候提示与预编译头冲突. 我不可能去掉预编译头因为编译时间会增加很多. 难道是和预编译头里面包含的B和C工程的头文件产生了冲突? 这两个是很大的库, 我不能改的.
想问大家是什么原因? 有什么解决的办法没有? 谢谢大家.真的很着急弄了好久了.
现在需要利用一个C#的库做显示, 这样一来就需要在A工程的某些cpp文件中包含和使用C#的库.
我的策略就是其它工程不做任何变化,先让A工程在设定成\clr以后编译通过. 代码改动就是前面说的在A工程的stdafx.h文件中加入 #include <afxwinforms.h>
可是编译A工程的时候提示与预编译头冲突. 我不可能去掉预编译头因为编译时间会增加很多. 难道是和预编译头里面包含的B和C工程的头文件产生了冲突? 这两个是很大的库, 我不能改的.
想问大家是什么原因? 有什么解决的办法没有? 谢谢大家.真的很着急弄了好久了.
#6
托管的代码语法和非托管的有很大不同,所以不能简单地加上/clr编译就行的。方法就是我之前说的那样,不明白的地方要勤用搜索查资料
#7
比如如何使用#pragma managed 和#pragma unmanaged,详细用法我一句半句也说不清楚的
#8
谢谢楼上的回答.
现在的问题是我的代码完全是VC的,一点C#的内容也没有,只是想加\clr选项后编译成功. 而且之前我自己造了一个简单的MFC程序,同时也造了一个C#的LIB, 给MFC工程加\clr选项后编译运行一点问题也没有, 并不需要添加#pragma managed 和#pragma unmanaged. 所以我想是不是设置上面的问题.
现在的问题是我的代码完全是VC的,一点C#的内容也没有,只是想加\clr选项后编译成功. 而且之前我自己造了一个简单的MFC程序,同时也造了一个C#的LIB, 给MFC工程加\clr选项后编译运行一点问题也没有, 并不需要添加#pragma managed 和#pragma unmanaged. 所以我想是不是设置上面的问题.
#9
自己顶自己,希望高手现身说法. 谢谢.
#10
#11
谢谢楼上给出的连接. 我会按照它再试下. 我以前也看见过一个类似的.