【发布时间】:2021-06-21 06:12:12
【问题描述】:
CertGetNameString() 随机抛出堆损坏错误,使用函数 CertGetNameStringW() 也一样
LPCWSTR pszName = (LPCWSTR)malloc(cbSize * sizeof(TCHAR));
if (CertGetNameString(
pCurrentCertContext,
dwType,
dwFlags,
空指针,
psz名称,
cb大小))
{}
【问题讨论】:
-
不要混用
LPCWSTR和TCHAR。您可能没有使用正确的UNICODE和_UNICODE定义进行编译,这使得TCHAR==char而不是wchar_t并且您的malloc是预期大小的一半。始终使用LPCWSTR、WCHAR和CertGetNameStringW。