在 C# 中使用 c++ dll typedif

Use c++ dll typedif in C#

我有一个 c++ dll 项目,在这里,我有一个像这样的 typedef 声明

typedef void* ScreenNode;

在我的头文件中我使用了这个减速

extern "C" __declspec(dllexport) int CB_AddProgramColor (ScreenNode g_screen_node,ProgramNode program_node,int color, int alpha);

现在,我想在 C# 中通过这样的 class 使用此函数

internal unsafe partial class BBIA
{
[DllImport(dllName)]
        public static extern
            int CB_initNode(ScreenNode g_screen_node, int width, int heigth,EN_DevType EN_C1Dev);
}

但我在 ScreenNode g_screen_node 上出错了。

"错误 1 ​​找不到类型或命名空间名称 'ScreenNode'(是否缺少 using 指令或程序集引用?)"

我有两个问题:

  1. 我必须在 C# 项目中声明 typedef void* ScreenNode
  2. 我的 typedef 是 void 数据类型。我可以在 C# 中为这个声明做些什么?

C#没有typedef,所以你必须在所有使用它的地方指定类型(不是别名)。对于 C++ void*,您可以在 C# 中使用 void*IntPtr