2013年3月18日

Marshal在C#中的应用(void *指针到IntPtr的转化)

摘要: C#调用C语言的API时一般把void *指针转换成IntPtr,但这经常远远不够的。在C语言中void *是个万金油,尤其是一些老的c语言程序,所有的参数就一个void*指针,里面包罗万象,然后在程序中来一个switch,甚至多个switch来处理不同的参数。最近笔者就碰到了这个问题,不得不来研究一下怎么把void *指针转换成IntPtr。1.void *指针到IntPtr的简单转化。c语言函数原型:int SetConfig(int type, void *p);这里假设p的所传递的参数式是结构体A:struct A { wchar_t osdbuffer[100]; un... 阅读全文

posted @ 2013-03-18 01:17 钟湘光 阅读(16724) 评论(1) 推荐(2) 编辑

导航