我写了一个dll,它需要一个指向具有给定签名的函数的指针,比如说
function func(x as double) as double
...
end function
我可以在vba中编写这样的函数(比如Asinh)并使用 AddressOf ... vba方法传递它,它没有问题。
但是Asinh是Excel对象WorksheetFunction中已经存在的一个函数,我只是为了调用现有的函数而编写(很多)代理vba函数看起来很傻。直接传递此类工作表函数的地址会更好。但是:
一个相关的问题是重用外部dll中定义的函数(具有相同的签名),但至少在这种情况下可以使用LoadLibrary / GetProcAddress解决它,排序
function ExternalAddressOf (dllname, funcname) as LongPtr
....
end function
或者,在自己编写的dll的情况下,实现一个函数表并在vba符号常量中使用。但是,我真的希望能够重用已在WorksheetFunction中定义的函数。需要帮助。