C++ 从C+;获取图片路径+;
在Win 32(不是.NET)中,以LPSTR的形式获取图片路径的最可靠方法是什么?尝试将该函数与CSIDL一起使用 差不多C++ 从C+;获取图片路径+;,c++,windows,C++,Windows,在Win 32(不是.NET)中,以LPSTR的形式获取图片路径的最可靠方法是什么?尝试将该函数与CSIDL一起使用 差不多 #include <windows.h> #include <iostream> #include <shlobj.h> #pragma comment(lib, "shell32.lib") int main() { CHAR mypicturespath[MAX_PATH]; HRESULT result =
#include <windows.h>
#include <iostream>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")
int main() {
CHAR mypicturespath[MAX_PATH];
HRESULT result = SHGetFolderPath(NULL, CSIDL_MYPICTURES, NULL, SHGFP_TYPE_CURRENT, mypicturespath);
std::cout << "My Pictures : " << mypicturespath << "\n";
return 0;
}
#包括
#包括
#包括
#pragma注释(lib,“shell32.lib”)
int main(){
CHAR mypicturespath[MAX_PATH];
HRESULT result=SHGetFolderPath(NULL,CSIDL_MYPICTURES,NULL,SHGFP_TYPE_CURRENT,mypicturespath);
std::cout尝试将该函数与CSIDL一起使用
差不多
#include <windows.h>
#include <iostream>
#include <shlobj.h>
#pragma comment(lib, "shell32.lib")
int main() {
CHAR mypicturespath[MAX_PATH];
HRESULT result = SHGetFolderPath(NULL, CSIDL_MYPICTURES, NULL, SHGFP_TYPE_CURRENT, mypicturespath);
std::cout << "My Pictures : " << mypicturespath << "\n";
return 0;
}
#包括
#包括
#包括
#pragma注释(lib,“shell32.lib”)
int main(){
CHAR mypicturespath[MAX_PATH];
HRESULT result=SHGetFolderPath(NULL,CSIDL_MYPICTURES,NULL,SHGFP_TYPE_CURRENT,mypicturespath);
std::cout将SHGetFolderPath()
API函数与CSIDL\u MYPICTURES
标志一起使用。将SHGetFolderPath()
API函数与CSIDL\u MYPICTURES
标志一起使用。shGetKnownderPath
是“新方法”是的,但是OP没有指定Windows版本。而且SHGetFolderPath
也适用于新的Windows版本。OP要求将字符串作为LPSTR(即基于字符的字符串)获取。在这种情况下,我认为最好显式使用函数的…A()结尾形式(即SHGetFolderPathA),考虑到Visual Studio的现代版本默认使用Unicode构建(而不是ANSI/MBCS),因此SHGetFolderPath将扩展为SHGetFolderPathW。顺便说一句:我想知道OP为什么要求LPSTR:在当今,Unicode(所以LPWSTR)应该是默认的文本编码形式。ShGetKnowlderPath
是“新方法”是的,但是OP没有指定Windows版本。而且SHGetFolderPath
也适用于新的Windows版本。OP要求将字符串作为LPSTR(即基于字符的字符串)获取。在这种情况下,我认为最好显式使用函数的…A()结尾形式(即SHGetFolderPathA),考虑到VisualStudio的现代版本使用Unicode构建作为默认值(而不是ANSI/MBCS),因此SHGetFolderPath将扩展为SHGetFolderPathW。顺便说一句:我想知道为什么OP要求LPSTR:在这些日子里,Unicode(所以LPWSTR)应该是默认的文本编码形式。