首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将C++头文件包含在c#文件中

将C++头文件包含在c#文件中
EN

Stack Overflow用户
提问于 2013-08-01 14:13:19
回答 3查看 6.7K关注 0票数 4

我正在将托管c++项目转换为C#项目。C++项目包括一个常量C++头文件,它是项目外部的一个外部依赖项。

在新创建的C#文件中,是否存在包含此C++头文件的方法?我不想在C#文件中重新定义这些常量,因为客户端将对C++头文件进行更改。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-01 14:22:22

不可能把它包括进去。

你真的有两个选择

  • 为托管层复制它,并与C++报头同步维护它。
  • 在运行时读取和解析它,并在需要这些符号的C#部件中使用反射。

正如其他人所指出的,您可以自动完成第一个任务。

票数 5
EN

Stack Overflow用户

发布于 2013-08-01 14:28:26

如果您有大量的头文件,您可以查看SWIG:http://www.swig.org/

这将从C/C++头文件生成C#文件。

有关更多信息,请参见:http://www.swig.org/Doc2.0/SWIGDocumentation.html#CSharp

结果令人印象深刻!但命名方式更像C++,而不是C#风格.但这是预料中的..。

票数 2
EN

Stack Overflow用户

发布于 2013-08-01 14:21:25

不幸的是,这是不可能的,因为C#编译器不知道如何处理.h文件。即使是这样,在.NET中使用非作用域变量声明(常量或其他变量)仍然是非法的。

您必须手动转换该文件,或者如Joachim Pileborg的注释中所提到的那样,为您构建一个自动转换它为C#代码的实用工具。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17996525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档