我的wcscpy_s
函数有问题。 wcscpy_s
返回我函数的参数(stringOne
和stringTwo
)不可读。 下面是显示问题的简单演示。wcscpy_s后面的字符串读取错误
void testFunc(LPCWSTR stringOne, LPCWSTR stringTwo) {
wchar_t* defaultVal = L"Default";
wchar_t tmp[100];
int lenBefore = wcslen(stringOne); // Works
auto result = wcscpy_s(tmp, sizeof(tmp), defaultVal);
int len = wcslen(tmp);
int len2 = wcslen(stringOne); // Throws Exception Access violation
}
int main() {
testFunc(L"Test", L"Test");
}
一个问题是,'的sizeof(TMP)'给你在*字节×大小,但它应该是* *元件阵列中的数量。见例如[此'wcscpy_s'参考](https://msdn.microsoft.com/en-us/library/td1esda9.aspx)。 –