例如,一个结构,在C#中应该如何定义?MSDN中有参照表吗?Type Definition 
ATOM Atom. For more information, see Atoms. 
BOOL Boolean variable (should be TRUE or FALSE). 
BOOLEAN Boolean variable (should be TRUE or FALSE). 
BYTE Byte (8 bits). 
CALLBACK Calling convention for callback functions. 
CHAR 8-bit Windows (ANSI) character. For more information, see Character Sets Used By Fonts. 
COLORREF Red, green, blue (RGB) color value (32 bits). See COLORREF for information on this type. 
CONST Variable whose value is to remain constant during execution. 
CRITICAL_SECTION Critical-section object. For more information, see Critical Section Objects. 
DWORD 32-bit unsigned integer.  
DWORD_PTR Unsigned long type for pointer precision. Use when casting a pointer to a long type to perform pointer arithmetic. 
DWORD32 32-bit unsigned integer. 
DWORD64 64-bit unsigned integer. 
FLOAT Floating-point variable. 
HACCEL Handle to an accelerator table. 
HANDLE Handle to an object. 
HBITMAP Handle to a bitmap. 
HBRUSH Handle to a brush. 
HCONV Handle to a dynamic data exchange (DDE) conversation. 
HCONVLIST Handle to a DDE conversation list. 
HCURSOR Handle to a cursor. 
HDC Handle to a device context (DC). 
HDDEDATA Handle to DDE data. 
HDESK Handle to a desktop. 
HDROP Handle to an internal drop structure. 
HDWP Handle to a deferred window position structure. 
HENHMETAFILE Handle to an enhanced metafile. 
HFILE Handle to a file opened by OpenFile, not CreateFile. 
HFONT Handle to a font. 
HGDIOBJ Handle to a GDI object. 
HGLOBAL Handle to a global memory block. 
HHOOK Handle to a hook. 
HICON Handle to an icon. 
HIMAGELIST Handle to an image list. 
HIMC Handle to input context. 
HINSTANCE Handle to an instance. 
HKEY Handle to a registry key. 
HKL Input locale identifier. 
HLOCAL Handle to a local memory block. 
HMENU Handle to a menu. 
HMETAFILE Handle to a metafile. 
HMODULE Handle to a module. 
HMONITOR Handle to a display monitor. 
HPALETTE Handle to a palette. 
HPEN Handle to a pen. 
HRGN Handle to a region. 
HRSRC Handle to a resource. 
HSZ Handle to a DDE string. 
HWINSTA Handle to a window station. 
HWND Handle to a window. 
INT 32-bit signed integer. 
INT_PTR Signed integral type for pointer precision. Use when casting a pointer to an integer to perform pointer arithmetic. 
INT32 32-bit signed integer.  
INT64 64-bit signed integer.  
LANGID Language identifier. For more information, see Locales. 
LCID Locale identifier. For more information, see Locales. 
LCTYPE Locale information type. For a list, see Locale and Language Information 
LONG 32-bit signed integer. 
LONG_PTR Signed long type for pointer precision. Use when casting a pointer to a long to perform pointer arithmetic. 
LONG32 32-bit signed integer. 
LONG64 64-bit signed integer. 
LONGLONG 64-bit signed integer. 
LPARAM Message parameter. 
LPBOOL Pointer to a BOOL. 
LPBYTE Pointer to a BYTE. 
LPCOLORREF Pointer to a COLORREF value. 
LPCRITICAL_SECTION Pointer to a CRITICAL_SECTION. 
LPCSTR Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts. 
LPCTSTR An LPCWSTR if UNICODE is defined, an LPCSTR otherwise. 
LPCVOID Pointer to a constant of any type. 
LPCWSTR Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts. 
LPDWORD Pointer to a DWORD. 
LPHANDLE Pointer to a HANDLE. 
LPINT Pointer to an INT. 
LPLONG Pointer to a LONG. 
LPSTR Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts. 
LPTSTR An LPWSTR if UNICODE is defined, an LPSTR otherwise. 
LPVOID Pointer to any type. 
LPWORD Pointer to a WORD. 
LPWSTR Pointer to a null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts. 
LRESULT Signed result of message processing. 
LUID Locally unique identifier. 
PBOOL Pointer to a BOOL. 
PBOOLEAN Pointer to a BOOL. 
PBYTE Pointer to a BYTE. 
PCHAR Pointer to a CHAR. 
PCRITICAL_SECTION Pointer to a CRITICAL_SECTION. 
PCSTR Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts. 
PCTSTR A PCWSTR if UNICODE is defined, a PCSTR otherwise. 
PCWCH Pointer to a constant WCHAR. 
PCWSTR Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts. 
PDWORD Pointer to a DWORD. 
PFLOAT Pointer to a FLOAT. 
PHANDLE Pointer to a HANDLE. 
PHKEY Pointer to an HKEY. 
PINT Pointer to an INT. 
PLCID Pointer to an LCID. 
PLONG Pointer to a LONG. 
PLUID Pointer to a LUID. 
POINTER_32 32-bit pointer. On a 32-bit system, this is a native pointer. On a 64-bit system, this is a truncated 64-bit pointer.  
POINTER_64 64-bit pointer. On a 64-bit system, this is a native pointer. On a 32-bit system, this is a sign-extended 32-bit pointer. 
PSHORT Pointer to a SHORT. 
PSTR Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts. 
PTBYTE Pointer to a TBYTE. 
PTCHAR Pointer to a TCHAR. 
PTSTR A PWSTR if UNICODE is defined, a PSTR otherwise. 
PUCHAR Pointer to a UCHAR. 
PUINT Pointer to a UINT. 
PULONG Pointer to a ULONG. 
PUSHORT Pointer to a USHORT. 
PVOID Pointer to any type. 
PWCHAR Pointer to a WCHAR. 
PWORD Pointer to a WORD. 
PWSTR Pointer to a null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts. 
REGSAM Security access mask for registry key. 
SC_HANDLE Handle to a service control manager database. For more information, see SCM Handles. 
SC_LOCK Handle to a service control manager database lock. For more information, see SCM Handles. 
SERVICE_STATUS_HANDLE Handle to a service status value. For more information, see SCM Handles. 
SHORT Short integer (16 bits). 
SIZE_T The maximum number of bytes to which a pointer can point. Use for a count that must span the full range of a pointer.  
SSIZE_T Signed SIZE_T. 
TBYTE A WCHAR if UNICODE is defined, a CHAR otherwise. 
TCHAR A WCHAR if UNICODE is defined, a CHAR otherwise. 
UCHAR Unsigned CHAR. 
UINT Unsigned INT. 
UINT_PTR Unsigned INT_PTR. 
UINT32 Unsigned INT32. 
UINT64 Unsigned INT64. 
ULONG Unsigned LONG. 
ULONG_PTR Unsigned LONG_PTR. 
ULONG32 Unsigned LONG32. 
ULONG64 Unsigned LONG64. 
ULONGLONG 64-bit unsigned integer. 
UNSIGNED Unsigned attribute. 
USHORT Unsigned SHORT. 
VOID Any type. 
WCHAR 16-bit Unicode character. For more information, see Character Sets Used By Fonts. 
WINAPI Calling convention for system functions. 
WORD 16-bit unsigned integer. 
WPARAM Message parameter. 

