问题描述
,最近在做一项课设,其中用到了C++调用C#的dll文件。不知所措的我上网搜到了很多方法,走了很多方法出现了下面的问题。换了很多方法,都是一样的问题。crl已经改了,多线程也改了。但是还有错,百般无奈之下,于是求助环境:VS2010下面是我的报错问题1>------已启动全部重新生成:项目:TTs,配置:DebugWin32------1>生成启动时间为2015/12/3018:06:41。1>_PrepareForClean:1>正在删除文件“DebugTTs.lastbuildstate”。1>InitializeBuildStatus:1>正在对“DebugTTs.unsuccessfulbuild”执行Touch任务。1>GenerateTargetFrameworkMonikerAttribute:1>正在跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有输出文件相对于输入文件而言都是最新的。1>ClCompile:1>stdafx.cpp1>TTs.cpp1>TTs.cpp(9):errorC2872:“CL”:不明确的符号1>可能是“CL”1>或“f:codebaseproject_2015_12clclbindebugcl.dll:CL::CL”1>TTs.cpp(9):errorC2872:“CL”:不明确的符号1>可能是“CL”1>或“f:codebaseproject_2015_12clclbindebugcl.dll:CL::CL”1>TTs.cpp(9):errorC2882:“CL”:在表达式中非法使用命名空间标识符1>TTs.cpp(9):errorC2065:“cl”:未声明的标识符1>TTs.cpp(9):errorC2872:“CL”:不明确的符号1>可能是“CL”1>或“f:codebaseproject_2015_12clclbindebugcl.dll:CL::CL”1>TTs.cpp(9):errorC2061:语法错误:标识符“CL”1>TTs.cpp(10):errorC2065:“cl”:未声明的标识符1>TTs.cpp(10):errorC2227:“->Message”的左边必须指向类/结构/联合/泛型类型1>类型是“'unknown-type'”1>1>生成失败。1>1>已用时间00:00:00.57==========全部重新生成:成功0个,失败1个,跳过0个==========
下面是C++的文件://TTs.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#using"F:\CodeBase\Project_2015_12\CL\CL\bin\Debug\CL.dll"usingnamespaceCL;int_tmain(intargc,_TCHAR*argv[]){CL^cl=gcnewCL();cl->Message();return0;}
下面是C#生成的dll文件的代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceCL{publicclassCL{publicvoidMessage(){Console.WriteLine("Helloworld");}}}
解决方案
解决方案二:
把usingnamespace去掉。使用全限制命名空间。因为使用using之后,此时namespace和class的名字冲突了。
解决方案三:
引用1楼Saleayas的回复:
把usingnamespace去掉。使用全限制命名空间。因为使用using之后,此时namespace和class的名字冲突了。
我回去试一试,谢谢啊
解决方案四:
CL一个是名词空间,一个是类,所以冲突了。
解决方案五:
请问这个除了改C#的类名外,还有其他方法没