【发布时间】:2019-11-26 04:18:55
【问题描述】:
我有一个将参数之一设置为传出的函数。我需要将它与 std::vector 一起使用。
这是将文件名返回到声明为 WCHAR ** 的 *sFilename 中的函数:
BOOL GetFilenameFromPathAndFilename(WCHAR *sFilenameAndPath, WCHAR **sFilename)
{
WCHAR *pDest;
// Count backwards to find the first backslash and take the right # of chars as the filename
pDest =wcsrchr(sFilenameAndPath,'\\');
if (pDest)
{
pDest++;
DWORD dwLen = (DWORD) _tcslen(pDest) + 1;
*sFilename = (WCHAR*)calloc(dwLen, sizeof(TCHAR));
StringCchCopy(*sFilename,dwLen, pDest);
}
return (pDest != 0);
}
如何将此函数与 std::vector 一起使用?使用 std::vector,调用不起作用:
std::vector<WCHAR> sFQDN(512);
//GetFQDomainNameEx(&sFQDN.data()); <-does not work
WCHAR *sFilenameIncoming = NULL;
GetFQDomainNameEx(&sFilenameIncoming); <-this works
【问题讨论】: