有可能在C#项目中嵌入C代码吗?
我知道可以将我的C代码编译成dll,然后使用p/Invoke调用该代码 我想知道的是,是否有可能将一段C代码直接嵌入到我的代码中,可能只对一个类可用 类似以下(非工作)示例: 我已经尝试了几个小时使用VisualStudio2008,但我没有取得任何进展,我怀疑这实际上是不可能的。有人能证实或否认这一点吗有可能在C#项目中嵌入C代码吗?,c#,c,visual-studio-2008,embed,C#,C,Visual Studio 2008,Embed,我知道可以将我的C代码编译成dll,然后使用p/Invoke调用该代码 我想知道的是,是否有可能将一段C代码直接嵌入到我的代码中,可能只对一个类可用 类似以下(非工作)示例: 我已经尝试了几个小时使用VisualStudio2008,但我没有取得任何进展,我怀疑这实际上是不可能的。有人能证实或否认这一点吗 谢谢。这是不可能的。虽然C#支持(指针),但它与C或C++不向后兼容。可以创建混合模式程序集(即既有托管代码又有本机代码的程序集),但只有C++/CLI编译器才能生成其中一个。C编译器不支持您
谢谢。这是不可能的。虽然C#支持(指针),但它与C或C++不向后兼容。可以创建混合模式程序集(即既有托管代码又有本机代码的程序集),但只有C++/CLI编译器才能生成其中一个。C编译器不支持您要执行的操作。嗯,这是不可能的,因为C是一种不安全的非托管语言。此外,C#除了指针之外,还具有C的所有重要功能。您可以将C代码作为普通(非.NET)程序集编写和编译,然后p/调用它:
[DllImport ("mylib.dll")]
private static extern int do_something_in_c(int i);
public int DoSomething(int value)
{
return do_something_in_c(value);
}
C#支持指针-我的错。。但我没有考虑过,因为这是不安全的。OP在提问的第一行提到了这个。是的。我本来是这样做的。但它似乎有点不雅
[DllImport ("mylib.dll")]
private static extern int do_something_in_c(int i);
public int DoSomething(int value)
{
return do_something_in_c(value);
}