C++ 如何在c++;?
我正在用ImGUI制作一个应用程序来选择图片。所以我需要调用“OPENFILENAME”来调用对话框窗口,下面是我的代码:C++ 如何在c++;?,c++,imgui,C++,Imgui,我正在用ImGUI制作一个应用程序来选择图片。所以我需要调用“OPENFILENAME”来调用对话框窗口,下面是我的代码: OPENFILENAME ofn; ::memset(&ofn, 0, sizeof(ofn)); TCHAR f1[MAX_PATH]; f1[0] = 0; ofn.lStructSize = sizeof(ofn); ofn.nFilterIndex = 2; ofn.nMaxFile = MAX_PATH; ofn.lpstrFile = f1; ofn.F
OPENFILENAME ofn;
::memset(&ofn, 0, sizeof(ofn));
TCHAR f1[MAX_PATH];
f1[0] = 0;
ofn.lStructSize = sizeof(ofn);
ofn.nFilterIndex = 2;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFile = f1;
ofn.Flags = OFN_FILEMUSTEXIST;
if (::GetOpenFileName(&ofn) != FALSE)
{
show_path = TRUE;
}
但是稍后我需要一个到image的路径,我在char
类型中选择了它,lpstrFile
是THCAR
类型。我找到了任何可以把THCAR
变成char
的东西。
我是否以正确的方式选择了文件,如果是,我如何以通常的字符格式获得文件路径 你现在到底有什么问题?获取路径或从TCHAR转换为char字符串?顺便说一句,您用
imgui
标记了它,该框架不提供查询用户路径的方法吗?无论如何,作为一个新用户,请接受并阅读。@UlrichEckhardt实际上我的问题是如何选择文件并以字符串格式获取它的路径。因为我认为我写的一种方式可能是错误的。ImGUI没有提供实现这一点的方法,所以我需要使用一些系统内置的功能。好的,那就先离开一步,在常规项目之外解决这个问题,不使用ImGUI,然后集成它。你可以使用上面的方法从操作系统获得这个结果,只是你不使用TCHAR变量,而是使用WCHAR变量(即GetOpenFileNameW()
,搜索示例)。请注意,任何使用TCHAR的代码都应该被认为是可传递的代码,现在已经过时了。在MS Windows上,本机字符类型相当于WCHAR或WCHAR\t
。作为文件名的目标数据类型,使用一个std::filesystem::path
,它可以很容易地从这样的字符串构造出来。