现有以下程序:
short CDataTypeCtrl::TransferData(BSTR FAR* bstVal)
{
// TODO: Add your dispatch handler code here
char chData[20]="\x30\x20\x00\x00\x39\x36\x00\x39"; *bstVal = AsciiToBSTR(chData); return 0;
}
BSTR AsciiToBSTR(const char* pszFName)
{
if (NULL == pszFName)
{
return NULL;
} if ( strlen(pszFName) <= 0 )
{
return NULL;
}
int len;
WCHAR wszURL[MAX_PATH];
len = ::MultiByteToWideChar(CP_ACP, 0, pszFName, -1, wszURL, MAX_PATH);
return SysAllocString(wszURL);
}
跟踪发现在MultiByteToWideChar转换到第三个字符就中断了,我应该怎么办????大虾们快快救救我!!
short CDataTypeCtrl::TransferData(BSTR FAR* bstVal)
{
// TODO: Add your dispatch handler code here
char chData[20]="\x30\x20\x00\x00\x39\x36\x00\x39"; *bstVal = AsciiToBSTR(chData); return 0;
}
BSTR AsciiToBSTR(const char* pszFName)
{
if (NULL == pszFName)
{
return NULL;
} if ( strlen(pszFName) <= 0 )
{
return NULL;
}
int len;
WCHAR wszURL[MAX_PATH];
len = ::MultiByteToWideChar(CP_ACP, 0, pszFName, -1, wszURL, MAX_PATH);
return SysAllocString(wszURL);
}
跟踪发现在MultiByteToWideChar转换到第三个字符就中断了,我应该怎么办????大虾们快快救救我!!
const OLECHAR * pch,
unsigned int cch
);
const OLECHAR * sz
);
将String转换成为BSTR
用后需要释放内存
SysFreeString
BSTR AsciiToBSTR(const char* pszFName)
是参数const char* pszFName不能传递0