2017-07-26 | 研究与探索 | UNLOCK

日志47150726

EasyX是一个优秀的C语言图形库,今天我用它来可视化八皇后问题的解。 我用saveimage()保存图片时,想将每张图片以其对应的解的数组命名,比如下面这张就是15863724.bmp。
为此我用使用了string对象saveimage((path+fname+".bmp").c_str()),然后提示c_str()前必须跟对象或结构(真想念python),于是成了

1
2
fname=path+fname+".bmp";
saveimage(fname.c_str());

然后编译器表示saveimage()只能接受LPCTSTR类型。加上_T()发现_T(只是在对象前加L,比如_T("abc")等价于L"abc",是wchar_t的字符串。而LPCTSTR相当于const wchar_t*的typedef。 所以我需要把char*字符串转换成wchar_t*字符串。 各种百度,A2W之类的都没用。最后狠心把程序中所有对象换为宽字符型,string->wstringcout->wcout等等,问题才算解决。 以前吐槽过python中字符编码问题,看来在C++中更严重……下次试试pillow吧。