Портирование с VS.NET на VB.

Язык C#: программирование на C#, портирование кода C# на VB и VB на C#.

Модератор: Ramzes

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Портирование с VS.NET на VB.

Сообщение kibernetics » 10.10.2007 (Ср) 11:16

Люди, помогите перенести код с Си на VB...
В Си много чего не понимаю. Суть такая, есть пример исходника по записи компакт-дисков в мультирежиме(используется длл-ка).
Т.е. допустим, в системе CD-Record'ов штук 8, и надо осуществить на них одновременную запись.
Есть пример мультизаписи от разработчика, но для VS.NET 2005, VS.NET 2003 и для С++6.0. Для VB6.0 нет примера, есть пример только записи, но на один привод. хотя разраб утверждает, что и на ВБ код мультизаписи осуществим, нужно лишь перенести со студии по аналогии в ВБ. Но у меня не получается.
Вот событие на батон MULTIBURN:
Код: Выделить всё
void MultiDataWriterDlg::OnBtnClick_WriteDisc()
{
   CString sTemp;

   //Call out generic write check function
    if(CheckWriteDisc() == FALSE)
      return;

    //Get VolumeID
   m_txtVolumeID.GetWindowText(sTemp);

   BURNDATAVECTOR::iterator vIt;

   //Reset our burning flag
   for (vIt= m_vBurnData.begin();vIt!=m_vBurnData.end();vIt++)
   {
      BurnData* data = (BurnData*)&(*vIt);
      data->m_bDone = FALSE;
   }


   //Reset all data images
   for( vIt= m_vBurnData.begin();vIt!=m_vBurnData.end();vIt++)
   {
      BurnData* data = (BurnData*)&(*vIt);
      
      //Set our Volume properties
      //We//re only the setting the Volume Identifier..
      //You could set all the volume descriptors however
      data->m_pDataImage->GetVolumeInfo()->VolumeID = (LPCTSTR)sTemp;

      //Set the properties of the image

      //Write in Multi-session mode
      data->m_pDataImage->DataWriteMode = dmMS;
         

      //Use Burn Proof/JustLink on this write?
      data->m_pDataImage->BufferProtect = data->m_pDevice->IsFeatureSupported(dfBufferProtection);

      //Set Write Speed to max
      data->m_pDataImage->WriteSpeed = data->m_pDevice->GetMaxWriteSpeed(); //Max
      
      //Start the disc writing process..this should always return True
      //Finally - Write the disc....
      if(data->m_pDataImage->WriteDisc(data->m_pDevice) == VARIANT_FALSE)
      {
         CString sMsg;
         sMsg.Format(_T("Disc Write could not be started for device '%s'!"),
            (LPCTSTR)data->m_pDevice->GetDeviceString());

         AfxMessageBox(sMsg);
         AfxMessageBox(data->m_pDataImage->GetWriteError()->GetErrorMsg());
         AfxMessageBox(data->m_pDataImage->GetWriteError()->GetDeviceError()->GetErrorContextMsg());

      }
      else
      {
         //Disable the form while wrtiing
         EnableControls(FALSE);
         //Events will indicate the status as well as ...
         //when the burn is completed, cancelled or had an error.
      }
   }

}


В VB запись на один привод выглядит так:
Код: Выделить всё
Private Sub cmdWriteDisc_Click()
   
    'Call out generic write check function
    If CheckWriteDisc() = False Then Exit Sub
   
    'Set our Volume properties
    'We're only the setting the Volume Identifier..
    'You could set all the volume descriptors however
    mobjDataImage.GetVolumeInfo().VolumeID = txtVolIdentifier.Text
   
    'Set the properties of the image
    With mobjDataImage
                       
        'If we were buring mutiple images at same time,
        'the ImageID is user - defined ID
        .ImageID = 1 'We aren't buring multiples.
       
        'Set Write Speed
        .WriteSpeed = cboWriteSpeed.ItemData(cboWriteSpeed.ListIndex)
       
        'Also write selected volume type
        .VolumeType = cboVolumeType.ItemData(cboVolumeType.ListIndex)
               
        'Auto Verify
        'This is valid only for data Mode1/Mode2 (not Audio)
        .VerifyData = (chkAutoVerify.Value = vbChecked)
       
        'Rare usage - best unchecked unless required
        .Mode2XA = (chkUseMode2XA.Value = vbChecked)

        'Use this setting if creating an image from network files or when
        'creating an image with a substantial amount of small files
        'Only valid for Data images (ISO/Joliet not Audio discs)
        'Maximum cache is currently limited to 4.2GB by FAT32
        .CacheMode = (chkCacheImage.Value = vbChecked)
       
        'Test mode is invalid for Multi-session write attempts
        .TestMode = (chkTestWrite.Value = vbChecked)
       
        'Close Disc - Automatic if in DAO write mode
        .CloseDisc = (chkFinalizeDisc.Value = vbChecked) 'Finalize

        'Use Burn Proof/JustLink on this write?
        .BufferProtect = (chkUseBufferProtect.Value = vbChecked)
       
        'Write mode - Disc at once or Multi-session?
        If chkDiscAtOnce.Value = vbChecked Then
            .DataWriteMode = dmDAO 'Disc at once
        Else
            .DataWriteMode = dmMS 'Multi-session
        End If
       
    End With
       
    'Start the disc writing process..this should always return True
    'Finally - Write the disc....
    If mobjDataImage.WriteDisc(mobjDevice) = False Then
        MsgBox "Disc Write could not be started.", vbCritical, App.Title
    Else
        Call EnableForm(False) 'Disable the form
        'Events will indicate the status as well as ...
        'when the burn is completed, cancelled or had an error.
    End If
End Sub


помогите плис, переделать код под ВБ, чтоб заюзать мультизапись!

Вернуться в C#

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList