IDL是什么意思?我用谷歌搜索了它,发现它代表接口定义语言,它用于组件的接口定义.但是,在实践中,IDL的目的是什么?微软是否使用它?
在阅读WHATWG的HTML5 - Web开发人员的技术规范时,我看到许多参考文献,例如:
反映IDL属性中的内容属性
定义了一些IDL属性以反映特定的内容属性.这意味着在获取时,IDL属性返回content属性的当前值,并且在设置时,IDL属性将content属性的值更改为给定值.
和:
在符合文件的情况下,只有一个身体元素.document.body IDL属性使脚本可以轻松访问文档的body元素.
body元素将事件处理程序内容属性公开为Window对象的许多事件处理程序.它还镜像了它们的事件处理程序IDL属性.
我(公认的模糊)理解来自Windows世界.我认为.idl文件用于映射n层分布式应用程序中的远程过程调用.我假设一个内容属性引用了html元素属性.
我可以看到标准中没有地方解释术语"内容属性"和"IDL属性"的用法.任何人都可以解释这些术语的含义以及这两种属性的关系吗?
我有一个IDL文件中定义的接口,我想在C#中使用.有没有办法将IDL转换为C#中可用的东西?
有些语言允许您将常量与接口相关联:
W3C抽象接口也是如此,例如:
// Introduced in DOM Level 2:
interface CSSValue {
// UnitTypes
const unsigned short CSS_INHERIT = 0;
const unsigned short CSS_PRIMITIVE_VALUE = 1;
const unsigned short CSS_VALUE_LIST = 2;
const unsigned short CSS_CUSTOM = 3;
attribute DOMString cssText;
attribute unsigned short cssValueType;
};
Run Code Online (Sandbox Code Playgroud)
我想定义这个接口,以便可以从C#调用它.
显然,C#无法定义与接口关联的常量.
我正在寻找JavaScript类(成员,方法,参数......)的机器可读参考,特别是与HTML5标准(画布,存储等)相关.
到目前为止,我所发现的只是W3C网站上的规范,其中包括规范的一部分,http: //dev.w3.org/html5/2dcontext/ 其中包含CanvasRenderingContext2D的Web IDL,其他页面包含其他部分.
但我必须是盲目的,因为我找不到一些全局索引/摘要,所有有效的IDL按版本/草稿/等分类和分类.
谁知道它在哪里可以找到?
我正在用C++构建一个项目,该项目使用DirectShow的视频捕获库连接到摄像机.视频卡制造商(BlackMagic)提供了.idl(接口定义语言)文件,该文件将新的捕获图形添加到标准集合中.
事实上,我从未遇到过.idl文件,而且非常模糊的"包含文件"方向并没有多大帮助.用#include指令包含它不会引起任何错误,但程序也无法引入我想要添加的各种定义,因为它是我被告知包含在项目中的唯一文件.
我的问题是:如何在项目中包含.idl文件?
我们正在设计一个相当复杂的REST API,其中大多数I/O都是具有特定结构的JSON编码对象.我们发现的一个挑战是以这样一种方式记录API,使客户端更容易发布正确的输入和过程输出.由于输入和输出的数据都需要相当复杂的JSON对象,因此客户端开发人员经常会引入与I/O对象结构相关的错误.
现在有了所有的JSON Web API,我希望得到一个通用的解决方案,但我很难找到一个.我研究了json-schema这是一个json验证模式,但是IETF草案和实现似乎都相当不成熟(尽管它们已经存在了一段时间,这不是一个好兆头).
Protocol Buffers和Apache Avro提供了一种稍微不同的方法,其中模式不用于验证,但实际上需要对消息进行编码/解码.在这两个中,Avro似乎有相当有限的文档和实现.ProtoBuf似乎更好,但我不确定这是否真的适合在浏览器中使用来调用JSON api?
现在我开始怀疑我是否从正确的角度看待这个问题.还有其他方法可以使我的API更强大吗?或者是JSON REST/RPC API的正式描述是否会破坏使用JSON的目的?
编辑:在这个主题后6个月,我们发现了mongoose,这非常接近我们所期待的.
默认的ATL Simple Object在其IDL文件的顶部有以下内容:
import "oaidl.idl";
import "ocidl.idl";
Run Code Online (Sandbox Code Playgroud)
这些文件是什么,以及我如何知道何时需要导入它们?是否有任何文档描述这两个文件中定义的内容?我不知道"oa"和"oc"代表什么,文件本身没有有用的评论.
我在Java IDL中运行CORBA Persistent Object实现
我按照上面的文章中的确切程序
我使用servertool注册Persistent服务器,如例子所示.但当我尝试使用该文章中的语法注册服务器时:
servertool > register -server PersistentServer -applicationName s1
-classpath path_to_server_class_files
我挂起来并没有做任何事情,然后我必须做ctrl+c回到正常模式
这可能有什么问题?
我不得不承认我是WebKit的新手,所以提出正确的问题并不容易.
我所拥有的是来自WebKit.org的WebKit .它更新,构建,我可以调试 - 我在Windows上工作.
我感兴趣的是如何为我拥有的某些IDL文件生成存根文件.我理解高级图片:
我在"WebCore.gypi"中指定了我的IDL文件.我已经在"WebCore.gyp"中指定了我的IDL文件的路径.显然这还不够,因为构建WebKit不会为我的IDL文件生成存根文件.
我曾经怀疑过,我的IDL文件可能包含未定义的属性,但一切似乎都很好.
有小费吗?另外,你知道任何明确的"如何"?
谢谢!
编辑130206:
我挖了一些,显然WebKit与几个构建系统交互; 例如GYP用于Chromium.我老实说没有想到复杂性,所以我没有提到我需要为Safari生成绑定,它具有不同的构建系统,因此它自己独特的"如何".那么,现在的问题是,Safari构建系统如何工作?我在哪里需要放置我的IDL文件?谢谢!