2009-03-09 2 views
1

누구든지 다음 코드를 C++로 변환 할 수 있습니까? 이것이 가능합니까 아니면 중요한 정보가 누락 되었습니까?COM 개체 초기화/VB 코드를 C++로 변환

@Vinay
 
Dim Laser As Object 
Sub EnableLaser 
    ‘ Create a laser object if it hasn’t been done yet 
    If Laser Is Nothing Then 
     Set Laser = CreateObject("NWLaserXControl.NWLaserX") 
    End If 
    If Laser.Initialize Then 
     Laser.RepRate = 10 ‘ set the rep rate to 10Hz 
     Laser.LaserEnabled = True ‘ turn on laser power supply, get it ready 
    End If 
End Sub 

답변

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(); 
} 
+0

: +1,하지만 당신은 아마으로 CoInitialize 때마다 호출 할 필요는 없습니다 언급해야한다. 앱을 시작할 때 한 번, 한 번 티 아웃 (한 아파트가있는 경우)을 한 번하면됩니다. – casperOne

+0

네, 맞습니다. 그에 따라 업데이트됩니다. – Vinay

+0

CLSID는 CLSIDFromProgId를 사용하여 얻을 수 있습니다. – Ismael