ホームページ > バックエンド開発 > C++ > アンマネージ ライブラリを操作するときに C# でネイティブ例外をキャッチして処理するにはどうすればよいですか?

アンマネージ ライブラリを操作するときに C# でネイティブ例外をキャッチして処理するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-01 10:23:11
オリジナル
286 人が閲覧しました

How Can I Catch and Handle Native Exceptions in C# When Interacting with Unmanaged Libraries?

C# コードでのネイティブ例外の処理

アンマネージ例外をキャッチすることは可能ですか?

アンマネージ ライブラリを呼び出すと、ネイティブ例外が発生する可能性があります。これらの例外は基になるコードから発生し、.NET Framework によってスローされる例外とは異なります。

ネイティブ例外のキャッチ

Win32Exception クラスを使用すると、実際に C# コードでネイティブ例外をキャッチできます。このクラスは、NativeErrorCode プロパティを介してネイティブ エラー コードなど、例外に関する追加情報を提供します。

ネイティブ例外の処理

ネイティブ例外を効果的に処理するには、try...catch ブロックを使用できます。次のとおりです:

const int ERROR_FILE_NOT_FOUND = 2;
const int ERROR_ACCESS_DENIED = 5;
const int ERROR_NO_APP_ASSOCIATED = 1155;

void OpenFile(string filePath)
{
    Process process = new Process();

    try
    {
        // Attempt to open the file using a native application
        process.StartInfo.FileName = filePath;
        process.StartInfo.Verb = "Open";
        process.StartInfo.CreateNoWindow = true;
        process.Start();
    }
    catch (Win32Exception e)
    {
        // Handle specific native error codes
        switch (e.NativeErrorCode)
        {
            case ERROR_FILE_NOT_FOUND:
            case ERROR_ACCESS_DENIED:
            case ERROR_NO_APP_ASSOCIATED:
                MessageBox.Show(this, e.Message, "Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation);
                break;
        }
    }
}
ログイン後にコピー

この例では、ファイルを開こうとしたときに一般的なネイティブ エラー コードを処理し、適切なエラー メッセージをファイルに表示します。 user.

Notes

包括的な例外処理については、使用している特定のアンマネージ ライブラリのドキュメントを参照して、発生する可能性のある潜在的なネイティブ エラーを判断することが重要です。

以上がアンマネージ ライブラリを操作するときに C# でネイティブ例外をキャッチして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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