在 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 指令或程序集引用?)"
我有两个问题:
- 我必须在 C# 项目中声明 typedef void* ScreenNode?
- 我的 typedef 是 void 数据类型。我可以在 C# 中为这个声明做些什么?
C#没有typedef
,所以你必须在所有使用它的地方指定类型(不是别名)。对于 C++ void*
,您可以在 C# 中使用 void*
或 IntPtr
。
我有一个 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 指令或程序集引用?)"
我有两个问题:
- 我必须在 C# 项目中声明 typedef void* ScreenNode?
- 我的 typedef 是 void 数据类型。我可以在 C# 中为这个声明做些什么?
C#没有typedef
,所以你必须在所有使用它的地方指定类型(不是别名)。对于 C++ void*
,您可以在 C# 中使用 void*
或 IntPtr
。