VC++6.0のMFCをXPで使用しているものです。
自作したHookdll.dllのChookクラスのメンバ変数であるPOINT 構造体のmPointを
void button1(・・・){
int x,y;
x=mPoint.x;
y=mPoint.y;
}
としてbutton1関数で宣言したx,yに渡したいのですが、結果がx=0;y=0;
になってしまいます。
何かdllで取得した値を別クラス内の変数に渡す際に気を付けなければならないことが
あるのでしょうか?
ご教授お願いします。
具体的に何をどう実装したのか、提示内容からだとまったくわからないので答えようがない。
正しくアクセスできていて、でもまだ変数に値が入っていないだけかもしれないし
正しくアクセスできなくて間違った値を拾っているのかもしれないし
あるい DLL 内変数を見ているつもりが EXE 内にて同一名変数が作られているだけかもしれない。
通常 DLL の場合 [大域変数を直接エクスポートする] ことはできない。
・間接的にアクセスするか
・間接アクセスしていることをソース上意識しないですむようにするよう
コンパイラ側サポートを利用するか
どちらかを実施しなきゃならない
http://support.microsoft.com/kb/90530/ja
ゲッターを定義したらいいんじゃないですか
int Chook::getPointx( void ) {
return mPoint.x;
}
int Chook::getPointy( void ) {
return mPoint.y;
}
--------------
void button1(・・・) {
int x,y;
x = getPointx();
y = getPointy();
}
どうも共有データというのを使えばできるのが分かりました。
どうもご教授ありがとうございました。