小智 31
在Windows中,输出调试信息的最简单方法是使用OutputDebugString()
然后使用能够接收该输出的应用程序.在Delphi IDE本身的事件查看器是能够接收输入,或者你可以使用的DebugView从应用程序的Sysinternals到有没有安装IDE的系统上获取输出.AFAIK,GExperts也有类似的工具.那是因为GUI应用程序默认情况下没有控制台在哪里写输出,否则你必须创建一个(参见Gerry的答案).
其中一个OutputDebugString()
优点是,即使调用进入发布版本(或者如果故意留在那里),应用程序也可以正常工作,但是要注意不要输出敏感信息,因为可以使用其中一个来读取它们.上面的工具.
您还可以创建一个临时表单(即备忘录控件)并在那里路由输出.
还有SmartInspect,CodeSite等先进的日志记录工具.
Ger*_*oll 29
最简单的方法是编译为控制台应用程序,但将正常的应用程序框架代码放回到dpr中.
program Project2;
{$APPTYPE CONSOLE}
uses
Forms,
SysUtils,
Unit1 in 'Unit1.pas' {Form1};
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
writeln('Hello, World!');
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
稍微复杂一点的方法是使用Windows API AllocConsole调用:
program Project2;
uses
Forms,
SysUtils,
Windows,
Unit1 in 'Unit1.pas' {Form1};
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
AllocConsole;
writeln('Hello, World!');
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
如果从命令行调用,此方法(通常)具有创建新控制台的缺点.从内存获取重定向到工作需要更多的代码.的好处是,你可以决定在运行时分配的控制台,而不是编译时间.
Ser*_*yuz 10
Delphi有一个选项,在项目的链接器选项中选中"Generate console application".标准I/O将被定向到一个控制台窗口,该窗口将伴随您的GUI应用程序.然后你可以Writeln
像往常一样使用等.
如果Delphi程序作为控制台应用程序链接,则它们具有标准输出文件.
归档时间: |
|
查看次数: |
38295 次 |
最近记录: |