我正在用C语言写一个VBA扩展,从我读过的VBA使用BSTR,它只是一个带有长度前缀的WCHAR *。我有一个功能:
__declspec(dllexport) VB_STRING _stdcall getStr()
{
return SysAllocString(L"This is a string.");
}
我在VBA中使用以下方式调用:
Private Declare Function getStr Lib "main.dll" () As String
Sub do_stuff()
Range("A1").value = getStr()
End Sub
但是,单元格A1只包含“T”而不是整个字符串。任何人都可以提出任何建议或告诉我哪里出错了吗?