反向 PInvoke 并创建完整的非托管 C# 程序
我知道这是一个奇怪的问题,但想法很简单:我更喜欢 C# 语法而不是 C++: - 直接在属性内部设置和获取方法 - 接口 -foreach 语句 - 可以声明隐式强制转换运算符
其他小事情...
我真正不知道的是,如果我不使用任何命名空间(甚至系统),是否可以在 C# 中导入 c++ dll(特别是 std 库
)想法只是使用 C++ 中通常使用的所有内容(没有来自 CLR 的内容)编写一个程序,甚至例如 printf
感谢您的回答
I know this is a strange question but the idea is simple: I prefer C# syntax rather than C++:
-Setters and getters directly inside a property
-interfaces
-foreach statement
-possibility to declare an implicit cast operator
other small things...
What I really don't know is if is possible to import a c++ dll (expecially std libraries) in C# if I don't use any namespace (even System)
The idea is just to write a program using everything that you will normally use in C++ (nothing from CLR so), even printf for example
Thanks for any answer
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,不可能简单地将现有 C 或 C++ 文件导入到 C# 项目中。它们是非常不同的语言,不能在源代码级别混合。
混合 C# 和 C++/C 应用程序的方法是在 PInvoke 或 COM 互操作级别。这是通过复制 C# 中的签名并允许 C# 编译器确定本机类型的二进制布局来实现的,以便在语言之间进行封送。
No it is not possible to simply import existing C or C++ files into a C# project. They are very different languages and cannot be mixed at the source level.
The way to mix C# and C++/C applications is at the PInvoke or COM Interop level. This works by duplicating the signatures in C# and allowing the C# compiler to determine the binary layout of the native type in order to marshal between the languages.
现在有一些与此接近的东西
它仅适用于 Windows 应用商店应用程序(桌面应用程序将来可能会出现):
和
There's now something close to this
It's for Windows Store apps only (desktop apps may come in the future):
And
不;这不是直接可能的。特别是,C# 不支持 C++ 模板。
No; this is not directly possible. In particular, C++ templates are not supported by C#.