Winapi 将数组从本机代码发送到托管代码的最佳实践(C+;+;/CLI)?
我正在为读/写USB HID设备编写win32 dll。exchange的数据是一个64字节无符号字符数组。客户端程序是用C++/CLI编写的 为了实现最大的速度和最小的开销,我需要一种有效的方法将阵列发送到托管客户端 我现在可以想到两个选择:Winapi 将数组从本机代码发送到托管代码的最佳实践(C+;+;/CLI)?,winapi,c++-cli,marshalling,unmanaged,managed-c++,Winapi,C++ Cli,Marshalling,Unmanaged,Managed C++,我正在为读/写USB HID设备编写win32 dll。exchange的数据是一个64字节无符号字符数组。客户端程序是用C++/CLI编写的 为了实现最大的速度和最小的开销,我需要一种有效的方法将阵列发送到托管客户端 我现在可以想到两个选择: 本机:使用PostMessage并发送数组指针。 托管:在WndProc中,封送。将指针复制到新的托管字节数组,然后删除指针 本机:使用函数指针作为回调来处理数据。 托管:使用Marshal.GetFunctionPointerForDelegate将函
托管:在WndProc中,封送。将指针复制到新的托管字节数组,然后删除指针
托管:使用Marshal.GetFunctionPointerForDelegate将函数指针传递到本机世界
谢谢。我想说,选择奇怪的编组方式是过早的优化。使用最简单的方法封送数据,并尝试评估其他方法,如果这不能令人满意地执行。除非体系结构需要回调或消息发布,为什么不将数组传递给函数?C++/CLI可以读取非托管数组,无需封送处理。