WindowsAPI関連

一般

Dependncy Walker

DLLの関数一覧を得る

DLLの関数差し替え

DLLの共有セグメント(C++)

DLL のソースコードに

#pragma comment(linker,"/section:SHARED,rws")
#pragma data_seg("SHARED")
  HWND  hwndOwner = 0;
  HHOOK hhk = 0;
#pragma data_seg()

のように記述。

#pragma data_seg は、#pragma data_seg で括られた区間がデータセグメントであること、セクション名が "SHARED" であることを示し

#pragma comment ディレクティブは、リンカに対する指示で、"SHARED" と名前付けられたセクションが「読み書き可能、共有」の属性を持つことを指定

この2つの記述により、変数 hwndOwner と hhk は、この DLL をロードしたプロセス間で共有される。

なお、共有する変数は

HWND hwndOwner = 0;

のように必ず初期化すること。 これを忘れると、変数が共有されません。


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-10-07 (土) 15:24:39