我希望有人能帮助我解决这个问题,我主要是一名 C# 开发人员,所以我的
C和C++技能很差。我有一个本机 C dll,它是一个插件
更大的应用。我在Linux上为Windows交叉编译这个dll
使用海湾合作委员会。
在本机 dll 中,当我创建 D3DSurface 时,我想调用一个函数
在混合模式 C++ dll 中,并将指针传递到表面
带有 Hwnd/句柄。然后混合模式 C++ 应该调用我的 C#
托管代码。
举个例子,在 C 中我想执行以下操作;
Hwnd handle;
LPDIRECT3DSURFACE d3dtarg;
SurfaceCreated(handle, d3dtarg);
在 C# 中,我希望从混合模式程序集中调用它
public static class D3DInterop
{
public static void SurfaceCreated(IntPtr handle, IntPtr surface)
{
//do work
}
}
由于我对 C++ 很烂,我只是想知道是否有人可以给我一个
我需要为混合模式 dll 编写代码的示例。我也想要
不必使用 directx 标头编译混合模式 dll,因此
有一种方法可以将 'C' LPDIRECT3DSURFACE 转换为通用的
指针?在 C# 中我只是使用 IntPtr 。
创建一个托管 C++ (C++/CLI) DLL 项目,该项目可从 C 调用,并且还能够引用其他 .Net 程序集(即您的 C# 事物)。然后,所有 C++/CLI 桥接器所需要做的就是将数据类型从 HWND 转换为 IntPtr 等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)