0

この変換を行う主な目的は、メモリ アドレスに基づいて C# でオブジェクトを作成することです。もしそうなら、これを行うためのより良い方法はありますか?

このようなもの:

int app_handle = 920663024; // corresponds to memory location 0x36E033F0
string app_handle_converted_to_hex = decValue.ToString("X");
MyAppClass *newApp = (MyAppClass *)app_handle_converted_to_hex;

また、ポインターを使用せずにこれを行うことはまったく可能ですか?

4

2 に答える 2

0

アプリケーションの既存のコードに基づいてそれを理解することができました (言及してくれた Romoku に感謝しますMarshal) 。

私の完成したコードは次のようになります。

int handle = 920663024; // integer pointer corresponding to memory location 0x36E033F0
IntPtr app_handle = helper.GetAppPtr(handle) // gets IntPtr based off of handle
object obj = Marshal.GetObjectForIUnknown(app_handle);
MyAppClass newApp = obj as MyAppClass;

魔法のように動作します!

于 2013-04-12T17:26:18.847 に答える