use*_*882 1 string winapi visual-c++
我试图将一些内容存储到字符串变量中,方法是将它作为参数传递给各种类型的Windows API函数,这些函数接受像char*这样的变量.
例如,我的代码是: -
std::string myString;
GetCurrentDirectoryA( MAX_PATH, myString );
Run Code Online (Sandbox Code Playgroud)
现在,在这种情况下,如何将字符串变量转换为LPSTR.
请注意,此函数不是用于传递字符串的内容作为输入,但该函数在执行后将一些内容存储到字符串变量中.因此,排除了myString.c_str().
编辑:我有一个解决方法,删除字符串的概念,并用类似的东西替换它
char myString[ MAX_PATH ];
Run Code Online (Sandbox Code Playgroud)
但这不是我的目标.我想利用字符串.有可能吗?
也像铸造一样
GetCurrentDirectoryA( MAX_PATH, ( LPSTR ) myString );
Run Code Online (Sandbox Code Playgroud)
不管用.
在此先感谢您的帮助.
通常,人们会重写他们需要std::string友好的Windows功能,如下所示:
std::string GetCurrentDirectoryA()
{
char buffer[MAX_PATH];
GetCurrentDirectoryA( MAX_PATH, buffer );
return std::string(buffer);
}
Run Code Online (Sandbox Code Playgroud)
或者这个用于广泛的char支持:
std::wstring GetCurrentDirectoryW()
{
wchar_t buffer[MAX_PATH];
GetCurrentDirectoryW( MAX_PATH, buffer );
return std::wstring(buffer);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4174 次 |
| 最近记录: |