标签: idl

为什么IDL默认值值看起来是圆形的?

我有一个COM对象,其函数具有可选的最后一个参数.IDL有点像这样:

interface ICWhatever: IDispatch
{
  [id(96)] HRESULT SomeFunction([in,defaultvalue(50.6)]float parameter);
};
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作:如果我没有指定参数,则填充50.6.但是在几个开发环境(Excel VBA,VB6)中,默认值在显示之前被舍入.输入开括号后,我看到:

SomeFunction([ 参数As Single = 51 ])

有人知道为什么吗?这是一个错误吗?这会让客户程序员感到困惑......

vb6 com vba idl

6
推荐指数
1
解决办法
429
查看次数

如何正确隐藏intellisense中的方法和属性

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

我正在为自动化测试编写API钩子,我们不希望它们暴露给消费者.这看起来很适用于我们的应用程序自带的内置SaxBasic编辑器,但是当引用添加到我们的互操作程序集时,无法隐藏对象,方法和属性.

这是我试图隐藏这些内容的一个例子; 已经尝试了各种排列,提前感谢!

    [
    object,
    uuid(guid),
    helpstring("help"),
    version(ver),
    dual,
    nonextensible,
    oleautomation,
    pointer_default(unique)
]IApplication.VisibleObj
interface IObj : IDispatch
{
        //tried [hidden] here, no luck
 [propget, id(91001), helpstring("Help str. Available as of Object Model Version X.X.X."), hidden]//again tried [hidden] here, no luck
    HRESULT Obj([out, retval] IObj** ppObj);
}
Run Code Online (Sandbox Code Playgroud)

c++ com interop idl

6
推荐指数
1
解决办法
549
查看次数

从C头文件生成Ocaml绑定存根

我有一个头文件,它为某个库声明了一个C API,我想为这个库创建一个OCaml绑定.我发现camlidl可以从IDL文件创建存根,但据我所知,没有从*.h文件到IDL的自动转换,所以现在我想知道是否还有其他方法可以从C头文件生成OCaml绑定的存根?

ocaml idl

6
推荐指数
1
解决办法
553
查看次数

为什么Mozilla使用IDL编写JavaScript文档

阅读有关fileReader的文档,并发现他们使用void运算符编写方法,如下所示:

void readAsArrayBuffer (
        in Blob blob
);
Run Code Online (Sandbox Code Playgroud)

只是试着明白为什么他们这样写呢?如果有这种语法的实际用途?

事后证明它根本不是js,而是IDL,它是接口描述语言.

仅供参考:在提出这个问题之前,我会谷歌并阅读JS中的实际void运算符.所以请没有需要让我回来.问题有点模糊,但它必须处理,为什么Mozilla有关于这样编写的JavaScript的文档?在IDL中,实际的JavaScript几乎没有?

javascript api idl webidl

6
推荐指数
1
解决办法
977
查看次数

如何使用avro IDL为枚举指定默认值?

我没有在文档中找到任何关于此的内容,只有关于默认值的泛型bla.我的假设是它应该像这样工作:

enum MyEnum {
   UNSPECIFIED,
   SPECIFIED
}

record Test {
   MyEnum e = "UNSPECIFIED";
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Java中的GenericDatumReader抱怨他正在寻找一个字符串,但期望一个MyEnum.

任何人都可以确认这是使用avro IDL使用具有默认值的枚举的正确方法吗?在那种情况下我在其他地方有一个错误.任何人都可以确认这不是这样做的方法并纠正我吗?任何输入都表示赞赏!

更新:在我的真实世界版本中,似乎新添加的记录枚举导致问题,即使它具有默认值.这意味着我的读者架构需要枚举,而记录不包含枚举.模式演变应该能够解决这个问题,但似乎失败了.更多细节:我在这里与Pig合作,而不是直接Java.

java enums idl avro

6
推荐指数
1
解决办法
3117
查看次数

在 Avro (1.8.0) IDL 中,我可以将 array<string> 生成为 java.util.HashSet 吗?

我正在使用 Avro IDL 生成记录。

将我的 String 类型设置为 String 并将 fieldVisibility 设置为 PRIVATE,使用以下输入:

record MyRecord {
        @java-class("java.util.HashSet")  array<string> flagged;
}
Run Code Online (Sandbox Code Playgroud)

Avro 生成

@SuppressWarnings("all")
@org.apache.avro.specific.AvroGenerated
public class MyRecord extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
  private static final long serialVersionUID = -7930925833711109001L;
  public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"MyRecord\",\"namespace\":\"com.example\",\"fields\":[{\"name\":\"flagged\",\"type\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"avro.java.string\":\"String\"},\"java-class\":\"java.util.HashSet\"}}]}");
  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
   private java.util.List<java.lang.String> flagged;
