问题标签 [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.

0 投票
2 回答
659 浏览

com - COM 组件的 windows 安装程序

我有一个需要为其制作安装程序的 C++ activex 控件。它需要删除 dll 并制作一些注册表项。

我有大约 6 个 .RGS 文件,我通过 regsvr32 进行自我注册,这些文件可以工作。

要进行安装程序,我手动将 RGS 脚本移植到 Visual Studio 2008 Windows 安装程序注册表 GUI 中。我觉得它不可能做一个确切的端口(例如像 ForceRemove 这样的 RGS 关键字)。

没有办法从 IDL 文件生成这些文件吗?我做错了吗?

0 投票
1 回答
598 浏览

c++ - 如何从智能感知中正确隐藏方法和属性

有谁知道如何在智能感知中正确隐藏类、方法和属性,同时保留调用它们的能力?所以它们不会出现在从类型库生成的互操作程序集中?

我正在为我们还不想暴露给消费者的自动化测试编写 API 挂钩。这在我们的应用程序附带的内置 SaxBasic 编辑器中似乎运行良好,但在将引用添加到我们的互操作程序集时无法隐藏对象、方法和属性。

这是我如何尝试隐藏这些的示例;已经尝试了各种排列,在此先感谢!

0 投票
1 回答
1021 浏览

java - 从 Java 应用程序通过 RPC 与 Windows 进程通信

我正在寻找通过 RPC 与 Windows 进程通信。我想与之通信的应用程序是使用 Visual Studio 2008 在 C++ 中开发的。该应用程序通过一个 idl 文件提供其接口,然后使用 microsoft midl 工具对其进行编译。此应用程序已开发,无法修改。

我希望从我用 Java 开发的第二个应用程序与这个应用程序进行通信。Windows 应用程序提供的功能是否与 RPC 的任何 Java 实现兼容?

根据我在 MSDN 上阅读的内容,Window 应用程序提供的 RPC 符合 DCE。除了几篇 12 年以上讨论 MS jvm 的文章之外,我还没有成功找到有关 Java 中 DCE/RCP 的详细信息。

我也没有成功使用与 jdk 一起打包的 idlj 使用 Windows 应用程序中的 idl 生成 java 代码。idlj 编译器给出了许多关于 idl 文件中的结构和关键字的错误。我假设是因为 MS idl 格式与 idlj 期望的格式不兼容。

有没有人有这种情况的经验?

0 投票
1 回答
439 浏览

c++ - 为 Firefox 可访问性编译 .IDL 文件后出错

我在使用Firefox MSAA () 时遇到了一个非常烦人的问题。我试图从 cmd 编译 IDL 文件,但它失败了。然后我将它添加到项目中并运行构建。在 VS 编译接口文件后,有两个 C 文件 - ISimpleDOMDocument_h.h 和 ISimpleDOMDocument_i.c 我将它们添加到项目中。但是现在我因为这样的错误而无法构建

错误 C1853: 'Debug\TestProj.pch' 预编译的头文件来自以前版本的编译器,或者预编译的头文件是 C++ 并且您从 C 中使用它(反之亦然) d:\projects\testproj\testproj\isimpledomdocument_i 。C

有什么线索吗?

0 投票
2 回答
2044 浏览

c++ - 如何在 COM 接口定义中指定用户定义的类型参数?

我的 COM 接口方法之一需要用户定义类型的参数,如下所示:

怎样才能符合 *.idl 文件中 someUDT 的定义?someUDT类型是用户定义的结构。

谢谢。

0 投票
2 回答
1055 浏览

java - CORBA 序列:我可以用方法定义对象序列吗?

我有一个接口,它的方法应该返回一个项目列表,每个项目都应该有一些与之关联的方法。例如,我想定义一个方法 listAllItems(),它返回一堆“item”对象,这些对象附加了方法(所以我可以让客户端进程选择其中一个项目并说 itemone.buy() 例如,这将在服务器上执行相应的方法)。

我可以在 CORBA 中执行此操作吗?似乎我无法定义“界面项”,然后在其他一些界面中说“序列”。

如果有什么不同,我会将我的 idl 编译为 Java。

谢谢!

0 投票
1 回答
1507 浏览

com - 如何从 OCX 或 TLB 文件中获取导入的类型库?

我确信没有办法找到 ActiveX 的 COM 依赖项,但令我惊讶的是 OLEVIEW 显示了一些评论,例如:

// TLib : // TLib : OLE 自动化 : {00020430-0000-0000-C000-000000000046} importlib("stdole2.tlb"); // TLib:Visual Basic 运行时对象和过程:{EA544A21-C82D-11D1-A3E4-00A0C90AEA82} importlib("3");

我尝试使用 TypeLibInfoFromFile 提取相同的信息,但根据我在 MSDN 中找到的信息,没有提供此信息的 Api。您是否知道从 OCX 或其 Tlb 文件中提取此信息的方法?知道我所有的 ocxes 都是用 vb6 编译的,我可以相信 Imported(Explicitly not in code) 接口的这个信息吗?

0 投票
1 回答
213 浏览

types - IDL 中的可移植地址偏移参数

我正在将旧的 32 位 COM 服务器移植到 64 位架构。

许多函数将缓冲区地址和偏移量作为参数,如 __int3264 和 __int3264 指针。问题是这种类型在 x64 中不会自动生成为 __int64,因为接口是 IDispatch 继承的,并且自动化接口不支持 __int3264!

对于需要地址的函数,我将 __int3264* 替换为 void*。

偏移参数被放置为 __int3264 和 LONG(在自动化 + x64 中均为 32 位)。我不能使用 hyper(映射为 __int64),因为它会在 32 位系统中中断。

我应该对所有偏移量/地址参数使用 void* 还是有另一种方法将它们移植到 x64 COM 服务器?

0 投票
2 回答
308 浏览

java - 将 java 接口移植到 IDL

我有一个想要移植到使用 CORBA 的 java RMI 应用程序。为此,我必须将远程接口定义从 java 更改为 IDL,但我不确定该怎么做。

目前,java 接口中的一种方法的参数不是预定义的数据类型(如字符串、int 等),而是我自己定义的。在 java 接口中,您可以这样定义它:

在 RMI 实现中,对象的传递成为可能,因为客户端和服务器在它们的构建路径上都有类 MyObject 的定义。

所以我想知道如果我将 MyObject 文件放在客户端和服务器上,然后将 IDL 中的方法定义更改为如下所示,它是否会起作用:

或者我是否需要在 IDL 中以某种方式定义此类及其方法?

0 投票
1 回答
1037 浏览

com - 从 TLB 导入的接口上的进程外 COM 服务器的 QueryInterface

我在 A.idl 文件中定义我的接口,我将其编译为 A.tlb

在 VS2005 ATL 项目“B”中,我在 B.idl 中使用 importlib(A.tlb),在 stdafx.h 中使用 #import“A.tlb”,并在 ATL COM 类中从 A.tlb 实现接口 IA。该项目输出一个 B.dll 和一个 B.tlb

我将 B.tlb 添加到 C# 应用程序的引用中,并在代码中实例化 COM 对象。

如果我使用任何一个,实例化工作没有问题

或者

两者都工作正常,对象实例化,我可以将其转换为 A.tlb 中定义的 IA 接口(实际上是从 tlb 生成的 RCW)并调用其方法。仍然没有问题。

然后我使用 OLEView 使用默认的 DllHost.exe 代理启用 COM 对象激活。

代理中 COM 对象的实例化(CoCreateInstance 中的参数 CLSCTX_LOCAL_SERVER)仍然没有问题,但是当我尝试将对象强制转换为 A.tlb 中定义的 IA 接口时,我得到 E_NOINTERFACE和一条消息说 QueryInterface 失败,因为“没有这样的支持接口”。

请帮忙。有什么问题?如果您需要任何其他信息,我会尽量提供。