C#中的内联C和编译?

use*_*111 1 c# visual-c++

是否可以在C#中编写大部分程序,然后在C或C++中下拉并执行某些函数/对象?

我知道你可以从C#调用预编译的.dll; 但是你可以直接从C#"内联"本地C吗?他们必须"管理".dlls?

如果没有,我假设有一个类似JNI的界面?

另外,另一个问题; 你可以将C#编译成"原生"机器代码吗?

MSVS2010/Win7如果重要的话.

Jus*_*tin 7

你不能在C#中内联C代码 - 如果你想在C中编写部分代码,那么你需要跨越某种互操作层才能调用那个C代码,例如P/Invoke或Managed C++.

但是,您可以在托管C++中内联C(甚至汇编),允许您在单个程序集/ dll中组合本机代码和托管代码.

对于.Net等效的JNI(本机代码调用托管代码),常规方法是使用COM互操作或托管C++ - 您也可以托管CLR,但这种情况不太常见.

至于将C#编译成"本机"机器代码,请阅读NGen.