在我正在使用的头文件中有一个类型叫做VTVOID它是一个struct元素的类型和一些参数。
在头文件中定义类型是行另一个无效的C#问题
#define VTVOID void
我在另外一个讨论的空白映射到System.Void
但是当我插上读取到C#代码中,我得到的错误
“系统。在C#中不能使用void - 使用typeof(void)来获得void 对象。“
那么我插入什么类型?
Jim
在我正在使用的头文件中有一个类型叫做VTVOID它是一个struct元素的类型和一些参数。
在头文件中定义类型是行另一个无效的C#问题
#define VTVOID void
我在另外一个讨论的空白映射到System.Void
但是当我插上读取到C#代码中,我得到的错误
“系统。在C#中不能使用void - 使用typeof(void)来获得void 对象。“
那么我插入什么类型?
Jim
如果返回vlaue为void,则使用void Foo(){}而不是System.Void Foo(){}。
如果您需要有一组数据,请使用byte []而不是void *。
VTVOID被用作结构元素类型如下: [StrucLayout(LayoutKind.Sequential,Pack = 4)] public struct DAFILESPEC { public VTDWORD dwSpecType; public VTVOID pSpec; Public IntPtr hThis; }; 并且作为参数类型 [DllImport(“sccda.dll”)] public static extern uint DADeInit(VTVOID param0); 从PInvoke向导2.0的输出以上,我在C#兼容类型subtle。例如VTDWORD是32位机器上的一个uint。 其他评论: #define VTVOID void是C头文件而不是C# System.Type VTV = typeof(void)无法弄清楚如何使用它。 – 2010-03-26 19:48:32
这很奇怪,你不能声明一个变量为void。从变量“pSpec”的名称,我会从前缀猜测,它是一个**指针**无效。只有VTVOID作为参数的方法我猜这个方法没有参数。 – codymanix 2010-03-29 08:28:50
,您可以在此处看到方法DADeInit没有参数:http://download.oracle.com/docs/cd/E14154_01/sxguide/html/c04_dataaccess003.htm – codymanix 2010-03-29 08:30:13
呃,'typeof(void)'不工作吗? – 2010-03-26 16:31:51
你是说#define VTVOID无效,所以你想改变什么? – 2010-03-26 16:31:53
为什么不使用System.Object? ;) – 2010-03-26 16:31:55