使用R脚本中的COM

时间:2017-06-26 15:10:29

标签: r com activexobject

我希望能够从R脚本中启动并调用COM对象(显然在Windows中)。有一个名为RDCOM http://www.omegahat.net/RDCOMClient/

的库
  1. 它不支持VARIANT数据类型 - 以及COM对象 期望VARIANT作为参数并返回其中的数组

  2. 它维护了吗?有积极的选择吗?

  3. 我需要调用的是.idl文件中定义的函数(idl文件被编译为创建COM对象 - 除非你想知道对象的确切深度,否则不重要)

    [id(3), helpstring("method GetQuestionList")] HRESULT GetQuestionList([out] VARIANT* nQuestionCount,[out] VARIANT* arrNames, [out] VARIANT* arrIndents, [out] VARIANT* arrTypes);

    在这个方法中,字段通过引用传递 - 在VB中你可以像这样调用它

            Dim myObject = CreateObject("AskiaAPI.Analyse")
            Dim arrIndents, nQuestionCount, arrNames, arrTypes As Object
            myObject.GetQuestionList(nQuestionCount, arrNames, arrIndents, arrTypes)
    
            Dim nQuestion 
            For nQuestion = 0 To nQuestionCount - 1
                lstResults.Items.Add(nQuestion & ": " & arrNames(nQuestion))
            Next nQuestion
    

    在上面的代码中,变量nQuestionCount,arrNames,arrIndents,arrTypes由GetQuestionList初始化(这就是它们通过引用传递的原因)。在该示例中,lstResults将是用于显示其中一个参数的内容的ListBox。

    欢迎任何提示或想法!

0 个答案:

没有答案