掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
プロセスのベースアドレスの取得のしかた (ID:49075)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAY様、ありがとうございます。 >[VCL で未定義の Windows API 関数の使用 - DLL の使用方法] 非常に勉強になります。Mr.XRAY様のサンプルプロジェクトでも出てくるinterface部の関数の定義の意味が 理解できました。サンプルを参考にして、関数の定義を以下の通り追加し、EnumProcessModulesExは 動作する様になりました。 function EnumProcessModulesEx(hProcess: Cardinal; lphModule: PDWORD;cb: Cardinal; var lpcbNeeded: Cardinal): pointer; stdcall; external 'PsAPI.dll'; >EnumProcessModulesEx 関数本来の機能を使用するには,64 ビットの Kernel32.dll 内の関数を使用する必要があります. ということは、追加した定義で動作はするものの、本来の機能は使用できていないのですね。 >一般的に 32 ビットの EXE からは 64 ビットの DLL は使用てきません.その逆も同じです. 更に私が作成しているのが32ビットのEXEなので、それをするためには、DLLの相互運用が必要なのですね。 ただ、メモ帳で試したところ、正常に動いていないのは32ビット版の方なので、Mr.XRAY様のご指摘にもある様に、 これは問題の解決にならないのですね。 64ビット版のメモ帳に関しては、一応ベースアドレスらしいものを返しているので、ロジック的な間違いではなさそうですが、 何が間違っているのでしょうか…
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.