В голову не укладывается, что может быть в VB не так:
VBVisual Basic
Private Declare Function convertToUtf8 Lib "lib_for_vb_2" (ByRef x As String) As String
Private Sub Command1_Click()
MsgBox convertToUtf8("александр")
End Sub
Qt:C++ (Qt)
extern "C" __stdcall wchar_t * convertToUtf8(char** S)
{
QString string(*S);
return SysAllocStringLen((OLECHAR FAR*)string.utf16 (), string.length());
}
В месагбокс выводится только первый символ ("А").