如何从C / C + + dll传递string数组到VBA(Excel)

如何从C / C + + dll传递string数组到VBA(Excel)

DLL在Visual Studio中

DLL不受pipe理,ATL等

关心安迪

处理这个问题的方法之一是编写你的DLL来返回一个types为字节的SAFEARRAY作为函数的结果(VB数组是OLE SafeArrays)。

要做到这一点,你必须阅读SafeArray的API和结构。 我自己并不知道,但你需要的主要东西是SAFEARRAYBOUND结构和SafeArrayCreate API。 API返回给你,你返回到VBA。 你会完成的。

微软在很多年前写了一篇白皮书,详细介绍了一些编写DLL与VB5 / VB6一起使用的最佳实践,这当然也适用于VBA。 这是转载与许可,并在原始Wordforms,在这里可用:

Microsoft:为VB5开发DLL http://vb.mvps.org/tips/vb5dll.asp

请参阅第8章(“传递和返回数组”)以获取有关此任务的帮助。 有一个例子是专门用来演示传递和返回string数组的。