D8045: 无法编译 C 文件“serialcommands.c” 使用 /clr 选项
我收到编译器错误 D8045。 无法使用 /clr 选项编译 C 文件“serialcommands.c”。
该文件是一个 C 库,编写用于通过串行端口与 TI 处理器进行通信。 我需要做的任务是用 CLR 包装器包装这个库(如果您想从 CLI 问题中得到一些更简单的点,将会在 stackoverflow 上发布有关来回编组数据的其他问题。)
我只想使用这个 C 库来自我的 CLR 包装。 我去了 属性 -> 配置属性 -> C/C++ -> 常规 -> 使用公共语言运行时支持进行编译 = 无公共语言运行时支持
这是执行此操作的正确方法吗? 我以后会遇到令人讨厌的奇怪错误还是我需要做其他事情才能使用它?
I am getting compiler error D8045. cannot compile C file 'serialcommands.c' with the /clr option.
This file is a C library that has been written to talk over a serial port to a TI processor. The task that I need to do is wrap this library with a CLR wrapper (there will be additional questions posted to stackoverflow concerning marshalling data back and forth if you want some more easy points from CLI questions.)
I just want to use this C library from my CLR wrapper. I went to
Properties->Configuration Properties->C/C++->General->Compile with Common Language runtime support = No Common Language Runtime support
Is this the correct way to do this? Will I experience nasty weird bugs later or are other things that I need to do to use this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的。 您需要在没有 /CLR 的情况下编译任何 C 对象,因为 clr 只理解类和对象。
您仍然可以从 C++/CLI 项目中使用它们,将它们包装在“ref class”对象中。 这是将 C api 包装在 .NET 对象中的常规方法。
Yes. You need to compile any C objects without /CLR, since the clr only understands classes and objects.
You can still use them from your C++/CLI project, wrapped inside of your "ref class" objects. This is a normal way of wrapping a C api in .NET objects.