このMSDNの記事は、サブキーを持つレジストリキーを削除する方法を示すことになっていますが、コードに欠陥があります。
言う行
StringCchCopy (lpEnd, MAX_PATH*2, szName);
lpEndのバッファを超えてコピーしようとしたために例外が発生します。その行を次のように置き換えて、ソリューションを修正してみました
size_t subKeyLen = lstrlen(lpSubKey);
size_t bufLen = subKeyLen + lstrlen(szName)+1;
LPTSTR buf = new WCHAR[bufLen];
StringCchCopy(buf,bufLen,lpSubKey);
StringCchCopy(buf+subKeyLen,lstrlen(szName)+1,szName);
buf[bufLen-1]='\0';
ターゲットプラットフォームと開発プラットフォームが異なるため、コードをステップスルーできませんが、コードに入力したログから、コードがフリーズしたように見えますが、例外はスローされません。
MSDNの記事が間違っているのはイライラします...あなたはそれらがチェックされると思うでしょう。
これを修正する方法について何かアイデアはありますか?
ありがとう。