如何在单个可执行文件中使用C#和C ++代码,并且Final Exe是否需要Net Framework。 我正在使用Visual Studio 2013。
答案 0 :(得分:1)
来自here
如果您的C ++代码未使用/ clr:safe编译(即使用/ clr或/ clr:pure编译),请执行以下操作:
如果您的C ++代码是使用/ clr:safe编译的,请将您的C ++代码构建为.netmodule。您可以像使用任何其他语言的.netmodule一样使用它。
答案 1 :(得分:0)
另一种适用于任何托管程序集(用C ++ / CLI或任何.Net语言编写)的方法是将该程序集作为资源添加到可执行项目中。因此,如果该程序集没有出现在带有exe的目录中,那么它将使用以下代码从资源加载。
在你的exe中,你应该注册到程序集解决事件:
AppDomain.CurrentDomain.AssemblyResolve += (s, e) =>
{
Assembly asm = null;
if (e.Name == "otherAssembly.dll")
{
byte[] assemblyBytes = // code to retrieve assembly from resources.
asm = Assembly.Load(assemblyBytes);
}
return asm;
};