当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 这两天正在网上找工作。
 

 

    摘要:<%´=========================================================´ file: class_template.asp´ version:1.0´ date: 2004-5-7´ script written by r.h´ description: asp template class´=============......
 ·vc中的一些调试技巧    »显示摘要«
    摘要:毕业快一年,做了2个项目,都是在别人的代码上作开发,苦不堪言:bug 实在是太多。这一年中有大半的时间是在改别人的bug, 也积累了一些经验,和大家分享。我的方法大多数都来自《windows程序调试》(英文名 debugging windows programs)。那本书里讲了很多方法,我只挑对我自己帮助最大的: 1. 调试内存破坏。 这种bug的表现就是不定时,不定地方的崩溃。这种bug我一共碰到2次,每一次都花了很长时间,尤其是第二次,花了大家三天......


解决.net开发问题的最终法宝

这两天正在网上找工作。昨天一网友问了个问题,说sendmessage在.net中调用失败。

我看了看他的代码是用vb.net写的。于是我改用c#写了个小的测试程序 【相关文章:创建可编辑的xml文档(之三)执行拖放操

【扩展阅读:创建可编辑的xml文档(之二) 过滤xm

using system.runtime.interopservices; 【扩展信息:创建可编辑的xml文档(之四) 删除、改

[dllimport("user32.dll")]

private static extern long sendmessagew(int hwnd,int wmsg,int wparam,int lparam);

system.diagnostics.process[] p;

p=system.diagnostics.process.getprocessesbyname("notepad");

int i=p[0].handle.toint32();

sendmessagew(i,16,0,0); 

(因为sendmessage分两个版本,一个是sendmessagea一个是sendmessagew,由于nt下内部使用的是sendmessagew,而sendmessagea的调用则是先将参数转换后再调用sendmessagew,所以这里我是用sendmessagew。)

这个程序的功能是查找一个记事本程序,然后向他发送关闭消息。

试验了一下,果然失败了。

开始我怀疑是.net的问题,因为一个网友曾经说过在vb中调用成功的代码在vb.net中调用失败了。于是我是用ildasm对该程序进行反汇编。反编译后il代码如下。

  .entrypoint

  .custom instance void [mscorlib]system.stathreadattribute::.ctor() = ( 01 00 00 00 )

  // 代码大小       40 (0x28)

  .maxstack  4

  .locals init ([0] class [system]system.diagnostics.process[] p,

           [1] int32 i,

           [2] native int cs$00000002$00000000)

  il_0000:  ldstr      "notepad"


...   下一页
 ·dot net的调试 - 3    »显示摘要«
    摘要: 调试 实际上调试和跟踪用得很普遍。debug类中的方法有相同的名字的方法,这些方法实现了调试的功能。不同之处是在发布版本配置中是禁止使用的(这意味着不能产生二进制代码调用这些代码)。调试输出也可以在配置文件设置,请看下面: <confuration> <system.diagnostics> <debug autoflush = “true” indentsize = “7” / > &l......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE