LPSTR 和 char* 都是指向字符数组的指针,可以通过强制类型转换实现转换。

例如,将 LPSTR 类型的指针转换为 char* 类型的指针,可以使用以下代码:

LPSTR lpstr = "Hello, world!";
char* str = (char*)lpstr;

在 SHGetPathFromIDList 函数中,返回的路径字符串是 LPSTR 类型的指针,可以使用同样的方法将其转换为 char* 类型的指针:

LPSTR lpPath = new char[MAX_PATH];
SHGetPathFromIDList(pidl, lpPath);
char* path = (char*)lpPath;

需要注意的是,在转换后的 char* 类型指针中,字符串的内存空间是从 LPSTR 指向的内存空间中复制而来,因此不能直接释放 LPSTR 指向的内存空间,否则会导致转换后的指针指向无效的内存地址。在使用完转换后的指针后,应该释放由 SHGetPathFromIDList 函数分配的内存空间:

delete[] lpPath;
``
c++ SHGetPathFromIDList LPSTR转char

原文地址: http://www.cveoy.top/t/topic/hcGE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录