Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.28.48] |
|
Сообщ.
#1
,
|
|
|
Пытаюсь добавить строковый массив в таблицу выдаёт ошибку.
private: System::Void buildWordList() { String ^line = ""; setlocale(LC_ALL, "En_US"); std::string str[5] = {"sss","aaa","ddd","ggg","sdawd"}; clue_window->clue_table->Rows->Add(str[2]); } ОШИБКА c:\documents and settings\мои документы\visual studio 2008\projects\proj5\proj5\Form1.h(369) : error C2664: int System::Windows::Forms::DataGridViewRowCollection::Add(...cli::array<Type,dimension> ^): невозможно преобразовать параметр 1 из 'std::string' в 'System::Object ^' 1> with 1> [ 1> Type=System::Object ^, 1> dimension=1 1> ] 1> Оператор определенного пользователем преобразования недоступен, или 1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен 1> Если убрать str[2] и записать какое-нибудь слово, то тогда сработает. |
Сообщ.
#2
,
|
|
|
Попробуйте чистый способ: ...Add( str[2].c_str() );
|
Сообщ.
#3
,
|
|
|
Цитата Katerina1993 @ Пытаюсь добавить строковый массив в таблицу выдаёт ошибку. Вообще ничего не понятно из написанного. Какой тип имеет Rows? : Цитата Katerina1993 @ clue_window->clue_table->Rows Добавлено Вот тебе пример, работает в консоли: #include "stdafx.h" #include <string> using namespace System; using namespace System::Collections::Generic; int main(array<System::String ^> ^args) { const int cArraySize = 5; List<String^>^ wordList = gcnew List<String^>(); std::string str[cArraySize] = { "sss","aaa","ddd","ggg","sdawd" }; for(size_t idx = 0; idx < cArraySize; ++idx) { wordList->Add(gcnew String(str[idx].c_str())); } for (int idx = 0; idx < wordList->Count; ++idx) { System::Console::WriteLine(wordList[idx]); } System::Console::ReadKey(); return 0; } |
Сообщ.
#4
,
|
|
|
Спасибо, но я уже разобралась. Оказывается в Visual C++ есть справка достаточно нажать F1. Там есть примеры работы с массивом. Вот мой вариант.
private: System::Void buildWordList() { String ^line = ""; setlocale(LC_ALL, "En_US"); array<String^>^ str = {"test","test2"}; clue_window->clue_table->Rows->Add(str[0],str[1]); } |