本文章分为三个部分:
1. 讲解调用win32的API打开文件系统对话框,选择文件(支持多选)
2. 讲解如何把win32使用的宽字符字符串(WCHAR*)转换为多字节(char*)字符串
3. 讲解如何把win32使用的多字节gbk字符串(char*)转换为cocos2d-x使用的多字节utf8字符串(char*)
一. 从文件对话框的调用
我们在应用程序中,经常可以在“打开”按钮中调出windows的文件对话框,选择一些文件。中文文档中比较少讲到多选的方法,这里注明一下:
**//初始化配置**
OPENFILENAME opfn;
WCHAR strfilename[MAX_PATH * 100]; // strfilename用来存储API返回的用户选择的文件的文件名。如果是多选,也全部存在这个字符串中,文件中用\0隔开,最后再多一个\0;其中第一个是文件夹的路径,接下去是文件名,例如:"文件夹\0文件A\0文件B\0\0"
ZeroMemory(&opfn, sizeof(OPENFILENAME)); // 初始化,不用改,其实调用了memset( .. ,0, ..)
opfn.lStructSize = sizeof(OPENFILENAM