作ったDLLで一般保護エラーがでます。
SetWindowsHookExを使って非アクティブになっているアプリケーションを
キーボードによる操作できるDLLを作ったのですが、
時々DLLが一般保護エラーを起こします。
しかも常に一般保護エラーが起きるわけで無く、起きない時もあります。
発生条件は全くの不明なのです。
一般保護エラーが起きる状態の時は以下の操作をすると起きます。
1:エラーメッセージやエディタで未保存のデータの時に出てくる
ダイアログボックスが表示された時。
2:エクスプローラーをアクティブにしてキーボードを押すことによって
押したキーの文字をファイル名の頭文字とするファイルへのショートカットをする際、
押したキーの文字を頭文字とするファイルが無い時
の2点が分かっています。
プログラムの概要は次のとうりです。
1:WINDOWSキー+F9~12で操作をする。
2:特定関数をアプリケーション側でタイマコントロールによる監視をし、キーボード操作の識別を行う。
3:キー識別のためにグローバル変数を使用している。
4:操作に必要なキー以外が押されていれば-1を返す。
5:DLLはBorland C++で作成し、アプリケーションはBorland C++Builder 5で作成。
です。
ソースは字数制限の関係で書けませんでした。