Run Code Online (Sandbox Code Playgroud)

我期望:

   private java.util.HashSet<java.lang.String> flagged;
Run Code Online (Sandbox Code Playgroud)

是否可以array使用 Set 语义进行工作?

java code-generation idl maven-plugin avro

6
推荐指数
0
解决办法
721
查看次数

In Avro IDL, how can I import an externally provided schema?

A simple example illustrates my problem.

In essence, I am working on a large project that has code split across multiple repositories. In repo 1 there is an Avro schema "S1" defined in an .avdl file which gets compiled into its Avro generated class.

In repo 2, which pulls the compiled artifacts of repo 1 in as dependencies, I need to create a new schema that has multiple records and also needs to embed the "S1" schema of repo 1. …

idl avro

6
推荐指数
1
解决办法
2745
查看次数

在ridl中包含文件

我正在处理的 Delphi 项目要求我创建一个非常大的类型库以添加 COM 支持。Delphi 中的类型库/ridl 编辑器的问题在于,管理(从程序员的角度来看)这么大的文件变得很困难,我想沿着功能线拆分它。我遇到的问题是我看不到将一个ridl文件包含在另一个文件中的方法。我知道 importlib 函数,但我也找不到在同一个项目中创建多个类型库的方法,或者从 delphi 中创建一个 tlb 文件。谁能给我一些关于如何更好地管理这个的想法?

delphi idl

5
推荐指数
1
解决办法
726
查看次数

是否定义了在COM接口中传递的结构的打包?

我正在使用第三方COM服务器,它有自己的自定义接口,可以设置和获取结构作为它的一些属性.碰巧我正在为客户端使用C++.我在下面的IDL文件中发布了一些代表性代码,更改了名称并删除了GUID.

是否定义了结构的包装或者我的客户端代码是否恰好使用与COM服务器构建的相同打包设置?在默认C++编译器打包设置已更改的项目中是否可能出错?是否有可用于确保客户端编译器打包设置正确的pragma包设置?

我无法在IDL或MIDL生成的头文件中看到任何打包编译指示或语句.如果客户端使用的是C#或VB,会发生什么?如果通过IDispatch机制调用,是否更明确地指定了包装行为?

struct MyStruct
{
    int a, b;
};

[
    object,
    uuid( /* removed */ ),
    dual,
    nonextensible,
    pointer_default(unique)
]
interface IVideoOutputSettings : IDispatch{

    [propget, id(1), HRESULT MyProperty([out, retval] struct MyStruct* pVal);
    [propput, id(1), HRESULT MyProperty([in] struct MyStruct newVal);

    /* other methods */
};
Run Code Online (Sandbox Code Playgroud)

com idl visual-c++

5
推荐指数
2
解决办法
1979
查看次数

avro Idl 中联合的默认值是多少?

对于 avro Idl 中的联合,如下所示,默认值是什么?
1. union {null, string} var = null;
2. union {string, null} = "xyz";
3. union {null, string} = "xyz";
4. union {null, string, array} = [];

我的假设是默认值将始终是联合中的第一项。我的理解正确吗?

apache json idl avro

5
推荐指数
1
解决办法
2999
查看次数

标签 统计

idl ×10

avro ×4

com ×3

java ×2

apache ×1

api ×1

c++ ×1

code-generation ×1

delphi ×1

enums ×1

interop ×1

javascript ×1

json ×1

maven-plugin ×1

ocaml ×1

vb6 ×1

vba ×1

visual-c++ ×1

webidl ×1