※ ChatGPTを利用し、要約された質問です(原文:作ったDLLで一般保護エラーがでます。)
一般保護エラーが発生する問題への対処方法
このQ&Aのポイント
一般保護エラーが発生するDLLを使用している際に発生するエラーの対処方法について。
エラーメッセージや未保存のデータが表示される際に一般保護エラーが発生する。
ファイル操作時やキーボード操作時に一般保護エラーが発生する場合がある。
SetWindowsHookExを使って非アクティブになっているアプリケーションを
キーボードによる操作できるDLLを作ったのですが、
時々DLLが一般保護エラーを起こします。
しかも常に一般保護エラーが起きるわけで無く、起きない時もあります。
発生条件は全くの不明なのです。
一般保護エラーが起きる状態の時は以下の操作をすると起きます。
1:エラーメッセージやエディタで未保存のデータの時に出てくる
ダイアログボックスが表示された時。
2:エクスプローラーをアクティブにしてキーボードを押すことによって
押したキーの文字をファイル名の頭文字とするファイルへのショートカットをする際、
押したキーの文字を頭文字とするファイルが無い時
の2点が分かっています。
プログラムの概要は次のとうりです。
1:WINDOWSキー+F9~12で操作をする。
2:特定関数をアプリケーション側でタイマコントロールによる監視をし、キーボード操作の識別を行う。
3:キー識別のためにグローバル変数を使用している。
4:操作に必要なキー以外が押されていれば-1を返す。
5:DLLはBorland C++で作成し、アプリケーションはBorland C++Builder 5で作成。
です。
ソースは字数制限の関係で書けませんでした。
お礼
元にしたサンプルがWINキーを無効化すると言うものだったのでそれが良くなかったのかもしれません。 キー無効化はDLL内だけで出来ますけど、キー操作はDLL内だけでは出来ませんから。 教えてくれたサイトのサンプルを元にいろいろやってみます。 分かりにくい説明に付き合ってくれてありがとうございました。