问题标签 [safearray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
242 浏览

c++ - 我需要在这段代码中调用 SafeArrayUnLock 吗?

我是团队的新成员,我阅读了下面的代码。我想知道我需要在 dctor 中调用 SafeArrayUnLock 吗?我试图在没有明确线索的情况下在网上搜索。非常感谢您的帮助!

代码:

0 投票
1 回答
2305 浏览

c++ - 将 std::vector 转换为 CComSafeArray 的任何快速方法

有什么快速的方法可以将 std::vector 转换为 CComSafeArray。我目前正在编写一段代码,它基本上将 5 或 6 个向量转换为 CComSafeArray(不是在迭代中)。其中,一大块代码(释放旧空间,创建新的安全数组,复制)出现了。我真的希望我可以轻松地转换它。

由于我们可以编写一种方法来进行这种转换,我实际上正在寻找位于图书馆等角落的有用功能。非常感谢您的帮助!

0 投票
1 回答
772 浏览

c++ - 如何根据数组参数项类型重载 IDL 中的函数?

假设我在 IDL 中定义了这个函数,如下所示:

我想为 IDL 中定义的函数创建一个重载,如下所示:

但是在实现该函数的类的头文件中,原来的声明如下:

因此数组中项目的类型不再是签名的一部分。因为我试图根据函数签名的这种差异创建一个重载函数..我该如何继续?

0 投票
2 回答
491 浏览

c# - C# 函数不更新 SAFEARRAY

我有一个带有以下签名的 C# 函数:

我从 C++ 中调用它。编译器告诉我第二个参数必须有SAFEARRAY*类型。所以我这样称呼它:

但是 safeArray 没有更新,它仍然包含 zores。但我Get1251Bytes在 C# 单元测试中测试了函数。它工作正常并更新result数组。我究竟做错了什么?

0 投票
1 回答
211 浏览

com - 如何通过 ColdFusion 9 从 COM 对象中检索安全数组(结构)

我试图引用定义为的 COM 对象方法:

我在 edmFile 变量中有对 IEdmFile7 对象的引用。

当我<cfdump var="#edmFile#">的方法是可见的:

当我尝试调用该方法时(尝试传递许多不同的参数类型):

它与AutomationException: Member not found. 我只能假设它没有正确识别或投射参数。如何正确地将安全数组(结构)的引用传递给方法?

(根据评论编辑)

我尝试过的一些示例:

结果:

评论中的另一个尝试:

结果:

0 投票
1 回答
409 浏览

c# - How to implement a SAFEARRAY(long) parameter?

I currently have a C# method in an interface that has the following parameters when viewed in ITypeLib

The above method is in an interface and is defined in C#.After generating a type library I am attempting to create an implementation of that interface in C++. However I cannot figure out the type required for

I am currently trying something like this

Any suggestions on what the equivalent of [in] SAFEARRAY(long) bid should be for the class implementing the C# interface.

0 投票
1 回答
1501 浏览

c++ - 这是 CComSafeArray 的使用不好吗?

我有一个 COM 功能:

并遵循遗留代码:

我怀疑手动管理锁是否好。m_psa当返回为NULLby时,该代码会崩溃GetData吗?

下面的代码怎么样?那个更好吗?

编辑: 我测试了上面的两个代码。有一个区别。如果GetData返回NULL,则直接AttachNULL检查将调用异常。第一个版本将返回一个E_INVALIDARG. 我的问题仍然存在,您是否更喜欢更高版本,因为它使用 SafeArray 对象来维护计数,而不是混合它?

EDIT2: 如果出于某种原因我选择了第一个版本,可以忽略E_INVALIDARG返回值吗?当某些代码稍后使用它时,这会有什么副作用saDataArray吗?

0 投票
2 回答
848 浏览

c++ - C++ COM [in, out] 安全数组

我需要在 C++ 中调用一个 COM 函数,该函数返回对SAFEARRAY(BSTR).

根据这个文件,它应该是:

但列表元素仍为10.0.

我错过了什么吗?

编辑

我使用了 Oleview.exe,实际上,该函数如下所示void Frequencies(VARIANT* FrequencyArray);

但是 ActiveX 服务器的文档说:Use a safearray of strings (VT_BSTR) or reals (VT_R8 for double or VT_R4 for float).

0 投票
1 回答
279 浏览

c++ - Qt 中 _variant_t 的等价物

我正在尝试将 Visual-C++ 代码转换为 Qt。

有没有等价物_variant_t

代码是:

如何用 Qt 做到这一点?

0 投票
1 回答
565 浏览

com - 合并两个 SAFEARRAY - SafeArrayPutElement 内存访问冲突

在执行以下代码时,我遇到了一些内存访问冲突:

我收到的消息是:0x774115de 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000004。

任何帮助都会非常有帮助!

提前致谢

问候, 法比安