2009-03-09 20 views
1

Aşağıdaki kodu C++' ya çevirebilir mi? Bu mümkün mü yoksa hayati bilgiler eksik mi?COM nesnesini başlat/VB kodunu C++ 'ya çevir

@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 

cevap

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, ama muhtemelen CoInitialize her zaman aramaya gerek olmadığını belirtmek gerekir. Uygulama açılışında bir kez ve bir kez de (eğer bir daireniz varsa) iyi durumda. – casperOne

+0

Evet haklısınız, buna göre güncelleştirildi – Vinay

+0

CLSID'yi CLSIDFromProgId kullanarak alabilirsiniz. – Ismael