delphi使用outputdebugstring调试程序和写系统日志

procedure TForm1.btn1Click(Sender: TObject);
begin
  OutputDebugString(‘dddddd‘);
  OutputDebugString(‘11‘);
end;

procedure TForm1.btn2Click(Sender: TObject);
var
  EvtSrcHand: THandle;
  EvtMsg: String;
p:Pointer;
i:integer;
size:integer;
q:^byte;
begin
//注册事件源,随便起了个名字。这个名字就是下图事件列表的’来源’一列
//然后判断是否成功。
//注意后面要注销
EvtSrcHand := RegisterEventSource(nil, ‘测试程序‘);
if EvtSrcHand = 0 then
begin
ShowMessage(‘注册事件源失败!‘);
Exit;
end;

//这里记录一个字符串
//这个字符串显示在下面第二个图选中的位置。
EvtMsg := ‘记录字符串‘;
ReportEvent(EvtSrcHand,EVENTLOG_INFORMATION_TYPE,0, 0, nil, 1, 0, @EvtMsg, nil);

//这里记录一块内存,size大小
size:=32;
//申请
GetMem(p, size);
q := p;

//填充这块内存
for i := 0 to size - 1 do
begin
q^ := i;
inc(q);
end;

//这里记录内存的内容。大小为size, 首字节的指针p
//同样也有说明信息msg
EvtMsg := ‘记录某块内存‘;
ReportEvent(EvtSrcHand,EVENTLOG_INFORMATION_TYPE , 0, 0, nil, 1, size, @EvtMsg, p);
FreeMem(p);
//注销事件源
DeregisterEventSource(EvtSrcHand);
end;

end.

delphi使用outputdebugstring调试程序和写系统日志

时间: 2024-11-03 05:29:04

delphi使用outputdebugstring调试程序和写系统日志的相关文章

Delphi和OutputDebugString

曾经想要实时监控您的Delphi应用程序,并能够查看日志消息吗?当然,您始终可以在RAD Studio IDE中以完全调试模式运行.另一种方法是输出日志消息,例如输出到文本文件.您还可以使用OutputDebugString函数. 这种方法的一个优点是它尽可能少地影响您的应用程序.您不必关心文件处理.只需调用一个函数. OutputDebugString函数在Win32 API中的RTL单元Winapi.Windows中定义. 你只需从你的代码中调用它,如下所示: .. uses Winapi.

Delphi文件操作-读文件-写文件-操作文件

原文来自: 100脚本网 本例子几个变量的说明TFileRec = record //记录定义Day : Integer;... //其他定义end;f : File of TFileRec;  //标准的输入/输出文件FilRec : TFileRec;    //记录数据FileName ;             //记录文件的名称关于记录文件的相关操作(1)记录文件的打开 (2)记录文件的读入和显示(3)记录的增加(4)记录的删除(5)记录的修改(6)记录文件的删除 1.记录文件的打开需

终于懂了:FWinControls子控件的显示是由Windows来管理,而不是由Delphi来管理

在研究TCustomControl的显示过程中,怎么样都找不到刷新FWinControls并重新显示的代码: procedure TWinControl.PaintHandler(var Message: TWMPaint); var I, Clip, SaveIndex: Integer; DC: HDC; PS: TPaintStruct; begin DC := Message.DC; if DC = 0 then DC := BeginPaint(Handle, PS); try if

第三章 传奇的开始--Delphi(附读书笔记)

第三章 传奇的开始--Delphi "是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的Borland!" "是Turbo Pascal诞生了Borland,但却是Object Pascal给予了Borland重生的机会!" 创造传奇故事的主角--Delphi 没有人会知道在两年后Borland C/C++会遭遇到这么大的失败,也没有人会预料到Borland又会再次因为Pascal而东山再起.Borland奋斗史精彩的地方就在

串口通讯的代码 。是别人写的 我加了些注释。

// Communication.h: interface for the CCommunication class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_COMMUNICATION_H__6CA00576_F088_11D1_89BB_8311A0F2733D__INCLUDED_) #define AFX_COMMUNICATION_H__6CA0

Java中调用Delphi编写的DLL

有些时候,要写一些程序,在 JAVA 里面好难实现, 但如果使用其它编程语言却又比较容易时,我们不妨通过 JNI 来让不同语言的程序共同完成. JNI 的教程, 网上 C 的比较多,Java 也提供了 javah.exe 为 C 语言的 JNI 程序生成头文件, 如果你是一个 Delphi 编程员, 能否让 JAVA 与 Delphi 程序交互呢? 答案是肯定的,今天我们就来看一下一个简单的例子. Helloworld. 主要是来认识一下, JAVA 怎样调用 Delphi 程序的方法. 好的,

OD 实验(十二) - 对一个 Delphi 程序的逆向

程序: 运行程序 界面显示的是未注册 点击 Help -> About 点击 Use Reg Key 这里输入注册码 用 PEiD 看一下 该程序是用 Delphi 6.0 - 7.0 写的 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本字串 然后右键 -> 查找文本 搜索 这里有个是 accepted 为接受,failed 为失败 双击 accepted 处 在 Delphi 中,push 后的 retn 指令相当于 jmp 指令 原文地址:https://ww

Delphi之萝莉调教篇

本文纯属技术交流.如果各位看官想与小生一起探讨萝莉的问题的话...PM我吧 关于Delphi的萝莉调教技术,很久以前就有大牛做过了...其实技术早掌握了只是觉得太无聊~估计大家也都会于是就没有写~既然群里有人提出~就留下一份记录以前我很傻很天真.主要原因是也因为很懒.正值新春之际全当写出来给各位献礼了.给大家拜个晚年由于本文作者水平问题,有说的不对或者不明确的地方请大家海涵.菜鸟之作高手跳过... Q:为啥不用Delphi?A:体积太大Q:为啥用Delphi?A:很方便 体积问题一直都是Delp

visual_c++外挂教程(详细)

课程分四个大章节 初级篇,中级篇,进阶篇,高级篇 初级篇内容:编写一个完整的,简单的外挂 C++的数据类型:Byte,Word,DWORD,int,float API函数的调mouse_event,GetWindowRect,SetCursorPos,FindWindow,SendMessage) CE5.4工具的使用方法 中级篇内容:调试工具的使用技巧,功能CALL的概念 调试工具OD1.1的使用技巧(如硬件断点,条件断点,内存断点. 常用汇编指令与对应高级语言的转换. 游戏功能CALL概念