【初心者歓迎】C/C++室 Ver.25【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0192183
2006/03/05(日) 12:49:05今、あるサンプルを改造してまして、一瞬解決したと思ったのですが、
ちょっと結果に違いがでてしまいました。
どう違いが出るかを言葉で説明するのは難しいところなので改造した所だけ載せます。
サンプル:
BYTE pbData[1024] = "This is a test data.";
DWORD dwDataLen = (DWORD)strlen((char*)pbData) + 1;
改造ソース:
//エディットボックスに入力した文字列を取得してhoge関数に渡す
GetDlgItemText(hDlg,IDC_TEXT,text,sizeof(text));
hoge(text);
//hoge関数
char* hoge(char* text){
BYTEpbData[1024];
strcpy((char*)pbData,text);
DWORDdwDataLen = (DWORD)strlen((char*)pbData);
〜省略
サンプルではpbDataに直接文字列が入ってるところを、
エディットボックスから取得した文字列を渡すように改造しただけです。
なぜかサンプルのように、dwDataLenに +1 すると、
コンパイルは通るものの、動作させると落ちてしまいます。
なぜでしょうか?正しくはどう書いたらよいでしょうか。
(そもそもサンプルの方で+1する意味がわかりません)
環境は VC++6 、win2k です。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています