【发布时间】:2010-10-04 10:35:46
【问题描述】:
我正在编写一个用于读/写 USB HID 设备的 win32 dll。用于交换的数据是一个 64 字节的无符号字符数组。客户端程序是用 C++/CLI 编写的。
为了实现最大速度和最小开销,我需要一种将阵列发送到托管客户端的有效方法。
我现在能想到的有两种选择:
Native:使用 PostMessage 并发送数组的指针。
托管:在 WndProc 中,Marshal。将指针复制到一个新的托管 Byte 数组,然后删除该指针。Native:使用函数指针作为回调来处理数据。
托管:使用 Marshal.GetFunctionPointerForDelegate 将函数指针传递给原生世界。
谢谢。
【问题讨论】:
-
C++/CLI 可以读取非托管数组,不需要封送处理。
标签: winapi c++-cli marshalling unmanaged managed-c++