C++写的动态链接库返回字符串,在VB里为什么是乱码?该如何解决

C++写的动态链接库返回字符串,在VB里为什么是乱码?
C++里的代码如下:
LPSTR   __stdcall   DistributeLabel(   long   StartNo,   long   EndNo,   LPSTR   LabelFilePath   )
{
///先完成WIN32的LPSTR类型到标准模板库中string类型的转换
const   char*   chrIn   =   LabelFilePath;     //char*与LPSTR是等价的
string   strIn   =   chrIn;                   //char*可以直接转化为String类型

///将string类型转换到LPSTR类型并返回值
string   strOut   =   strIn   +   "D ";
const   char   *chrOut   =   strOut.c_str();   //string类型转回char*,注意 "const "必不可少
return   (LPSTR)chrOut;
}


VB里调用代码如下:
Private   Declare   Function   DistributeLabel   Lib   "D:\a.dll "   (ByVal   StartNo   As   Long,   ByVal   EndNo   As   Long,   ByVal   LabelFilePath   As   String)   As   String

Private   Sub   Command1_Click()
        MsgBox   "1:   "   &   CStr(DistributeLabel(1,   2,   "ABC "))
End   Sub


可出现的结果是一串乱码,怎么解决?


------解决方案--------------------
Private Declare Function DistributeLabel Lib "D:\a.dll " (ByVal StartNo As Long, ByVal EndNo As Long, LabelFilePath As String)
这样改试下
------解决方案--------------------
strconv(CStr(DistributeLabel(1, 2, "ABC ")),vbunicode)