• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 用ATL写的服务如何调试?请给出具体的步骤,多谢!!!

用ATL写的服务如何调试?请给出具体的步骤,多谢!!!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了atl,atl71.dll,atl100.dll下载,atl71.dll修复,穿越火线atl71.dll等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 用ATL写的服务如何调试?请给出具体的步骤,多谢!!!
描述:

我写的服务在启动和运行的时候都很正常,但是停止的时候报一个访问内存出错,所以想调试跟踪一下。


解决方案1:

没有上面说的这么复杂,在VC中打开你写的服务程序,在客户端能调用的代码断中设置断点,F5启动调试器;启动客户端,调用服务程序,服务程序则运行到断点处,就可以调试啦。
对于非本地服务程序(DCOM),需要在客户端先注册Service,设置为在服务器端运行,VC装在服务器端。接下来步骤跟上面相似。

解决方案2:

办法1:可以不注册成服务,注册成Register as Local Server后,
当作本地exe来调试,客户创建接口后自动启动.exe在进程中,直接跟即可
_tWinMain
{
 // Register as Local Server
        if (lstrcmpi(lpszToken, _T("RegServer"))==0)
            return _Module.RegisterServer(TRUE, FALSE);
        
// Register as Service
if (lstrcmpi(lpszToken, _T("Service"))==0)
//return _Module.RegisterServer(TRUE, TRUE);
return _Module.RegisterServer(TRUE, FALSE);//<------
}
或者:
可以临时更改注册表,使程序作为普通的本地服务器运行。只需将 AppID 下的 LocalService 值重命名为 _LocalService,并确保在 CLSID 下正确设置 LocalServer32 项。
办法2:
是使用 Windows NT 4.0 或 Windows 2000 中的任务管理器。当服务正在运行时,启动任务管理器并单击“进程”选项卡。右击 EXE 的名称然后单击“调试”。这将启动附加到运行进程的 Visual C++。现在,在“调试”菜单上单击“中断”以在代码中设置断点。单击“运行”运行到选定的断点。

解决方案3:

HOWTO: Debugging a service
ID: Q98890 
--------------------------------------------------------------------------------
The information in this article applies to:
Microsoft Win32 Application Programming Interface (API), used with:
the operating system Microsoft Windows NT, versions 3.51, 4.0 
the operating system Microsoft Windows 2000
There are two techniques for debugging a service. The first technique involves adding a DebugBreak() statement to the service's code and letting the Just-in-time(JIT) debugging feature of Windows NT spawn the debugger when the service executes the DebugBreak(). The second technique involves attaching the debugger to the service while it is running. 
有2个方法可以调试service, 这里的调试指的是用Debug工具,例如Msdev.exe或WinDbg进行语句跟踪,而不是指输出event或log file之类.
第一种方法:
在你的service's code中加入产生Debug中断的语句DebugBreak().当程序执行到此时弹出一个DLG框,你可以选择启动Msdev.exe从DebugBreak()语句后,开始跟踪.
从实际使用来说,我觉得这种方法适合于调试个别简单错误,比较初级,而且需要额外修改service程序,
第二种方法:
attaching debugger(Msdev.exe)到一个正在运行的service上. 


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 为什么用向导生成的ATLCOM工程(dll)没有dlldatac文件
  • 关于用ATL开发office插件
  • 疑惑:如何使用通过atl工程编写的类接口
  • ATL怎么实现可变参数的接口?
  • codeproject上的经典代码,ATL做OPENGL控件,为什么不能在VB环境下正常工作,如何改进
  • VC的ATL编COM组件,Com之间调用问题
  • 要用atl写个控件,涉及到界面的,怎么将wtl和atl结合起来用呐?用wtl来做控件的界面
  • ATL实现office插件问题?
  • 谁能帮我看一下关于ATL编写COM组件
  • 在ATL中不能用#import导入excel9olb文件么??

相关文章

  • 2017-06-04 一个关于ATL数据库编程的疑惑,请快来援手
  • 2017-06-05 softice怎样察看结构、字符串、变量一定給分
  • 2017-06-05 win2k中,已知一个进程的id或handle,如何获得它的父进程的id或handle?
  • 2017-06-05 用VC60ATL生成的Windows服务在WIN7下运行
  • 2017-06-05 Sleep的迷惑??
  • 2017-06-05 VC执行javascript函数
  • 2017-06-05 VC60在XP系开发的读串口的软件,怎么在WIN764位不能读串口数据。
  • 2017-06-04 COM组件与网页传递结构参数问题~~~~~~~~~~~~~~~~
  • 2017-06-04 IsDirty函数得不到框架页里的改动,都返回S_FALSE
  • 2017-06-04 打算换公司,如何将vc写的客户端软件做成控件,供客户浏览器使用?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • active控件初始化大小
    • 容器和Com组件之间,是通过什么做底层通信的?
    • 简单问题:使用的是晚绑定方式,为什么调用服务器方法时却说没有“找不到成员”?
    • Add到工程中的已注册组件无法使用。说不是一个OLEControl。但是插入对话框的同样组件就可以用相同的方法使用。why?
    • rpc编程,"接口分为implicit和explicit两种",是什么意思?
    • DLL的问题,请教!
    • 请问如何实现控件ActiveX打印功能
    • 怎样最快地把一个几十万行的mfcexe程序弄成ocx控件?
    • 小弟现学ATL,请问那位有潘爱民的<<深入解析ATL>>,我买!!!
    • 请教dll调用函数的问题!

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有