标签: idl

如何通过idl中的c ++ com接口从c#传递bool

我知道我错过了一些简单的东西,我几乎没有这些东西的经验.

我想在idl的接口中执行此操作

[id(5), helpstring("Returns true if the object is in a valid state.")]
HRESULT IsValid([out, retval] boolean bValid);
Run Code Online (Sandbox Code Playgroud)

但是这给出了:[out]参数不是指针.

好的,我明白了.

但是,在执行此操作的C#代码中,我无法从方法IsValid()返回bool*,因为它不安全.

我返回布尔值的正确方法是什么?

c# c++ com idl

3
推荐指数
1
解决办法
3101
查看次数

用于CORBA IDL的ctags生成器?

我在多语言环境中工作,并使用Vim + ctags来导航代码.但是我们也使用CORBA和旺盛的ctags不解析IDL文件.

有没有人知道IDL的ctags兼容标签生成器?

vim corba idl ctags

3
推荐指数
1
解决办法
331
查看次数

你如何将IDL翻译成C#?

例如,DOM规范具有各种IDL定义,其中一个是接口节点.您如何将这个 - 甚至是其中的一部分 - 转换为实际的C#?我的意思是,你甚至会在哪里开始?据我所知,C#的接口行为与IDL在此处调用接口的行为大相径庭.我错了吗?

interface Node {

  // NodeType
  const unsigned short      ELEMENT_NODE                   = 1;
  const unsigned short      ATTRIBUTE_NODE                 = 2;
  const unsigned short      TEXT_NODE                      = 3;
  const unsigned short      CDATA_SECTION_NODE             = 4;
  const unsigned short      ENTITY_REFERENCE_NODE          = 5;
  const unsigned short      ENTITY_NODE                    = 6;
  const unsigned short      PROCESSING_INSTRUCTION_NODE    = 7;
  const unsigned short      COMMENT_NODE                   = 8;
  const unsigned short      DOCUMENT_NODE                  = 9;
  const unsigned short      DOCUMENT_TYPE_NODE             = 10;
  const unsigned short      DOCUMENT_FRAGMENT_NODE …
Run Code Online (Sandbox Code Playgroud)

c# dom translation idl class

3
推荐指数
1
解决办法
4404
查看次数

IDL静态接口

对于WinRT,IDL现在支持如下构造:

[marshaling_behavior(agile)]
[threading(both)]
[activatable(0x06020000)]
[version(0x06020000)]
[static(Windows.Networking.Sockets.IDatagramSocketStatics, 0x06020000)]
runtimeclass DatagramSocket
{
    [default] interface Windows.Networking.Sockets.IDatagramSocket;
    interface Windows.Foundation.IClosable;
}
Run Code Online (Sandbox Code Playgroud)

我对这个static属性感到好奇.这是什么意思?它如何与主体内部列出的接口相关runtimeclass

idl interface windows-runtime

3
推荐指数
2
解决办法
1441
查看次数

IDL 的 INT_TABULATE - SciPy 等价物?

我正在将一些代码从 IDL 移到 python 中。一个 IDL 调用是 INT_TABULATE,它在固定范围内执行积分。

INT_TABULATED 函数使用五点 Newton-Cotes 积分公式对闭区间 [MIN(x) , MAX(x)] 上的一组表格数据 { xi , fi } 进行积分。

Result = INT_TABULATED( X, F [, /DOUBLE] [, /SORT] )

结果是曲线下的面积。

IDL 文档

我的问题是,Numpy/SciPy 是否提供了类似的集成形式?我看到它[scipy.integrate.newton_cotes]存在,但它似乎返回“牛顿-科特斯积分而不是面积的权重和误差系数”。

python idl numpy scipy idl-programming-language

3
推荐指数
1
解决办法
1593
查看次数

使用Midl从.idl创建.tlb"期望类型规范"的问题

我和被称为COM Interop的野兽长期相遇...

我目前正在尝试从OLE/COM对象查看器生成的.idl文件生成.tlb.但是,当尝试运行Midl.exe来编译它时,我收到一个错误:

.\Sim.API.IDL(236) : error MIDL2025 : syntax error : expecting a type s
pecification near "ImportFileStatus"
Run Code Online (Sandbox Code Playgroud)

我的.idl文件超过1000行,所以我不特别想在这里发帖,我相信感兴趣的部分是:

typedef [uuid(980B172E-19C1-389A-BB74-29A54737C5B4), version(1.0)    ,
  custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "Sim.API.ImportFileResult")    
 ]
 struct tagImportFileResult {

  ImportFileStatus _status;

  LPSTR _message;
 } ImportFileResult;
Run Code Online (Sandbox Code Playgroud)

然后几行......

 typedef [uuid(A4B9A0FF-A2D4-3EC5-AB7E-69311B9122C8), version(1.0)    ,
  custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "Sim.API.ImportFileStatus")    
 ]
 enum {
  ImportFileStatus_Success = 0,
  ImportFileStatus_VersionMismatch = 1,
  ImportFileStatus_Failure = 2
 } ImportFileStatus;
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,应该尊重这些以修复类型规范错误.但是,如果我这样做,我会遇到一个新问题.

midl\oleaut32.dll : warning MIDL2368 : error generating type library, ignored :
Could not set UUID : tagImportFileResult (0x800288C6)
Run Code Online (Sandbox Code Playgroud)

我对idl格式非常不熟悉,并且使用midl.exe,也许我正在做的事情有些明显错误?

一如既往的任何帮助将不胜感激:)

com idl com-interop typelib midl

2
推荐指数
1
解决办法
3396
查看次数

将类似索引器的属性暴露给COM

我有现有的COM接口.我不想创建一个将新接口公开为COM(带有新GUID)的.net程序集,但接口的结构必须相同.

如何创建一个公开此接口的.net类(C#)?

[
  odl,
  uuid(1ED4C594-DDD7-402F-90DE-7F85D65560C4),
  hidden,
  oleautomation
]
interface _IFlashPhase : IUnknown {

    [propget]
    HRESULT _stdcall ComponentName(
                    [in] short i, 
                    [out, retval] BSTR* pVal);
    [propput]
    HRESULT _stdcall ComponentName(
                    [in] short i, 
                    [in] BSTR pVal);
    [propget]
    HRESULT _stdcall ComponentMolePercent(
                    [in] short i, 
                    [out, retval] double* pVal);
    [propput]
    HRESULT _stdcall ComponentMolePercent(
                    [in] short i, 
                    [in] double pVal);
    [propget]
    HRESULT _stdcall ComponentFugacity(
                    [in] short i, 
                    [out, retval] double* pVal);
    [propput]
    HRESULT _stdcall ComponentFugacity(
                    [in] short i, 
                    [in] double pVal);

};
Run Code Online (Sandbox Code Playgroud)

c# idl com-interop

2
推荐指数
1
解决办法
1006
查看次数

IMetaDataImport和WinRT运行时类接口

在Visual Studio 2012附带的MS IDL版本中,对WinRT的支持添加了以下构造:

        [activatable(Windows.Networking.Sockets.IControlChannelTriggerFactory,
                     0x06020000)]
        [threading(mta)]
        [marshaling_behavior(agile)]
        [version(0x06020000)]
        runtimeclass ControlChannelTrigger
        {
            [default] interface Windows.Networking.Sockets.IControlChannelTrigger;
            interface Windows.Foundation.IClosable;
        }
Run Code Online (Sandbox Code Playgroud)

我正在使用IMetaDataImport来分析winmd文件中的所有类型.如何找出"运行时类"实现的接口以及默认接口的接口?

reflection idl windows-runtime

2
推荐指数
1
解决办法
463
查看次数

如何在 Avro IDL 中使用逻辑类型?

我在 Avro IDL 中尝试了以下代码,该代码引用了逻辑类型时间戳毫秒,但它不起作用。

在 Avro IDL 中使用逻辑类型是否需要导入?或者逻辑类型不可用,我需要使用原始类型(在本例中为 long)?

protocol test {
    record test {
        timestamp-millis time;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

Exception in thread "main" org.apache.avro.compiler.idl.ParseException: Undefined name 'timestamp', at line 3, column 9
Run Code Online (Sandbox Code Playgroud)

这当然有效:

protocol test {
    record test {
        long time;
    }
}
Run Code Online (Sandbox Code Playgroud)

idl avro

2
推荐指数
1
解决办法
3145
查看次数

如何解决java中的Error org.omg.CORBA.BAD_OPERATION异常?

当我在客户端调用方法时,对于分布式引用对象,出现以下消息错误:

Exception in thread "main" org.omg.CORBA.BAD_OPERATION:
        at org.omg.CORBA.portable.ObjectImpl._get_delegate(ObjectImpl.java:18)
        at org.omg.CORBA.portable.ObjectImpl._is_local(ObjectImpl.java:130)
        at fr.esiag.commun._ManageDemandStub.createDemand(_ManageDemandStub.java
:28)
        at fr.esiag.commun.resource.MyInvocationHandler.invoke(MyInvocationHandl
er.java:29)
        at com.sun.proxy.$Proxy0.createDemand(Unknown Source)
        at org.TD.TransactionDriver.main(TransactionDriver.java:55)
Run Code Online (Sandbox Code Playgroud)

有人能告诉我这是什么意思吗?

java corba idl

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