うまく動作しない mbstowcs() があります。
mbstowcs(pParams->strDstFile, parParams->DstFile, sizeof(parParams->DstFile));
デバッグ時の引数の値は次のとおりです。
pParams->strDstFile = 0x0018e70c
parParams->DstFile = 121 long null terminated string.
sizeof(parParams->DstFile) = 1024
引数のタイプは次のとおりです。
TCHAR strDstFile[2048];
char DstFile[1024];
mbstowcs( wchar_t *pwcs, const char *s, size_t n) への単一のステップの後:
wchar_t *pwcs = 0x0018ef0c
これは、送信されたものとは異なる値です。これにより、上記の呼び出しが誤動作します。
別の関数呼び出しで ps 、これとほぼ同じで、最初の引数 (pwcs) が異なるだけで、問題はありません。
アプリを連続して実行すると、まったく同じアドレス値で同じ結果が得られます。
別の投稿を見ていると、ぶら下がっているポインター/バッファー オーバーフローのように見えますが、メモリ ブレークポイントで追跡することはできません。
多分スタックの破損だと思いますか?
皆さんありがとう。