こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

未サポートAPIを使用した時のエラー処理

最低サポートバージョンがWindows VistaのWindowsAPIを使用したアプリケーションを、Windows XPなどの最低サポートバージョン以下のWindowsで実行した場合、対象のAPIがDLL内にないことを示すエラーメッセージダイアログボックスを出力して、異常終了します。
本来は、最低サポートバージョンのWindowsでアプリケーションを実行した場合、対象のAPIが実行される処理を通った時だけ、独自のエラー処理を実行したいのですが、このようなことは不可能なのでしょうか?

<開発環境>
・Visual Studio 2008
・VC6.0
・コンソールアプリケーションとして作成

投稿日時 - 2014-02-21 02:11:08

QNo.8483955

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Wr5

>最低サポートバージョンのWindowsでアプリケーションを実行した場合、対象のAPIが実行される処理を通った時だけ、独自のエラー処理を実行したいのですが、このようなことは不可能なのでしょうか?

LoadLibrary()でdllを読み込ませて、GetProcAddress()でAPIのアドレスを取得できます。
それぞれでエラー処理できるはずです。
XPで実行したときにVista以降にしかないdllならLoadLibrary()でエラーになりますし、APIが無ければGetProcAddress()でエラーになります。
検索してみるとそういう処理の仕方を解説しているページは見つかるかと。

APIの中身が無い(何もせずに戻ってくるだけ)という場合もありますが。

投稿日時 - 2014-02-21 03:55:35

あなたにオススメの質問