Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

использование вектора в clr

5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
Доброго времени суток. Вопрос такой: корректно ли использовать библиотеку STL под CLR? просто, например, хочу сделать глобальный управляемый вектор ref-структур(что-то типа такого):
#include <cliext/vector>
#include <cliext/algorithm>

cliext::vector<card^>^ pack;//Определяется в хедере класса

И потом хочу использовать его
using namespace cliext;
pack = gcnew vector<card^>;
pack->push_back(newCard);

В итоге выдает следующее:
error LNK2022: metadata operation failed (801311D7) : Differing number of fields in duplicated types (cliext.impl.vector_impl<card ^,0>): (0x020001ac).
Как правильно использовать вектора под clr?
5
19 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Karrde
Доброго времени суток. Вопрос такой: корректно ли использовать библиотеку STL под CLR? просто, например, хочу сделать глобальный управляемый вектор ref-структур(что-то типа такого):

System.Collections.Generic.List<> чем не сгодился? STL в CLR бесполезна чуть менее чем совсем.

5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
Спасибо. попробую
5
19 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Karrde
Спасибо. попробую


Глобальной переменной (в терминах С/С++) управляемого типа вам создать не получится, управляемый тип нужно оборачивать в gcroot или же пользоваться статическими полями управляемых типов (классов).

5.1K
19 марта 2010 года
Karrde
88 / / 15.10.2007
Сорри, не совсем понял(и мозги уже плохо варят). То есть так объявить нельзя?
List<card^>^ pack;
так, чтобы было видно в других функциях:
pack = gcnew List<card^>;

Выскакивают ошибки, связанные с IServiceProvider
5
19 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Karrde
Сорри, не совсем понял(и мозги уже плохо варят). То есть так объявить нельзя?

Изучите статью. Ссылку я вам дал.

307
19 марта 2010 года
Artem_3A
863 / / 11.04.2008
вектора в CLR...0_о вот это изврат! хотя вообще весь CLR изврат! Справедливости ради отмечу, что использовать то можно, но вот только это чревато кучей непонятных ошибок и всяких не веселых несовместимостей!=) а вообще переходите на C#, формочки писать самое оно!=)

и не соглашусь относительно бесполезности STL, пару раз он мне заметно экономил время, не надо его зря обижать!=)
5
19 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Artem_3A
и не соглашусь относительно бесполезности STL, пару раз он мне заметно экономил время, не надо его зря обижать!=)

Сила STL в его итераторах, а для управляемого кода они бесполезны.

307
19 марта 2010 года
Artem_3A
863 / / 11.04.2008
Цитата: hardcase
Сила STL в его итераторах, а для управляемого кода они бесполезны.



ну тут мне пожалуй возразить не чего! =)

5.1K
20 марта 2010 года
Karrde
88 / / 15.10.2007
Спасибо за помощь. проблема решена)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог