这是我想要加速的代码。它从 ADO 记录集中获取值并将其转换为 char*。但这很慢。我可以跳过 _bstr_t 的创建吗?
_variant_t var = pRs->Fields->GetItem(i)->GetValue();
if (V_VT(&var) == VT_BSTR)
{
char* p = (const char*) (_bstr_t) var;
最佳答案
BSTR 的前 4 个字节包含长度。您可以遍历并获取每个其他字符(如果是 unicode)或每个字符(如果是多字节)。某种 memcpy 或其他方法也可以。 IIRC,这可能比 W2A
或类型转换 (LPCSTR)(_bstr_t)
关于c++ - 在最佳时间从 _variant_t 获取 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/117755/