摘要: 这是P-INVOKE系列的最后一篇,也是万剑归宗的一篇,基本上只要函数签名对了,用他可以传递任何参数,函数的输入输出参数和返回值你也可以随心所欲地修改。把这个放在最后也是最完美的结局吧!!C++:测试代码如下:[代码]C#:在P-INVOKE中,我把C++指针参数Marshal成C#类的输入参数,把C++返回值为结构体的Marshal成字符串。注意下面的P-INVOKE声明。UnmanagedTy... 阅读全文
posted @ 2010-08-27 17:54 香山飘雪 阅读(2914) 评论(2) 推荐(0) 编辑
摘要: 这篇解决上篇那个结构体作为返回值的问题。我们结合反汇编来探索这里面的秘密。如何反汇编?方法如下:在C++函数内下断点,调试到断点断下,右键菜单,选择"反汇编",反汇编是VS自带功能。下面是几个简单的类:[代码]分别用上面的方法来逐个分析汇编:汇编里有我详细的注释:[代码]总结一下,这个结构体作为返回值,主要依赖于编译器对于超过8字节的返回值的编译处理。第一:不建议使用结构体作为返回值,因为这太依赖... 阅读全文
posted @ 2010-08-27 11:41 香山飘雪 阅读(1755) 评论(0) 推荐(0) 编辑