Cat*_*lMF 5 c# c++ unmanaged managed
我有一个现成的产品,它支持需要用Unmanaged C编写的自定义插件.它不支持Managed Dll,我的首选语言是c#.
需要传递回现货产品的信息非常基本,可以保存在一个字符串中.
所以我想我可以做到以下几点:
现在,在托管C++和C#Dll之间进行通信很容易.
但我无法弄清楚如何从非托管c dll调用托管c ++函数.任何简单示例代码的帮助都会很棒.
谢谢
编辑:我创建了一个代码项目文章,关于我是如何使用Alex的答案在下面做的. http://www.codeproject.com/Tips/695387/Calling-Csharp-NET-methods-from-unmanaged-code
你几乎做对了.只需将数字2和3放在同一个C++/CLI DLL中.您既可以使用.NET类,也可以从C++/CLI项目中导出C函数.
extern "C" __declspec( dllexport ) void __stdcall PureExportC(
const wchar_t* param
)
{
CSharpAssemblyNamespace::CSharpWorker worker;
worker.DoWork( gcnew String(param) );
}
Run Code Online (Sandbox Code Playgroud)