void*是否可以从C++;到C# 我使用C→C++的回调函数使用代码> > RVDACQQuxIng/,它返回一个结构,我知道我已经正确地构造了结构,就像我已经测试过结构一样。该函数采用以下参数: C++

void*是否可以从C++;到C# 我使用C→C++的回调函数使用代码> > RVDACQQuxIng/,它返回一个结构,我知道我已经正确地构造了结构,就像我已经测试过结构一样。该函数采用以下参数: C++,c#,c++,void-pointers,C#,C++,Void Pointers,返回的结构为tvdaq\u CallBackRec 我想知道的是,等价的参数类型在C#中 这就是我已经拥有的。我曾尝试使用ItpTR作为C++函数,使用该函数使用关键字 < > Vult*/Cux>参数,并使用 ItpTrt/Cuth>返回一个错误,“方法的类型不与pJoNKE兼容”。p> 部分问题也可以是短*,当当C++中的参数传递到函数中时,代码代码[S][/C]>被使用,因此是 ItpTr[]/Calp>./P>的原因。 我希望返回结构,但我也可以将返回类型改为 ItpTrt/COD>

返回的结构为
tvdaq\u CallBackRec

我想知道的是,等价的参数类型在C#中

这就是我已经拥有的。我曾尝试使用ItpTR作为C++函数,使用该函数使用关键字<代码> < <代码> > Vult*/Cux>参数,并使用<代码> ItpTrt/Cuth>返回一个错误,“方法的类型不与pJoNKE兼容”。p>

部分问题也可以是短*<代码>,当当C++中的参数传递到函数中时,代码<>代码[S][/C]>被使用,因此是<代码> ItpTr[]/Calp>./P>的原因。


我希望返回结构,但我也可以将返回类型改为<代码> ItpTrt/COD>,然后执行<代码> MARHAL.PttotoStult

。即使在C++中使用<代码> Vult*/COM>而不是具体类型,也会皱眉。C++代码不是我的代码,它是我为一个设备所获得的示例代码,我试图用回调来复制C语言中的一些特性,这是其中之一。据我所知,

void*
指向一个对话框,因为使用的参数是
this
。因此,对话框中会出现图像。在C函数签名中,空隙并不少见,从而使它易于在C++代码中使用。使得实现回调作为C++实例功能更容易。但是你没有用,你作为第二个参数传递的委托已经处理好了。您确实需要修复IntPtr[],它不能替代short*。它是IntPtr或short[],short[]数组只有在告诉您数组的大小时才能工作。可能是最后一个参数,在声明中使用SizeParamIndex。务必显示示例代码以避免猜测。
tVDACQ_CallBackRec* (_stdcall* rVDACQ_Connect)(int, tVDACQ_CallBackProc, void*, short*, int);
tVDACQ_CallBackRec VDACQ_Connect(int i, [MarshalAs(UnmanagedType.FunctionPtr)] tVDACQ_CallBackProc proc, IntPtr n, IntPtr[] buffer, int j)