首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Delphi中GetLastError和FormatMessage的正确用法是什么?

在Delphi中,GetLastErrorFormatMessage是用于获取和格式化错误消息的两个重要函数。以下是它们的正确用法:

  1. GetLastError

GetLastError函数用于获取当前线程的错误代码。当一个Windows API函数调用失败时,可以使用GetLastError函数来获取错误代码。错误代码是一个整数值,表示发生的错误类型。

代码语言:delphi
复制
function GetLastError: DWORD; stdcall;
  1. FormatMessage

FormatMessage函数用于将错误代码转换为可读的错误消息。它接受一个错误代码作为输入,并返回一个包含错误消息的字符串。

代码语言:delphi
复制
function FormatMessage(dwFlags: DWORD; lpSource: LPCVOID; dwMessageId: DWORD; dwLanguageId: DWORD; lpBuffer: LPVOID; nSize: DWORD; Arguments: Pointer): DWORD; stdcall;

正确用法示例:

代码语言:delphi
复制
uses
  Windows, SysUtils;

function GetLastErrorMessage: string;
var
  dwError: DWORD;
  sMessage: array[0..255] of Char;
begin
  dwError := GetLastError;
  if FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS or FORMAT_MESSAGE_MAX_WIDTH_MASK or FORMAT_MESSAGE_ARGUMENT_ARRAY, nil, dwError, 0, @sMessage, SizeOf(sMessage), nil) <> 0 then
    Result := sMessage
  else
    Result := 'Unknown error';
end;

在这个示例中,GetLastErrorMessage函数首先调用GetLastError函数获取错误代码,然后使用FormatMessage函数将错误代码转换为可读的错误消息。最后,函数返回错误消息字符串。

注意:在使用GetLastErrorFormatMessage函数时,需要确保在调用它们之前已经调用过Windows API函数,并且该函数的返回值表示失败。如果没有调用Windows API函数或函数调用成功,GetLastError函数将返回错误代码0,这时不应该调用FormatMessage函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券