Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c++;C中的dll类型DIF# 我有C++ DLL项目,在这里,我有一个TyPuff声明,比如这个 typedef void* ScreenNode; 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); }_C#_C++_Dll_Typedef - Fatal编程技术网

C# 使用c++;C中的dll类型DIF# 我有C++ DLL项目,在这里,我有一个TyPuff声明,比如这个 typedef void* ScreenNode; 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); }

C# 使用c++;C中的dll类型DIF# 我有C++ DLL项目,在这里,我有一个TyPuff声明,比如这个 typedef void* ScreenNode; 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); },c#,c++,dll,typedef,C#,C++,Dll,Typedef,在我的头文件中,我使用这个减速 extern "C" __declspec(dllexport) int CB_AddProgramColor (ScreenNode g_screen_node,ProgramNode program_node,int color, int alpha); 现在,我想在C#中对这样的类使用这个函数 typedef void* ScreenNode; internal unsafe partial class BBIA { [DllImport(dllName

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

extern "C" __declspec(dllexport) int CB_AddProgramColor (ScreenNode g_screen_node,ProgramNode program_node,int color, int alpha);
现在,我想在C#中对这样的类使用这个函数

typedef void* ScreenNode;
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);
}
但是,我在屏幕节点g_屏幕节点上记录了这个细节

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

我有两个问题:

  • 我必须在C#Project中声明typedef void*ScreenNode
  • 我的typedef是void数据类型。我可以用C#来做这个声明吗
  • C#没有
    typedef
    ,因此您必须在所有使用它的地方指定类型(而不是别名)。对于C++<代码> Value*/COD>可以使用<代码>虚空> />代码>或<代码> ItPtR> /c> > C >。/P> C++中最接近TyEvf的是别名“使用”,用于类型:例如,使用“Foo= Stase.DATETIME”;这将允许您在该文件中指定“FoO”而不是“DATETIME”(但对您的示例没有帮助)。和C++中的“TyPuff”一样,这并不总是增强代码的清晰性。请参阅上面的注释,C语言确实有一个别名“使用”语法,它允许您使用一个不同的名称来进行类型,但是它不会允许这个带有空隙*。