-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.Interoperability.GetLastErrorMustBeCalledRightAfterPInvokeRule(git)
Sebastien Pouliot edited this page Mar 2, 2011
·
1 revision
Assembly: Gendarme.Rules.Interoperability
Version: git
This rule will fire if Marshal.GetLastWin32Error() is called, but is not called immediately after a P/Invoke. This is a problem because other methods, even managed methods, may overwrite the error code.
Bad example:
public void DestroyError ()
{
MessageBeep (2);
Console.WriteLine ("Beep");
int error = Marshal.GetLastWin32Error ();
}
Good example:
public void GetError ()
{
MessageBeep (2);
int error = Marshal.GetLastWin32Error ();
Console.WriteLine ("Beep");
}
public void DontUseGetLastError ()
{
MessageBeep (2);
Console.WriteLine ("Beep");
}
You can browse the latest source code of this rule on github.com
Note that this page was autogenerated (3/17/2011 1:55:44 PM) based on the xmldoc
comments inside the rules source code and cannot be edited from this wiki.
Please report any documentation errors, typos or suggestions to the
Gendarme Mailing List. Thanks!