Delphi和OutputDebugString
曾经想要实时监控您的Delphi应用程序,并能够查看日志消息吗?当然,您始终可以在RAD Studio IDE中以完全调试模式运行。另一种方法是输出日志消息,例如输出到文本文件。您还可以使用OutputDebugString函数。
这种方法的一个优点是它尽可能少地影响您的应用程序。您不必关心文件处理。只需调用一个函数。
OutputDebugString函数在Win32 API中的RTL单元Winapi.Windows中定义。
你只需从你的代码中调用它,如下所示:
..
uses
Winapi.Windows;
..
var
Msg : string;
begin
OutputDebugString('This is my message');
Msg := 'This is another log message';
OutputDebugString(PChar(Msg));
..
如果重复或循环调用OutputDebugString,可能会导致一些性能开销。因此,请确保您的发布版本中不包含对OutputDebugString的调用。要避免它,您可以使用条件编译指令,如:
..
(*$IFDEF ODS*)
OutputDebugString('This is my message');
(*$ENDIF*)
..
只有在想以这种方式记录消息时才激活编译指令“ODS”。另外,考虑为OutputDebugString调用创建一个包装函数,这样您的代码将更易于阅读和维护。像这样的东西:
procedure DebugODS(const Msg : string);
begin
(*$IFDEF ODS*)
OutputDebugString(PChar(Msg));
(*$ENDIF*)
end;
如果从RAD Studio IDE中运行,日志消息将显示在输出窗口中。
但是如果你独立运行,很有可能使用SysInternals(Microsoft)提供的免费DebugView应用程序(dbgview.exe)。来自其网页的信息:
DebugView是一个应用程序,它允许您监视本地系统或网络上可通过TCP / IP访问的任何计算机上的调试输出。它能够显示内核模式和Win32调试输出,因此您不需要调试器来捕获应用程序或设备驱动程序生成的调试输出,也不需要修改应用程序或驱动程序以使用非标准调试输出API。
上图显示了Pascal Analyzer应用程序的一些示例调试输出。
正如您在屏幕截图中看到的那样,消息的前缀是时间戳和进程ID。阅读有关DebugView的更多信息并在此处下载。
原文地址:https://www.peganza.com/delphi-and-outputdebugstring.html
Delphi和OutputDebugString的更多相关文章
- delphi使用outputdebugstring调试程序和写系统日志
delphi使用outputdebugstring调试程序和写系统日志 procedure TForm1.btn1Click(Sender: TObject); begin OutputDebugSt ...
- delphi 中OutputDebugString 函数的妙用(转载)
原文地址 https://www.peganza.com/delphi-and-outputdebugstring.html Ever wanted to monitor your Delphi ap ...
- delphi 中OutputDebugString 函数的妙用(使用DebugView或者Pascal Analyzer软件,在运行过程中就能监视和捕捉日志,而且通过网络就能监视)
原文地址 https://www.peganza.com/delphi-and-outputdebugstring.html 曾经想要实时监控您的Delphi应用程序,并能够查看日志消息吗?当然,您始 ...
- Delphi RAD Berlin OutputDebugString 输出调试信息
Delphi RAD Berlin Event Log.OutputDebugString 输出调试信息,仅在win VCL下可以用.OutputDebugString(PChar('hellowor ...
- Delphi 调用C# DLL(包含委托)
例子 C# Dll: using System; using System.Collections.Generic; using System.Text; using System.Diagnosti ...
- delphi一些小技巧 从别处看到
开发环境-------- Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件.安装好Delphi ...
- 用Delphi创建服务程序
用Delphi创建服务程序 日期:2005年11月29日 作者:sunmohe 人气: 3154 查看:[大字体 中字体 小字体] Windows 2000/XP和2003等支持一种叫做"服 ...
- DELPHI下API简述(1800个API)
DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...
- (转载)Delphi开发经验谈
Delphi开发经验谈 开发环境-------- Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件. ...
随机推荐
- CentOS7.3环境下源码安装httpd
CentOS7.3环境下源码安装httpd 本文在CentOS7.3下,源码安装apache服务httpd2.4. 1.下载好源码安装包 [root@localhost ~]#ll total 625 ...
- J - Jesus Is Here HDU - 5459 (递推)
大意: 定义$f_1="c",f_2="ff",f_n=f_{n-2}+f_{n-1}$, 求所有"cff"的间距和. 记录c的个数, 总长 ...
- 更改 Windows 软件默认安装位置教程
在打开的“运行”窗口中,输入命令regedit,然后点击确定按钮 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 百度 ...
- Mysql优化系列--Innodb引擎下mysql自身配置优化-转
原文链接:http://www.cnblogs.com/kevingrace/p/6133818.html 谢谢楼主 1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全 ...
- Oracle11g温习-第十二章:tables
2013年4月27日 星期六 10:44 1.表的功能 存储.管理数据的基本单元(二维表:由行和列组成) 2.表的类型 1)普通表:[heap table(堆表) :数据存储时,无序的,对它的访问采 ...
- [已解决]Can't update: no tracked branch
报错:Can't update: no tracked branch 我们之前的分支是drome,然后删除了这个分支,换到了另一个分支上面去了,所以出现了这个问题. 解决办法: 0:点击VCS-> ...
- Convex Fence
Convex Fence I have a land consisting of n trees. Since the trees are favorites to cows, I have a bi ...
- MySQL查询性能调优化
一.索引的概念 索引:类似于字典的目录,设置索引可以 加速数据查找,对数据进行约束: 二.索引类型: 主键索引:保证数据唯一性,不能重复+不能为空 普通索引:加速数据查找 唯一索引:加速查找+不能重复 ...
- PHP如何自定义PHP内置函数
其实对于PHP程序员,有个纯PHP的解决方案.在php.ini里有个配置项 auto_prepend_file,可以设置一个PHP文件作为每次执行前自动加载的文件. 在这个文件里写函数,你就可以当成定 ...
- Qt Widgets——抽象滑块及其继承类
三个可视类的默认外观分别如下(win7):它们的滑块都处于最小值0处. 理解QAbstractSlider时 可将它想成就是QScrollBar(该小部件的外观比较多地拥有QAbstractSlide ...