问题标签 [variant]
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.
delphi - 我如何(或者如果我不能)在简单的 DLL 上使用变体?
我想将内部对象的某些功能公开为 DLL - 但该功能使用变体。但我需要知道:我可以使用 Variant 参数导出函数和/或返回 - 还是更好地使用纯字符串表示?
与语言无关的 POV 有什么更好的(消费者不是用 Delphi 制造的,但都将在 Windows 中运行)?
c# - OLEVariant 到 .Net byte[]
我有一个伪装成 .Net 对象的 OLEVariant,我通过网络从客户端组件接收到该对象。我知道内容是一个字节数组,但我不知道如何将这些内容转换为本机 .Net 字节数组 (byte[])。关于如何完成转换的任何线索?
编辑:我们回答了我们自己的问题。要将 OleVariant(字节数组类型)转换为 .Net byte[] 需要在对象进入 .Net Array 时将其泵入,获取 Array 的上限,创建一个上限大小的新 byte[],然后最后做一个 Array.Copy()。
delphi - Delphi的基本代码
我正在努力解决以下问题:
目标是为 openoffice 参数化一个自动化服务器,我正在用 Delphi 编程。
我想翻译成 Delphi 代码的基本代码是:
我在德尔福的尝试看起来像
这不起作用有没有人建议如何解决这个问题?
.net - 将 Delphi 5 OleVariant 编组为 C#
我正在尝试使用 C# (2.0/3.5) 中的一些旧版 Delphi 5 DLL。一些导出的函数是这样声明的:
我希望使用 Marshal.GetDelegateForFunctionPointer 将它们设置为委托,但我无法正确地编组数据。我正在使用 LoadLibrary 和 GetProcAddress 的 kernel32 导入,因此我依靠 GetDelegateForFunctionPointer 来执行我的实际编组,而不是静态 p/invoke 声明。
由于 .NET 编组服务可以将对象编组为 COM OleVariants,因此我尝试了这个。但这会导致异常:“PInvoke 限制:无法返回变体。”。所以我想我需要使用自定义编组器。
将 Delphi 5 OleVariant 编组为 .NET 可读的正确方法是什么?
c++ - 在 VARIANT 和 _variant_t 之间复制
我相当确定我可以安全地做到:
但是反过来呢:
我在我的应用程序中看到了一些非常奇怪的行为,我将其归结为与 COM 相关的线程问题。但后来我想知道我是否错误地使用变体搞砸了内存。在 funcB 中,VARIANT V 是为 COM 调用准备的安全数组的一部分。使用我的 V=vt 行,我是否在做一个浅拷贝,当同一个变体被释放两次时会破坏事情?
我真的很喜欢 _variant_t 并避免使用所有 ::VariantXXX 方法,有没有一种巧妙的方法可以在 funcB 中使用 _variant_t 来自动复制?
c++ - 如何构建指向 VARIANT 的 SAFEARRAY 指针?
我正在尝试通过以下方法使用 COM 组件:
如何在 C/C++ 中创建 paramValues 数组?
vb.net - VB6 转换为 VB.net 变体问题
我的任务是将 VB6 程序转换为 VB.NET。在我的在线研究中,每个人似乎都说我需要检查我的代码并摆脱我拥有的任何变体。到目前为止,我的运气很好,但是我在更换这个时遇到了问题。
我对 VB(6 或 .net)仍然很陌生,我很难找到替代方案。VB.net 中的转换工具能很好地处理这个问题吗?还是我需要改变这个?如果我这样做,是否有更好的选择?原谅我的菜鸟。
先感谢您。
c# - 将 VB6 变体分配给对象
我有一个使用 C# 编译的 Dll 的 VB6 应用程序。我已经通过 COM 成功地完成了这项工作。但我的问题是我有一个 Variant 数组,其中包含 String 和 Double 数据类型。我需要将此数组传递给我的 C# Dll,它将数组作为对象接收。因此,我需要做的就是将 Variant 数组转换为 C#“可理解”的 Object 数组。有人对此有任何线索吗?
delphi - Delphi 2010 中变体的函数 Null
Delphi 2010中的这个功能在哪里?
在 Delphi 6 中,它位于 Variants 中。
variant - 如何通过 COPYDATASTRUCT 发送 VARIANT_bstr
我需要使用 COPYDATASTRUCT 将 VARIANT 值发送到另一个应用程序。这是我用来发送消息的结构。
在我的代码中,我将 VARIANT 初始化为类型 BSTR 并分配一个字符串,如下所示。
然后我使用 COPYDATASTRUCT 发送它,如下所示。
此消息成功接收到我的第二个应用程序,但是,当我将其转换回原始结构时,“bstrVal”表示错误的指针。
我正在努力解决这个错误,所以期待您的宝贵帮助。请注意,其他 varinat 类型(int、double)可以成功转换回来,并且此错误仅与 bstr 相关。:(
谢谢你