В C++ У меня есть переменная char [256], которая заполняется вызовом внешней DLL, которая заполняет ее данными. Оттуда я хотел бы добавить char [] в качестве элемента ComboBox.Преобразование char [] в System :: Object
char name[256];
name[0] = "76";
comboBox1->Items->Add(name);
Это создает ошибку сборки, поскольку char [] не является типом System :: Object. Любые идеи по преобразованию char [] в то, что я могу добавить в качестве элемента в элемент управления ComboBox? Преобразование в строку было бы прекрасно, но я не совсем уверен, как это сделать. Плюс, если я попытаюсь создать такую переменную, как:
string strName;
также создает ошибку при отсутствии ';' перед идентификатором 'strName'. Я новичок в C++, и до сих пор мой мозг обернулся вокруг, поэтому спасибо за любую помощь!
EDIT Полный код по запросу:
#pragma once
имен FMODMultipleSoundcardWindowed {
#include <string>
#include "inc/fmod.h"
#include "inc/fmod_errors.h"
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace std;
FMOD_SYSTEM *systemA, *systemB;
FMOD_SOUND *soundA, *soundB;
FMOD_CHANNEL *channelA = 0, *channelB = 0;
FMOD_DSP *dspNormalizerA, *dspNormalizerB;
FMOD_DSP *dspCompressorA, *dspCompressorB;
FMOD_DSP *dspEqualizerA[10], *dspEqualizerB[10];
FMOD_DSP *dspVSTVUA, *dspVSTVUB;
FMOD_RESULT result;
unsigned int dspVSTVUHandleA, dspVSTVUHandleB;
unsigned int version;
int numdrivers, count;
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
result = FMOD_System_Create(&systemA);
ERRCHECK(result);
result = FMOD_System_GetVersion(systemA, &version);
ERRCHECK(result);
if (version < FMOD_VERSION)
{
MessageBox::Show("You are using an old version of FMOD!");
}
result = FMOD_System_GetNumDrivers(systemA, &numdrivers);
ERRCHECK(result);
for (count = 0; count < numdrivers; count++)
{
char name[256];
result = FMOD_System_GetDriverInfo(systemA, count, name, 256, 0);
ERRCHECK(result);
m_objPrimaryAudioDeviceComboBox->Items->Add(name[0]);
}
}
void ERRCHECK(FMOD_RESULT result)
{
if (result != FMOD_OK)
{
MessageBox::Show("FMOD Error!");
this->Close();
}
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::ComboBox^ m_objPrimaryAudioDeviceComboBox;
protected:
private: System::Windows::Forms::ComboBox^ m_objSecondaryAudioDeviceComboBox;
private:
System::ComponentModel::Container ^components;
Прагма область Windows Form Designer сгенерированный код
void InitializeComponent(void)
{
this->m_objPrimaryAudioDeviceComboBox = (gcnew System::Windows::Forms::ComboBox());
this->m_objSecondaryAudioDeviceComboBox = (gcnew System::Windows::Forms::ComboBox());
this->SuspendLayout();
//
// m_objPrimaryAudioDeviceComboBox
//
this->m_objPrimaryAudioDeviceComboBox->FormattingEnabled = true;
this->m_objPrimaryAudioDeviceComboBox->Location = System::Drawing::Point(12, 12);
this->m_objPrimaryAudioDeviceComboBox->Name = L"m_objPrimaryAudioDeviceComboBox";
this->m_objPrimaryAudioDeviceComboBox->Size = System::Drawing::Size(254, 21);
this->m_objPrimaryAudioDeviceComboBox->TabIndex = 0;
//
// m_objSecondaryAudioDeviceComboBox
//
this->m_objSecondaryAudioDeviceComboBox->FormattingEnabled = true;
this->m_objSecondaryAudioDeviceComboBox->Location = System::Drawing::Point(12, 54);
this->m_objSecondaryAudioDeviceComboBox->Name = L"m_objSecondaryAudioDeviceComboBox";
this->m_objSecondaryAudioDeviceComboBox->Size = System::Drawing::Size(254, 21);
this->m_objSecondaryAudioDeviceComboBox->TabIndex = 1;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(440, 426);
this->Controls->Add(this->m_objSecondaryAudioDeviceComboBox);
this->Controls->Add(this->m_objPrimaryAudioDeviceComboBox);
this->Name = L"Form1";
this->Text = L"FMOD Multiple Soundcard with VST";
this->ResumeLayout(false);
}
Прагма ан dregion
};
}
Приложение к моему ответу и комментариям ниже: поместите 'include' строка вне 'пространства имен FMODMultipleSoundcardWindowed {'. Else, 'std' заканчивается как' FMODMultipleSoundcardWindowed :: std'. –
Это дает мне доступ к строковому объекту, как было запланировано, и это здорово.Но моя оригинальная проблема заключается в том, что я не могу добавить строку std: как элемент ComboBox, потому что 'не может преобразовать параметр 1 из' std :: string 'в' System :: Object^' – Jeff
Отредактировал свой ответ. –