P/Invoke调用dll函数,将本来void的函数声明为带返回值的,在win7出错,在winxp下正常,理由是?-- 续
摘要: 作者:不及格的程序员-八神在前文中P/Invoke调用dll函数,将本来void的函数声明为带返回值的,在win7出错,在winxp下正常,理由是?,本以为自已可以耍小聪明骗过clr平台调用引擎,将eax寄存器做为返回值.其实这样做一开始就是错误的.CLR内存管理在平台调用中使用COM内存管理模型,也就是说它会本着"有来有去"或是"从来里来就回哪里去的原则审请或释放内存.从1993年就随着OLE一...
阅读全文
posted @
2010-10-20 10:18 不及格的程序员-八神 阅读(305) |
评论 (3) 编辑
不要把CLR via C#顶上天,别拿它说事儿,Jeffrey 不是牛人!!!
摘要: 不知用什么样的言语来形容如此火辣的标题,暂时先这么一说.今天看到坛子里有一篇贴子讲关于CLR内存管理一些深层次的讨论[上篇],里面的评论中有说 没看过这本书 会怎么怎么样.. 觉得好像有点怪. Jerffrey 也只不过是个作家.真正的"牛人"在微软的每个团队中,而不是它.更喜欢它的同事:John Robbins 一个软件调试专家.引用:双鱼座所说:"如果没看过“CLR via C#&...
阅读全文
posted @
2010-10-19 09:44 不及格的程序员-八神 阅读(4593) |
评论 (141) 编辑
高级话题:P/Invoke调用dll函数,将本来void的函数声明为带返回值的,在win7出错,在winxp下正常,理由是?
摘要: 作者:不及格的程序员-八神情况描述:我在win32 dll 项目中封装了段asm代码调用另一个dll中的函数.在我的win32 dll项目中公开的函数声明如下:[代码]下面是我在C#项目中声明的函数导入代码;[DllImport("No.dll", CallingConvention = CallingConvention.Cdecl)]private static extern void No(string strArg0, byte[] strArg1); //此种调用方式,在winxp,win7系统都可以正常运行,结果是通过strArg1传递的.//注意:下面代码声明了string类型的
阅读全文
posted @
2010-10-13 15:24 不及格的程序员-八神 阅读(1051) |
评论 (7) 编辑
在windows Server 2008 与WIN 7 同时配置WCF http/tcp绑定信息的不同点,以及企业库LOG功能的权限问题.
摘要: 作者:不及格的程序员-八神为了启用net.tcp,要确保三个服务正常运行,net.tcp端口监听与共享服务,还有was服务,然后还要确保网站支持net.tcp协议,网站光具有这些协议绑定还不够,还要设置网站高级属性:在Windows Server 2008 中配置的tcp绑定信息在wcf测试端或是vs开发环境中的添加服务引用是可以使用net.tcp协议访问的. 而在win7中部属的net.tcp wcf绑定则不能通过此协议访问,只能通过http协议访问.另外,在wcf测试端生成的客户端配置,可以在右键菜单中选择编辑进行修改,比如生成的服务地址不正确(显示的为服务器机器名而不是ip地址)可以修改
阅读全文
posted @
2010-10-12 13:36 不及格的程序员-八神 阅读(137) |
评论 (0) 编辑
在Visual Studio 2008/2010中同时调试托管代码与非托管代码.
摘要: 作者:不及格的程序员-八神在vs2010中默认不支持混合型调试,需要手动设置项目的属性.成功之后就可以在调试环境中同时断点托管代码与win32的c++代码了.下面图片展示如何设置托管项目与win32项目的属性.另外利用vs2010也可以附加到已经运行的应用程序,无论是win32程序还是托管程序.通过菜单中的工具->附加到进程,在调试代码类型中,同时选中托管与本机类型,这样就可以调试iis进程...
阅读全文
posted @
2010-10-12 12:45 不及格的程序员-八神 阅读(254) |
评论 (1) 编辑