12得票3回答
如何将本地CComSafeArray返回到LPSAFEARRAY输出参数?

我有一个COM函数,应该通过LPSAFEARRAY*输出参数返回一个SafeArray。 该函数使用ATL的CComSafeArray模板类创建SafeArray。 我的天真实现使用CComSafeArray<T>::Detach()来将所有权从局部变量移动到输出参数:void f...

12得票3回答
如何在C++中创建和初始化一个存储双精度浮点数的SAFEARRAY以便传递给C#

我的C#方法需要从C++中调用 最初,我的C#方法需要一个double[]类型的参数,但是在从C++调用时,它变成了一个SAFEARRAY。 在C++中,我需要从一个double数组中获取数据,并填充一个SAFEARRAY。我还没有找到任何可用的示例代码。 非常感谢您的帮助。

11得票2回答
如何遍历SAFEARRAY **?

如何迭代C++ safearray指针到指针并访问其元素。 我尝试复制Lim Bio Liong发布的解决方案,但最奇怪的是IDL方法签名出现了。请参考http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/022dba1...

9得票1回答
释放C++ DLL和C#中的SAFEARRAY

我有一个C++函数,用于获取数据,并从C#中调用它。该函数获取指向SAFEARRAY的指针,并使用SysAllocString将其填充为字符串。 一切正常,但程序存在内存泄漏问题。 我进行了一些搜索,并发现如果在方法签名中添加此属性: [MarshalAs(UnmanagedType....

9得票1回答
能否在SAFEARRAY中传递ref参数?

这是我的C#服务器方法: public void Exec(out int status, string output) { status = 3; Console.WriteLine("Exec({0}, ...)", status); output = s...

8得票3回答
如何使用SAFEARRAY的BSTR类型来显示VARIANT中的值

我正在开发一个COM对象库,其中有一个函数返回带有SAFEARRAY的VARIANT。如何显示来自此VARIANT实例的值并将其保存在TStringList中?我尝试过在网上搜索但没有找到明确的答案。 我尝试了以下方法但没有成功: Variant V; String mystr; Var...

7得票2回答
如何构建一个指向VARIANT的指针的SAFEARRAY?

我正在尝试使用一个带有以下方法的COM组件: HRESULT _stdcall Run( [in] SAFEARRAY(BSTR) paramNames, [in] SAFEARRAY(VARIANT *) paramValues ); 如何在C/C++中创建pa...