gpt4 book ai didi

c++ - 为什么我不能将 0 添加到 CComSafeArray?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:06 26 4
gpt4 key购买 nike

CComSafeArray<BYTE> arr;
arr.Add(0x00);

错误 -> C2668:“ATL::CComSafeArray::Add”:对重载函数的调用不明确

我可以添加任何值但不能添加 0为什么?

顺便说一句,我现在正在做

const byte zero = 0x00;
arr.Add(zero);

但我不明白为什么我不能只添加0

最佳答案

添加元素的方法是:

HRESULT Add(_In_ const T& t, _In_ BOOL bCopy = TRUE) // 0x00 as zero for t

也就是说,您的参数应该是 const BYTE& 类型。然而,还有另一种 Add 方法可以接受您的零参数:

HRESULT Add(_In_ const SAFEARRAY *psaSrc) // 0x00 as NULL for pasSrc

因此存在歧义,您应该通过适本地提出论点来解决它:

CComSafeArray<BYTE> arr;
arr.Add((const BYTE&) 0x00);

关于c++ - 为什么我不能将 0 添加到 CComSafeArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22904317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com