将BSTR从DLL保留到Microsoft Excel VBA应用程序时出现意外结果

时间:2016-11-02 13:34:03

标签: c excel vba excel-vba

我正在用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”而不是整个字符串。任何人都可以提出任何建议或告诉我哪里出错了吗?

0 个答案:

没有答案