ホームページ > バックエンド開発 > C#.Net チュートリアル > C# での FormatMessage API の呼び出しに関する詳細な紹介

C# での FormatMessage API の呼び出しに関する詳細な紹介

黄舟
リリース: 2017-03-15 10:10:04
オリジナル
1788 人が閲覧しました

FormatMessage は WINDOWS が提供する API で、Windows API を呼び出した際に返されるエラーコードに対応するテキスト情報を取得するために使用されます。以前は VB で使用されていましたが、 では使用されていませんでした。 C#、主に、C# で Windows API を呼び出すいくつかのルールについてあまり知りません。 +最近、VC ++ Win32 用の携帯電話プログラムの開発に非常に興味があります。当然、C++ を使用する必要があるため、このメソッドを C# で呼び出します。 C++ で直接使用してみてはいかがでしょうか?携帯電話での

デバッグ

は少し面倒なので、コードをあまり書きたくないのですが、それでも C# の方がはるかに便利で高速です。

これは C# での FormatMessage API のプロトタイプと定義です。2 番目と最後のパラメーターは使用されないため、int の場合は呼び出し時に 0 または IntPtr を渡し、次に IntPtr を渡します。 。ゼロ。 L さらに厄介なのは、返されたテキスト情報を受け取るために使用される LPBUFFER パラメーターです。VB では、このタイプのパラメーターは byval 文字列として定義され、スペース (長さ) を使用して初期化されます (

文字列

の初期化)。

文字列

を長さを指定するスペースに初期化する)、呼び出すときに nSize の長さの値を指定するだけです。 C# では、パラメーターは String LPBuffer として定義されます。呼び出し時:

は戻り値を通じて

関数

が正常に呼び出されたことを知ることができますが、LPBuffer の値はわかりません。変更されました。

ref と out に変更しようとしましたが、機能しません。out は関数呼び出しが失敗したことを意味します。 出力パラメーターを文字列として定義しませんでした。最後に、StringBuilder に変更し、[OUT]

属性

変更を使用します。呼び出し時:

   StringBuilder lpBuffer=new StringBuilder(260);    //声明StringBuilder的初始大小
        int count=FormatMessage(dwFlags,IntPtr.Zero,1439,0,lpBuffer,260,IntPtr.Zero);
ログイン後にコピー
E

成功!

以上がC# での FormatMessage API の呼び出しに関する詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート