VC知识库 MSDN 杂志翻译项目组

MSDN Magazine Translation Team's Blog

  VC知识库BLOG :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  61 随笔 :: 106 文章 :: 778 评论 :: 5 Trackbacks
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

留言簿(30)

随笔分类

随笔档案

文章分类

文章档案

MSDN MTT 相关链接

搜索

最新评论

阅读排行榜

评论排行榜

03 2006 档案

定制调试诊断工具和实用程序——摆脱DLL“地狱”(DLL Hell)的困扰(八)

CreateRemoteThread,命令行及其它

  你已经看到如何用 Win32 调试 API 来揭示进程是怎样加载 DLLs 以及加载到哪里的。现在让我们来揭开CreateRemoteThread 的秘密,这个函数允许你使用另外一个进程在其上下文中启动函数作为线程运行:

HANDLE CreateRemoteThread(
  HANDLE hProcess,                          // 进程句柄
  LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD-安全描述符
  DWORD dwStackSize,                        // 初始栈大小
  LPTHREAD_START_ROUTINE lpStartAddress,    // 线程函数
  LPVOID lpParameter,                       // 线程参数
  DWORD dwCreationFl

发表于 2006-03-23 20:43 VCKBASE MSDN MTT 阅读(1003) | 评论 (1)  编辑

定制调试诊断工具和实用程序——摆脱DLL“地狱”(DLL Hell)的困扰(七)

Windows Loader 知道一切

  除了 Win32 调试 API 之外,Windows 还提供另外一种很好的关于 DLL 加载地址冲突的信息源。那就是在注册表中设置的一些全局标志(或 GFlags):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

  从而改变 Windows 处理应用程序的方式。GFlags.exe (see Figure 8) 是一个微软调试工具之一,用它可以轻松更改上述的注册表项值。

发表于 2006-03-22 23:06 VCKBASE MSDN MTT 阅读(758) | 评论 (0)  编辑

MANAGED SPY:用我们的新工具继续Spy++对Windows Forms的神话

本文使用.NET Framework 2.0

本文讨论:

  •   新工具ManagedSpy
  •   理解ManagedSpy在调试中如何工作和起作用的
  •   看看ManagedSpyLib的内部工作机制
  •   在单元测试中使用ManagedSpyLib

有不少开发者使用Visual Studio®提供的工具Spy++。使用Spy++,你可以了解一个运行中的应用程序的窗体布局或确定一个导致bug的特定窗体消息。然而,当你创建一个基于Microsoft® .NET框架的应用程序,Spy++变得不太管用了,因为由Spy++截取窗体消息和类不能与开发者使用或甚至看到的任何事情通信。开

发表于 2006-03-17 22:53 VCKBASE MSDN MTT 阅读(793) | 评论 (0)  编辑

定制调试诊断工具和实用程序——摆脱DLL“地狱”(DLL Hell)的困扰(六)

摘要

  本文前面讨论了用几种不同的方法来获取进程及其相关 DLLs 的信息,例如通过 PSAPI、NTDLL 以及TOOLHELP32 库提供的 APIs,在这一部分,作者给出了几种获得系统级信息的非常规方法,你可以轻松将它们集成到自己的工具包中。本文范例包含三个实用工具:

  • LoadLibrarySpy,监视并扫描应用程序加载了哪些 DLLs;
  • WindowDump,获取任何窗口的的内容以及窗口的详细描述信息;
  • FileUsage,重定向控制台程序,揭示哪个进程正在使用打开的文件;

发表于 2006-03-02 22:57 VCKBASE MSDN MTT 阅读(774) | 评论 (0)  编辑