1

我想将一个字节数组传递给 ActiveX。我正在使用 delphi 7,并且正在使用 InProcess Server (DLL)。

我正在使用指向字节数组和数组大小的指针,将其传递给 InProcess Server。它运作良好。我这样做是因为我需要表现。有人看到这种方法有什么问题吗?

我看到一篇很相似的帖子:什么数据类型适合在ActiveX方法中处理二进制数据?但没有人给出这个答案。

4

1 回答 1

1

将字节数组作为指针与大小信息一起传递就可以了。

然而,一些编程语言只支持所有可能类型的一小部分。例如,Visual Basic for Application(不是 VB.NET)只能处理自动化兼容的数据类型(参见http://msdn.microsoft.com/en-us/library/cc237562(v=prot.20).aspx),甚至不是全部(例如,不支持 16 位无符号整数)。为了安全起见,只要没有好的论据,我总是使用 SAFEARRAYs。

另请注意,使用非自动化兼容接口会强制您提供自己的编组代码,以防您想使用组件 OutProc。既然你提到你打算只使用你的组件 InProc,这不应该让你担心。

问候,斯图尔特

于 2012-12-03T22:16:45.023 回答