【问题标题】:What is the equivalent for win32com.client.GetObject() in CPP?CPP 中 win32com.client.GetObject() 的等价物是什么?
【发布时间】:2021-12-16 19:59:14
【问题描述】:

CPP 中 win32com.client.GetObject() 的等价物是什么?

我正在尝试在 CPP 中获取 SAPGUI 对象

SapGuiAuto = win32com.client.GetObject("SAPGUI")

参考以下文章中的这些引语 - https://blogs.sap.com/2020/08/02/sap-gui-scripting-api-from-the-past-for-future-automation/

SAP GUI 脚本 API 位于文件 sapfewse.ocx(FEWSE = 前端 Windows 脚本引擎)中,位于目录 C:\Program Files (x86)\SAP\FrontEnd\SapGui。它是一个组件对象模型 (COM) 库并在 Windows 注册表中注册。通过这种方式,您可以从任何支持 COM 的编程语言中使用它

【问题讨论】:

    标签: c++ windows com sap-gui


    【解决方案1】:

    没有“C++”的方式来做到这一点。但是,在 Windows 上使用 Microsoft 库可以做到这一点。

    我建议使用CComDispatchDriver 类。尚未对此进行测试...但它会让您接近。

    // .. include standard windows stuff
    #include <comdef.h>
    #include <atlbase.h>
    
    class ComInit
    {
    public:
        ComInit()
        {
            CoInitialize(NULL);
        }
        
        ~ComInit()
        {
            CoUnintialize();
        }
        
        ComInit(const ComInit& ) = delete;
        ComInit& operator=(const ComInit&) = delete;
    };
    
    
    int main(int argc, char* argv)
    {
       ComInit _cominit;
       
       
       
       CComDispatchDriver disp;
       disp.CoCreateInstance(L"Excel.Application");
       
       _variant_t vName;
       disp.GetPropertyByName(L"Name", &vName);
       
       return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-31
      • 2014-05-08
      • 2014-06-12
      • 1970-01-01
      • 2022-11-28
      • 2021-06-19
      • 2012-07-20
      • 2023-03-30
      • 2011-04-08
      相关资源
      最近更新 更多