在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明 - 天,没有什么比这个更让人恶心的事情了。因为:
1. 如果你的结构体里面包含 TCHAR字符串成员的话,需要考虑ANSI和Unicode DLL的情形。
2. 如果你的结构体里面包含数组成员,需要考虑定长的数组,而不是对应C#数据类型。
3. 如果你的结构体里面包含联合体(UNION),需要使用Explict