safearray

    1热度

    1回答

    如果有任何一种灵魂在那里请通过以下源代码并告诉我为什么MSXML“加载”函数无法加载此XML。 这里我试图使用MSXML解析器的“加载”函数加载UTF-8编码的XML。我有一个BSTR [UTF-16编码]作为参数,所以我试图将它转换成SAFEARRAY字节,以便我可以将它传递到MSXML的“加载”功能。但问题是加载函数无法加载这个XML。如果有人能提供解决方案,我会非常感激。 #include

    0热度

    1回答

    我想调用一个COM方法,它需要一个字符串SafeArray作为参考传递,然后用方法结果填充。这是VBA,它完美的作品代码: dimr RC as New RAS41.HECRASController RC.Project_Open "c:\myProj.prj" dim numMessages as Long dim messages() as String RC.Compute_Curr

    0热度

    1回答

    我到C++得到调用(...)方法结果的类型VARIANT * 变种。 var是.bmp图像。 qDebug() << var.vt; //8209 ~ VT_ARRAY|VT_UI1 ~ SAFEARRAY(BYTE) 如何将其从SAFEARRAY(BYTE)转换为QByteArray?或者如何获得QImage(QPixmap,QBitmap)?谢谢/。

    -1热度

    1回答

    每当试图使用SafeArrayLock /解锁我不断收到消息“未定义的引用‘SafeArrayLock @ 4’。 我使用的代码::块,只是复制/粘贴默认的Microsoft例如用于SAFEARRAYS: https://support.microsoft.com/en-us/kb/207931 如果我删除safearraylock /解锁功能线,然后我的DLL编译就好将它们放回它扔未定义的引用错

    -2热度

    1回答

    FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2)) 这样的代码从上面我有在VBA宏。现在我应该用C++代码创建同样的东西。据我所知直到现在 - 我应该使用SAFEARRAY类型。 但我仍不明白我应该怎么做。主要问题 - 我有几乎纯粹的C++代码。没有像COleSafeArray这样的

    1热度

    1回答

    我正在编写一个C++ dll来对从VBA传递过来的SAFEARRAY进行排序。 我没有使用任何OLE库,而是直接访问数组描述符和数据。 我对排序任何本机VBA类型的数组没有任何问题。例如,下面的代码片段排序BSTRs数组: long * p = (long*)pData; std::sort(p, p + elems, comparestring); ...使用这种比较函数: bool c

    1热度

    1回答

    我正在开发用于Windows API的COM包装器,它可以从没有本机Windows API支持的脚本语言中使用。所以我想在COM ATL项目中应该使用什么。 SAFEARRAY或CComSafeArray? VARIANT或CComVariant?或者任何其他结构或适当的包装? 我使用这两种类型进行了测试,但没有发现任何特殊的性能差异,使用问题或在它们之间找到的其他实现。 哪一个最适合在COM A

    0热度

    1回答

    我想编写一个DCOM服务器和一个客户端,以便他们可以交换一些数据。双方都使用MS Visual Studio 2008进行编译,客户端使用纯WinAPI进行连接,代理/存根是一个单独的dll(以防这种情况发生)。问题是,我无法返回一个字符串数组(它被正确填充,但客户端接收到一个空字符串数组)。 服务器:由Studio所产生 [id(7)] HRESULT foo([in] int arg1, [o

    0热度

    1回答

    我想调用传递数组作为输出参数从C#,使用COM,具有以下签名的函数: void GetCompoundList(ref object compIds, ref object formulae, ref object names, ref object boilTemps, ref object molwts, ref object casnos) 我不得不执行无访问,但对象是变异型的含字符串和

    5热度

    2回答

    我可以从缓冲存储器复制到安全数组如下 function GetVarArrayFromBuffer(ABuffer : pByte; ASizeInBytes: Cardinal) : OleVariant; var LVarArrayPtr: Pointer; begin Result := VarArrayCreate([0, ASizeInBytes