wcscpy_s
関数に問題があります。 wcscpy_s
の後に、my関数のパラメータ(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)'は* bytes *のサイズを与えますが、配列の*要素数*でなければなりません。例えば、 [この 'wcscpy_s'リファレンス](https://msdn.microsoft.com/en-us/library/td1esda9.aspx)。 –