1
尝试呼叫从VBA C++函数(在dylib编译)和一个字符串传递给它如下 -(苹果机)从VBA传字符串参数传递给dylib - 在C上接收空字符串++函数
.H
extern "C"
{
int func(const char* &str);
}
的.cpp
int func(const char* &str)
{
//something something
}
VBA
Declare PtrSafe Function func Lib "<LibPath>" (ByRef str As String) As Integer
...
Function outFunc
Dim str As String
str = "Hello"
func (str)
End Function
在调试C++代码,该函数被正确地击中,但一个空字符串在“STR”变量被接收。 还使用nm实用程序来确认函数是否从dylib正确显示。
尝试通过字节而不是串的阵列中:Dim str作为字符串 暗淡ArrayOfBytes()作为字节 STR = “yourString” ArrayOfBytes()= STR – basslo