创建从C到C#的混合模式C++桥?我希望有人能帮助我,我主要是一名C#开发人员,所以我的C和C++技能很糟糕。我有一个本机Cdll,它是一个更大应用程序的插件。我使用gcc在linux上为windows交叉编译这个dll。在我创建D3DSurface的本机dll中,我想在混合模式C++dll中调用一个函数,并将指针传递给表面以及Hwnd/句柄。该混合模式C++应调用我的C#托管代码。例如,在CI中执行以下操作;Hwnd句柄;LPDIRECT3DSURFACEd3dtarg;SurfaceCreated(句柄,d3dtarg);在C#中,我想从混合模式程序集调用它我需要为混合模式dll编写代码的示例。我也不想使用directx标头编译混合模式dll,那么有没有办法将“C”LPDIRECT3DSURFACE转换为通用指针?在C#中,我只使用IntPtr。创建一个托管C++(C++/CLI)DLL项目,该项目可以从C调用或引用其他.Net程序集(即您的C#程序集)。然后,您所有的C++/CLI桥接器所要做的就是将数据类型从HWND转换为IntPtr等。您看过MicrosoftXNA吗?它应该是DirectX的托管包装器。您可以在混合模式DLL中使用void*。从指向任何内容(包括指向IDirect3DSurface的指针)的指针到void*的隐式转换。然后,您可以使该指针IntPtr成为IntPtr。C#学习教程就是这些:创建从C到C#的混合模式C++桥?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