解决方案 »

  1.   

    没参照表.因为有很大的灵活性
    int float 之类的不说了.
    一般来说句柄类的一律IntPtr;
    LP*STR对应string;
    结构要自己预先声明struct
    指针类一般对应ref type.
    com里用到的void**指针对应out interface.
    剩下的就看类型的大小找一个合适的放上去了.但这都不是死的.比如一个SendMessage我能写出5个以上能正常用的形式.
    一切都是根据需要写.只要你熟悉C/C++,指针再熟悉下C#平台调用的封送规
    则.写这些东西还是很轻松的.
      

  2.   

    请帖(计算机/编程爱好者)
    本人是计算机疯狂爱好者,为了有共同爱好者的朋友们能走到一起互相交流切磋,我特意创建了几个群,  希望有共同爱好的   新手 加入...  
     计算机爱好者群系列
     计算机爱好者-电脑技术群      26959968
     计算机爱好者-C编程群   43710309
     计算机爱好者-C#/net 群     86594082
       加群的好处 :当你有一些小问题的时候 去网上发贴 不能及时得到答案,在群里可以迅速得到答案.....能认识一些志同道合的朋友......共同进步.......
      

  3.   

    我记得有一个网站是专门干这事的,还有VS插件,叫P/Invoke什么的,及不太准了.
      

  4.   

    装上pinvoke插件
    下载地址6楼有
      

  5.   

    本人现在就是用的混合编程,感觉很好用。比如正刚表达式,如果你用ATL库中的CAtlRegExp类的话,会用到你吐血的。
    再比如说windows通用界面,如果用C#就很难实现
      

  6.   

    多谢大家!上次查看MSDN的时候,记得有对照表。现在找来找去找不到……