DllImportAttribute.SetLastError フィールド
属性付きメソッドから戻る前に、呼び出し先が SetLastError Win32 API 関数を呼び出すかどうかを示します。
Public SetLastError As Boolean
[C#]
public bool SetLastError;
[C++]
public: bool SetLastError;
[JScript]
public var SetLastError : Boolean;
解説
呼び出し先が SetLastError を呼び出すことを示す場合は true 。それ以外の場合は false 。既定値は false です (Visual Basic を除く)。
ランタイム マーシャラは GetLastError を呼び出し、返された値をキャッシュに格納して、他の API 呼び出しによる上書きを防止します。 GetLastWin32Error を呼び出して、エラー コードを取得できます。
使用例
[Visual Basic, C#, C++] 場合によっては、Visual Basic の開発者は、マネージ コードで DLL 関数を定義する際、 Declare ステートメントを使用する代わりに、 DllImportAttribute を使用します。 SetLastError フィールドの設定は、このような事例の 1 つです。
Imports System.Runtime.InteropServices
Public Class Win32
<DllImport ("user32.dll", SetLastError := False)> _
Public Shared Function MessageBoxA (ByVal hWnd As Integer, _
ByVal txt As String, ByVal caption As String, _
ByVal Typ As Integer) As Integer
End Function
End Class
[C#]
using System.Runtime.InteropServices;
public class Win32 {
[DllImport("user32.dll", SetLastError=true)]
public static extern int MessageBoxA(int hWnd, String text,
String caption, uint type);
}
[C++]
using namespace System::Runtime::InteropServices;
typedef void* HWND;
[DllImport("user32", SetLastError=true)]
extern "C" int MessageBoxA(HWND hWnd,
String* pText,
String* pCaption,
unsigned int uType);
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
DllImportAttribute クラス | DllImportAttribute メンバ | System.Runtime.InteropServices 名前空間 | GetLastWin32Error