2013年7月4日
摘要: 推荐:http://blog.csdn.net/blpluto/article/details/5706757 阅读全文
posted @ 2013-07-04 23:01 ein_key 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 2013-07-04http://blog.csdn.net/blpluto/article/details/5715182感觉挺好,推荐去看看。 阅读全文
posted @ 2013-07-04 22:50 ein_key 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 今天在调程序时,C#调用VC 编译的dll出现堆栈不对称,查了一下资料,转载在这里供大家参考。问题描述:对 PInvoke 函数“xxFunction()”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配问题解决:1、在c#中函数声明处改一个参数,[DllImport("xx.dll", EntryPoint=“xxFunction”, CallingConvention = CallingConvention.Cdecl)]调用时不变 2、在c++代码中改对应的c+ 阅读全文
posted @ 2013-07-04 22:44 ein_key 阅读(794) 评论(0) 推荐(0) 编辑
  2013年7月2日
摘要: 最近做项目需要把以前Vc写的程序整合到VS2005来,用c#写的,以前VC的动态连接库写好了,重写比较麻烦,让C#调用VC dll就好了。但碰到了一个问题:VC中作为输出参数的char*类型的变量应该怎样申明才能正确输出数据呢? 一般说来,在VC中一般的输出参数都为指针或数组的形式,如果是一般类型的指针如整形等,在c#中用ref加上数据变量则可获得返回值。所以我试着把VC中char*输出变量在c#中写成ref string(因为char*在c#中可以写成string或char[]),但发现这样写是不行的。 后来从网上查了些资料,发现char*类型数据作为输出参数时,在c#中数据类型要写成Str 阅读全文
posted @ 2013-07-02 14:20 ein_key 阅读(644) 评论(0) 推荐(0) 编辑