- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
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/
我有一个 Com 函数: GetData (SAFEARRAY ** pRetVal) 我有以下代码: SAFEARRAY *ppData = NULL; hr = pmyInterfac
我使用以下语句创建了包含 32 个元素的 CComSafeArray 对象。但经过一些操作后,我才知道我只需要安全数组中的 3 个元素。是否可以在创建安全数组后更改其中元素的数量? CComSafeA
我有一个 COM 函数: GetData(SAFEARRAY ** pRetVal) 和以下遗留代码: CComSafeArray saDataArray; hr = pmyInterface->Ge
我的情况是我有一个 COM 对象,我需要在 come windows 中仅使用 C++ 代码。 COM 对象具有接受 SAFEARRAY 作为参数以传递字节数组的函数。在查看了 SAFEARRAY A
CComSafeArray::SetAt method提供一个参数来控制引用的变量是否被复制: HRESULT SetAt( LONG lIndex, const T& t, BOOL bCopy =
我尝试了 GetSafeArrayPtr() 方法,该方法返回一个 LPSAFEARRAY*,typedef 定义为: typedef /* [wire_marshal] */ SAFEARRAY *
我有一个内存泄漏问题,我已将其缩小到以下代码。怎么回事? CComSafeArray sa(5); sa[0] = SysAllocString("constant"); CComSafeArray:
CComSafeArray arr; arr.Add(0x00); 错误 -> C2668:“ATL::CComSafeArray::Add”:对重载函数的调用不明确 我可以添加任何值但不能添加 0
我正在尝试 (i) 跨 COM 边界获取长整型安全数组,以及 (ii) 为方便起见使用 CComSafeArray。 我的问题是在设置 COM 属性后我遇到了不可预测的崩溃(参见下面的 pProlog
我有一个应该通过 LPSAFEARRAY* 返回 SafeArray 的 COM 函数出参数。该函数使用 ATL 的 CComSafeArray 创建 SafeArray模板类。我天真的实现使用 CC
这很可能有一个非常简单的答案,但我无法弄清楚。 我正在尝试重构一些如下所示的代码: SAFEARRAY* psa; long* count; HRESULT hr = pSomeInterface->
有什么快速的方法可以将 std::vector 转换为 CComSafeArray。我目前正在编写一段代码,基本上将 5 或 6 vector 转换为 CComSafeArray(不是在迭代中)。其中
我正在使用 ATL CComSafeArray类,但是如果数组为空,GetCount() 似乎会抛出异常,例如这段代码抛出异常: CComSafeArray array; // array.Add(i
在MSDN documentation for CComSafeArray::MultiDimSetAt , alIndex 记录如下: Pointer to a vector of indexes
我正在使用 COM 库“Microsoft 脚本运行时”(c:\windows\System32\scrrun.dll) 中的 Scripting.Dictionary。我正在使用 import 来获
CComSafeArray fields; hr = _tab_file->get_Fields(fields.GetSafeArrayPtr()); for ( LONG i = fields.Ge
我是一名优秀的程序员,十分优秀!