问题标签 [idl]
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.
c++ - 在 Windows 中通过 RPC 发送 UDT
我开始掌握 Windows 中的 RPC,并且我有一个基本的客户端/服务器模型设置和工作,我可以在 2 OK 之间传递一个字符串,但我现在需要扩展它以在 2 之间传递一个二进制结构我不知道该怎么做。显然,尝试传递 void* 将不起作用,因为 MIDL 编译器不知道结构大小,但我希望有一种方法可以在 IDL 中定义结构以使其工作。我当前的 IDL 如下所示:
我的结构是这样的:
有没有办法在 IDL 中定义它并传递它?
谢谢,J
c# - C# 使用 INT_PTR 实现 IDL 声明
我们在 idl 文件中声明了一个方法,如下所示:
我们用这个方法在 C# 中实现它:
这在构建 32 位时工作正常,但是当我们构建 x64 时,类型不匹配,因为 idl 正在寻找 64 位值,而 c# 需要 32 位值。
在 C# 中使用 IntPtr 不起作用,因为代码在 C# 中需要 long 或 int。
我可以在 c# 方法中使用任何类型,根据平台编译为 long 或 int 吗?
我宁愿不必通过两次使用该函数来复制代码,而且由于向后兼容性,我不确定我们是否可以将 IDL 更改为仅使用 Int64。
任何帮助,将不胜感激。谢谢
corba - 是否可以在 Rhapsody 生成的 IDL 文件和 CORBA 3.1 之间完全兼容?
我尝试使用最新版本的 TAO IDL Compiler(已发布的软件包版本 6.0.2)从 Rhapsody 7.1.1 编译生成的 IDL 文件,但由于 CORBA 3.1 中不推荐使用匿名类型,因此出现了一些错误。
可以使用 TAO IDL 编译器“-as”选项抑制此类错误。但是,出于维护原因,我想生成兼容的 IDL 文件。
此外,我从与接口转发相关的 TAO IDL 编译器中得到其他错误。这生成的 IDL 文件可以正确编译,直到 TAO 版本 5.7.9 (1.7.9)。
编辑:
接口转发的主要问题是已经定义的接口的转发隐藏了该接口的内容。
例子:
idl
B.idl
如果我删除 A 的前向没有问题,但我不能因为 IDL 文件是由 Rhapsody 通过这种方式生成的。
mercurial - mercurial:忽略从 .idl 生成的 .h
是否可以在 mercurial 中使用 .hgignore 来忽略从 idl 文件生成的头文件?
我在 VS2008 中有一个非常大的项目,默认情况下,midl 工具从同一文件夹中的 .idl 文件生成 .h 文件并具有相同的名称。自然,我不希望生成的文件受到控制。如果同一文件夹中有 xxx.idl 文件,是否可以将 mercurial 配置为忽略 xxx.h 文件?
我的问题还有其他解决方案吗?为这 100 个项目重命名文件需要很长时间,这不是我真正想要考虑的选择......
c++ - 如何控制使用 MPC 时清理的输出目录和文件?
我正在试验 OpenDDS(和 ACE/TAO),它使用 MPC(Make Project Creator)来生成实际的 make 文件,它正在做一些非常烦人的事情。
首先,它生成大量中间源文件(一些 IDL 和 c++ 头文件/实现),并将它们与手动创建的 IDL 和 C++ 文件放在同一目录中。我想让手动创建的文件和生成的文件位于不同的目录中,因为所有生成的文件都会分散注意力。有没有办法做到这一点?
其次,让我运行“make clean”它会清理生成的目标文件,但不会清理生成的源文件。有没有办法让它清理所有生成的文件?
idl - 接口定义语言
任何人都可以向我解释高级别的接口定义语言的含义。为什么使用它以及如何和在哪里使用它。任何电子书、具体定义和示例也会有所帮助。
任何工作过/使用过这个的人请分享你的知识。请不要用谷歌搜索资源。
提前致谢。
问候, 高拉夫
backwards-compatibility - IDL/ODL 的向后兼容性
谁能告诉我在哪里可以阅读 Microsoft 定义的 IDL。我需要了解如何通过向接口添加新成员来更改 IDL 文件。我对保持向后兼容性有些困惑。
我正在用 VS6 编程(ActiveX 编程)。
提前致谢。
达特
com - 在 Vista 上注销类型库
通过增加库版本,我在 IDL 文件中犯了一个错误。之后我恢复版本。自从我无法使用库以来,因为 VB6 仍然写:“有新版本的库*你想升级到 3.0 版” ....
在 OLE/COM 对象查看器中,我看到注册了我的库的某些版本。存在某种方式如何注销这些类型库?我尝试从计算机中删除 DLL 和 TLB 文件,从 Windows 寄存器中删除所有键……但是“Visual Basic 6”和“OLE/COM 对象查看器”仍然有关于它的信息。
谢谢
c# - IDL 文件中的接口声明位置
我正在开发一个项目,该项目将使用 COM / MFC 广泛编写的(非常)旧(并且相当大)程序升级为使用 WPF / 托管 .NET 组件,其中一部分试图移植在 IDL 中声明的旧 COM 接口到托管的 C# 接口。在“库”块内部和外部声明的接口有什么区别?
c++ - MIDL 有没有办法关闭 C 样式的标头生成?
我有一个简单的 .IDL 文件 (iface.idl),它描述了一个基于 IUnknown 的接口:
当试图编译它时,midl /header iface.h iface.idl
我得到了 3 个文件:iface.h、iface_i.c 和 iface_p.c。iface.h 文件包含 ISunpathCalc 接口的 C++ 声明:
该文件剩余的较大部分包含不必要的 C 内容。
问:有没有办法告诉 MIDL 只生成标头的 C++ 部分?是否可以关闭 iface_i.c 和 iface_p.c 文件的生成并强制 MIDL 生成 C++ 定义?
UPD1:
我尝试添加此处指定的 [local] 属性:
但没有任何成功。