我在C#中将多个COM对象实现为本地COM服务器。我的客户是用C++编写的。这次我使用COM对象(C#类)将数据从C++传递到C#,并且工作正常。我只是想,如果这些COM对象只是“数据持有者”,使用C#结构来保存数据会更有效率吗?使用C#结构体将数据从C#COM对象传递到C++
0
A
回答
1
一般不会,特别是来自C#。这取决于您是否编写了正确的 C++代码。结构是一个互操作问题,打包和对齐规则是一个实现细节,很容易让你陷入困境。乘以这个结构成员被封送的变幻莫测的变化,类型有3种常见的方式来封送。字符串和数组从来都不是问题。
编写正确的C++代码需要使用IRecordInfo interface,它使用类型库中的结构定义来知道如何正确编组结构成员。您必须为结构中的每个字段执行此操作。
当您使用进程内COM服务器时,这不会比调用字段的属性getter更快。唯一一种在C#中很容易创建的类型。
您可以忽略此要求,并希望您的C++声明与C#声明匹配。这可能会起作用。但是,通常只有在编组信息的成本太高时才应该这样做。只有当属性获取者的往返行程太高时,通常情况下,对于转换公寓边界的呼叫。就像它对于一个进程外服务器一样。
相关问题
- 1. 传递结构的数组从C#到C++使用COM调用包装
- 2. 将无符号整数从C++ COM对象传递到VB6
- 3. 从C#传递结构到C DLL
- 4. 从C++传递对象到C#虽然COM
- 5. 将结构从VC++传递到C#
- 6. 将结构数组从C++传递到C#
- 7. 传递结构的阵列从C++(COM),以C#
- 8. 揭露C++ COM数据结构,以C#
- 9. 传递数组从C#COM对象到JavaScript?
- 10. 将数据结构从VC++传递到C#?
- 11. 将结构化数据类型从Fortran传递到C++
- 12. 将C#结构传递给C++/CLI
- 13. C# - 将结构从一个对象传递到另一个对象
- 14. 将结构从非托管C++传递到C#
- 15. 如何将包含void *的结构从C++传递到c#?
- 16. 将参数从VB.Net传递给C(结构体)
- 17. 传字节数组从C#到C++(COM)
- 18. 调用COM对象从C#
- 19. 从C调用托管C#COM对象#
- 20. 通过COM将delphi 5结构/记录的C风格数组传递给C#
- 21. 将结构传递给函数c
- 22. C++将结构传递给函数
- 23. 将C++对象传递给C#
- 24. 将数据从C#传递到PHP
- 25. 将数据从JavaScript传递到C#
- 26. 将COM对象的C#数组传递给VB6
- 27. 如何将字符串参数从C++ com传递给c#?
- 28. 将复杂的对象从C#传递到C++
- 29. 如何将CImg图像对象从C++/CLI传递到C#
- 30. c结构被传递到函数
也许吧。也许不会。你为什么不通过比较和分析发现。 –