许多Windows API采用指向缓冲区和大小元素的指针,但结果需要进入c ++字符串.(我在这里使用windows unicode,所以它们是wstrings)
这是一个例子: -
#include <iostream>
#include <string>
#include <vector>
#include <windows.h>
using namespace std;
// This is the method I'm interested in improving ...
wstring getComputerName()
{
vector<wchar_t> buffer;
buffer.resize(MAX_COMPUTERNAME_LENGTH+1);
DWORD size = MAX_COMPUTERNAME_LENGTH;
GetComputerNameW(&buffer[0], &size);
return wstring(&buffer[0], size);
}
int main()
{
wcout << getComputerName() << "\n";
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,这是编写getComputerName函数的最佳方法,以便它更好地适应C++,还是有更好的方法?除非我错过了什么,否则我没有看到任何方式直接使用字符串而不通过向量?它工作正常,但不知何故看起来有点难看.问题不在于特定的API,它只是一个方便的例子.