我正在替换一个旧的 DLL,它有一个函数,通过引用传递一个 LPWSTR。这些函数应该创建一个新的 wchar 缓冲区并返回新创建的 LPWSTR 指针。我找到了一个解决方案,但我认为它可以更好地解决!?
通过主程序调用 DLL 函数,如下所示:
LPWSTR data = null;
funcA(&data);
该函数应该创建一个新的 wchar 缓冲区并返回地址。
所以这就是我所做的(它有效):
void funcA(LPWSTR szData)
{
LPWSTR newData = L"DEMODATA";
LPWSTR newBuffer = new TCHAR[9];
wmemcpy(newBuffer, newData, 9);
memcpy(szData, (LPWSTR)&newBuffer , sizeof(LPWSTR));
}
写最后一行可读性更好吗?我试图分配新的指针,但这不起作用:
szData = (LPWSTR)&newBuffer; // not working!