c# - 将 IntPtr 转换为对象 C#

标签 c# c++ wpf type-conversion intptr

从我的遗留应用程序(在单独的进程下运行)我在这样的对象中发送双值

#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 是指向另一个进程中的内存的指针,您不能像那样共享内存。您需要使用 Inter process communication 中的任何一个 技术。看看Wm_CopyData .

关于c# - 将 IntPtr 转换为对象 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311549/

相关文章:

c# - WPF 将 ObservableCollection 绑定(bind)到 UserControl 的意外行为

wpf - Prism.Wpf 中是否未实现 ValidatableBindableBase?为什么?

带有加号的 c# URL 未通过自定义 HttpModule 运行

c++ - 如何使静态导入库依赖于CMake中的另一个静态导入库?

C++:创建结构的二维数组

c++ - STL 和 Hana 元组之间的转换

wpf - MC3074 - "clr-namespace..."中不存在类型

c# - 当 dataGridView 行匹配文本框时显示错误消息

c# - 情态形式消失之谜

c# - 将按钮可见性绑定(bind)到表达式 (C#)