lstrlen のこと
tchar.h をもっと有効に使ってみようということで、_tcslen, _tcscpy, _istupper, _totlowerなどを使ってみたところ、プログラムが動かなくなった。おかしいなと思い調べてみたところ、ちょっとしたことに気がついた。
lstrlenにはNULLを渡しても大丈夫だが、strlenにNULLを渡すと動かない。
そんなの当たり前だと言われるかもしれないが、何も考えずにlstrlenを使っていたので今までNULLを渡しても問題ないと思っていた。strlenにはNULLを渡してはいけない。だから_tcslenに変えると、_tcslen(NULL)となったところでプログラムが動かなくなってしまう。
NULLはきちんとチェックしてから長さを調べることにするように(自戒)。