写Winapi的时候遇到了一个让我百思不得其解的问题
#include
#include
#include
using namespace std;
int main(){
wchar_t Buffer[MAX_PATH]{};
OPENFILENAME ofn{};
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFilter = TEXT("所有文件(*.*)\0*.*\0");//要选择的文件后缀
ofn.lpstrInitialDir = TEXT("E:\\Program Files");//默认的文件路径
ofn.lpstrFile = Buffer;//存放文件的缓冲区
ofn.nMaxFile = sizeof(Buffer) / sizeof(*Buffer);
ofn.nFilterIndex = 0;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_ALLOWMULTISELECT;//标志如果是多选要加上OFN_ALLOWMULTISELECT
BOOL bSel = GetOpenFileName(&ofn);
cout << ofn.lpstrFile;
}
然后它每次都输个“69”出来(?)
我疑惑死了
用调试台输出时是对的,一串路径
控制台上给我看个数字(?)
确实是E的内码(E盘),但明明是字符为什么数出来是数字啊,而且还只有一个?
将项目属性改为使用多字节字符即可解决
你用的是宽字符类型wchar_t,最好用wcout输出