dllの変数を取得するには?

解決


r2dkyue  2010-11-27 22:34:36  No: 72088  IP: 192.*.*.*

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で取得した値を別クラス内の変数に渡す際に気を付けなければならないことが
あるのでしょうか?
ご教授お願いします。

編集 削除
tetrapod  2010-11-29 09:31:42  No: 72089  IP: 192.*.*.*

具体的に何をどう実装したのか、提示内容からだとまったくわからないので答えようがない。

正しくアクセスできていて、でもまだ変数に値が入っていないだけかもしれないし
正しくアクセスできなくて間違った値を拾っているのかもしれないし
あるい DLL 内変数を見ているつもりが EXE 内にて同一名変数が作られているだけかもしれない。

通常 DLL の場合 [大域変数を直接エクスポートする] ことはできない。
・間接的にアクセスするか
・間接アクセスしていることをソース上意識しないですむようにするよう
  コンパイラ側サポートを利用するか
どちらかを実施しなきゃならない
http://support.microsoft.com/kb/90530/ja

編集 削除
ダメちゃ  URL  2010-11-29 18:16:43  No: 72090  IP: 192.*.*.*

ゲッターを定義したらいいんじゃないですか

int Chook::getPointx( void ) {
  return mPoint.x;
}

int Chook::getPointy( void ) {
  return mPoint.y;
}

--------------
void button1(・・・) {
  int x,y;
  x = getPointx();
  y = getPointy();
}

編集 削除
r2dkyue  2010-12-21 22:46:38  No: 72091  IP: 192.*.*.*

どうも共有データというのを使えばできるのが分かりました。
どうもご教授ありがとうございました。

編集 削除