我有一个包含例如的字节数组
byte mac[6] = {0x00, 0x8a, 0x0C, 0x98, 0x11, 0x15}.
使用此语句将其插入数据库时
m_pWiFiRecords->Fields->Item[varColumnIndex]->Value = _variant_t((char*)(pRecord->bss_id));
它将其保存为空数组,因为第一个元素= 0x00,并且当将其作为字节数组转换时,它将其保存为-1.
你能帮我搞清楚这个问题吗?
以下是将二进制数据导入_variant_t的方法.如果数据库设置为处理二进制数据,它应该适合您.
请注意,_variant_t将SAFEARRAY在它超出范围时对其进行深度破坏,因此您不必担心执行此操作SafeArrayDestroy.
_variant_t var;
var.vt = VT_ARRAY | VT_UI1;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].cElements = 6;
rgsabound[0].lLbound = 0;
var.parray = SafeArrayCreate(VT_UI1,1,rgsabound);
void * pArrayData = NULL;
SafeArrayAccessData(var.parray,&pArrayData);
memcpy(pArrayData, mac, 6);
SafeArrayUnaccessData(var.parray);
m_pWiFiRecords->Fields->Item[varColumnIndex]->Value = var;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3461 次 |
| 最近记录: |