Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.137.169] |
|
Сообщ.
#1
,
|
|
|
Чтото я Net не понимаю
Структура __gc struct DATA { String *path; String *file; bool flag; } DATA *datatmp __gc [] = new DATA*[2]; datatmp[0]->flag = true; Почему вываливается error: "Object reference not set to an instance of an object" ? B еще в догонку: String *d,*f,*c; Хочу что бы было d = f + c Как это здесь сделать. + не определен в String? |
Сообщ.
#2
,
|
|||
|
CString d,f,c; d = f + c + "werq"; |
Сообщ.
#3
,
|
|||
|
CString -MFC класс (с ним то работать я умею), а я говорю о System::Object::String |
Сообщ.
#4
,
|
|
|
во первых на сколько я помню в MC++ для структур надо __value, а для управляемых классов __gc.
а во вторых МС++ не сильно заточен под .NET, лучше пиши на C#, и проблем не будет, во всяком случае наких. |
Сообщ.
#5
,
|
|||
|
Можно и __gc (сруктуры и классы все же тоже самое прочти) К сожелению надо С++ |
Сообщ.
#6
,
|
|
|
я не понемаю эту жесткую привязку к языку, ведь .NET это многоязыковая платформа и язык большей роли не играет(всеравно все компилится в MSIL),
а если тебе нужно явно работать с указателями, то можешь на том же C#, создать unsafe(неунравляемую функцию и тогда C# превращается в С ну или почти в С). вот пример: using System; namespace ConsoleApplication1 { /// <summary> /// Summary description for Class1. /// </summary> /// public unsafe struct gt { public int i; public char ch; public gt* prev; public gt* pbeg; } class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { Poy(); } public unsafe static void Poy() { gt f = new gt(); f.i = 12; f.ch = 'd'; f.prev = null; gt r = new gt(); r.i = 13; r.ch = 'e'; r.prev = &f; r.pbeg = &r; f.pbeg = &r; Console.WriteLine("{0} {1}", f.pbeg->ch, r.prev->ch); } } } |
Сообщ.
#7
,
|
|
|
да к стати в C# со string нет ни каких проблем:
string a = "Hello "; string b = a + "Word"; Console.WriteLine(; |
Сообщ.
#8
,
|
|||
|
2hFoxy: Ну блин, сказано MC++ значит МС++, чего предлагать то, что человеку не нужно? А почему не нужно, он сам разберется или спросит. 2slan: Внимательней читай вопрос, прежде чем отвечать, ок? не обижайся, все ок, но МФЦ тут действительно нипричем Используй метод Concat или напиши свой враппер и перегрузи оператор + |
Сообщ.
#9
,
|
|||
|
Слегка не помню, пока негде посмотреть... а там не что-нить вроде DATA *datatmp __gc [] = new DATA __gc[2]; должно быть? гляну попозже... |
Сообщ.
#10
,
|
|||||
|
Блин, new[] инициализирует массим, но не элементы, если они не value-type. Надо добавить
По поводу второго примера: __gc * указатель это всё ещё указатель, поэтому
Всё это есть в MSDN |
Сообщ.
#11
,
|
|||||
|
Xm это интересно НАсчет структуры я поменял __value struct DATA и все нормально
Я просто пишу часть функции а она на С++ Ребята еще вопрос: Правильно что управляемые типв и STD не дружат попробывал vector <String> dfd; Error. System::Array явно не заменяет Std Или они что-то замену имеют. Сорри за вопросы с FrameWork буквально на днях стал работать |
Сообщ.
#12
,
|
|||
|
|
Сообщ.
#13
,
|
|
|
2kl : Спасибо,позновательно
Честно говоря решил не мучится подключил Header MFC и использую CString и STL. РЕшил вернуться к FrameWork позже |
Сообщ.
#14
,
|
|
|
Есть namespace System.Collections - в нём есть все (или почти все) коллекции из std::
|