将 IntPtr 转换为对象 C#
Convert IntPtr to an object C#
从我的旧版应用程序(在单独的进程下运行)我在这样的对象中发送双精度值
#define MYMESSAGECODE (WM_APP + 123 )
typedef struct
{
float f;
double d;
} MyDataStruct;
MyDataStruct data;
data.f = 1.0;
data.d = 2.0;
pWpfWnd->SendMessage( MYMESSAGECODE, 0, (LPARAM) &data );
这是在 WndProc 中通过单独的进程接收的,如下所示
private IntPtr WndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
switch (msg)
{
case GA_SLOT_COORDINATES:
// Need solution here to convert lParam to MyDataStruct
}
return IntPtr.Zero;
}
我想将 lParam 中从旧应用程序传递的数据转换为在不同进程下运行的 .Net 应用程序中的同一对象。我怎样才能做到这一点?谢谢!!
如果你在进程内Marshal.PtrToStructure
会帮助你。
似乎您正在尝试在整个过程中执行此操作,这是不可能的。你的LParam
是另一个进程中内存的指针,你不能像那样共享内存。您需要使用任何进程间通信技术。看看Wm_CopyData。
相关文章:
- 在 C++ 中将对象转换为派生类型
- Swig无法将python3的字节对象转换为std::string
- 如何将 Python 对象转换为 Cython 扩展类型的 std::vector 并返回?
- 使用 c++ 将 2d CAD 对象转换为 TIFF 格式
- 将对象转换为指向对象的指针?
- 将使用基类 Ctor创建的对象转换为派生类
- C++中的重载歧义,用于自动将对象转换为"printable"格式
- 无法将类对象转换为函数默认参数中的参考
- 无法将对象转换为初始化中的对象*
- 使用提升序列化将类对象转换为矢量无符号字符<>
- 防止在执行时将两个类中的两个对象转换为 bool:if(a!=b)
- 如何在Cython中将Python对象转换为C++类型
- 重载运算符 -- 无法在赋值中将对象转换为基类型
- Cpp:Cpp中的JSON解析器,提供支持序列化/反序列化功能,将JSON对象转换为用户定义的类
- 如何将 'int *' 类型的 swig 对象转换为 ctypes int*
- 将对象转换为 char,然后"uncasting it back"
- 如何在C++中使用boost库将类对象转换为json字符串
- 在 c++ 中使用重载运算符将父对象转换为子对象
- 字符串流 - 将对象转换为字符串
- 将Mat对象转换为双arr(OpenCV)