誕生日にもらった意外なもの

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

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

A 回答 (1件)

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



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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!