【问题标题】:Initialize COM object / Translate VB code to C++初始化 COM 对象/将 VB 代码翻译成 C++
【发布时间】:2009-03-10 08:43:06
【问题描述】:

任何人都可以将以下代码翻译成 C++ 吗?这是否可能,还是缺少重要信息?

调暗激光作为物体 子启用激光 ' 如果尚未完成,请创建一个激光对象 如果激光什么都不是 设置激光 = CreateObject("NWLaserXControl.NWLaserX") 万一 If Laser.Initialize Then Laser.RepRate = 10 ' 将重复频率设置为 10Hz Laser.LaserEnabled = True '打开激光电源,准备好 万一 结束子

【问题讨论】:

    标签: c++ com


    【解决方案1】:
    // if (CoInitialize(0) == S_OK)
    {
        CComPtr<INWLaserX> pMyPtr = NULL;
    
        CLSID clsid = IID_NULL;
        CLSIDFromProgID("NWLaserXControl.NWLaserX");
    
        if (pMyPtr.CoCreateInstance(clsid) == S_OK)
        {
             pMyPtr->put_RepRate(10);
             pMyPtr->put_LaserEnabled(TRUE);
        }
    
       // CoUnInitialize();
    }
    

    【讨论】:

    • @Vinay:+1,但应该提到您可能不需要每次都调用 CoInitialize。应用启动一次,拆解一次(如果你有一间公寓)就可以了。
    • 您可以使用 CLSIDFromProgId 获取 CLSID。
    • 将“TRUE”替换为“VARIANT_TRUE”会更简洁。
    猜你喜欢
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2011-10-31
    • 2011-06-05
    • 2011-08-13
    • 2016-08-04
    相关资源
    最近更新 更多