Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
1

Нужно сделать так, чтобы в CLI работала stl (библиотека шаблонов)

10.12.2012, 16:03. Показов 3256. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добавил в класс Form1 две переменные:

C++
1
2
3
4
5
6
#include <string>
#include <fstream>
....
#pragma endregion
        std::string stroka;
        std::ifstream f;
ошибки:
1>c:\...\Form1.h(62): error C4368: не удается определить "stroka" как член управляемого "ima::Form1": смешанные типы не поддерживаются
1>c:\...\Form1.h(63): error C4368: не удается определить "f" как член управляемого "ima::Form1": смешанные типы не поддерживаются
Отмазки, сказать прямо левые. Никакие это не смешанные типы, а вполне себе нормальные типы, вместо которых MSVS упорно подсовывает монстров всяких навроде

C++
1
2
System::String^
System::IO::FileInfo^
Нe, не выйдет. Нам надо с вами друзья укротить MSVS чтобы использовать старое доброе stl! Спасибо, кто откликнется
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2012, 16:03
Ответы с готовыми решениями:

Как сделать чтобы работала библиотека <graphics.h>
Неужели никак нельзя сделать что бы эта библиотека работала? Если да, то напишите инструкцию как...

Библиотека шаблонов STL
Здравствуйте, как можно сформировать массив множеств ptr, который формируется из строки str = &quot;the...

Стандартная библиотека шаблонов (STL)
Пожалуйста,помогите решить.. Написать программу, которая использует класс string для анализа...

Библиотека стандартных шаблонов STL
1. Создайте пустой целочисленный вектор и поместите в него 10 случайных чисел с интервалом значений...

8
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
10.12.2012, 16:42 2
Цитата Сообщение от kravam Посмотреть сообщение
Нe, не выйдет. Нам надо с вами друзья укротить MSVS чтобы использовать старое доброе stl!
уйди с CLI и
будет тебе щасте
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
10.12.2012, 17:46  [ТС] 3
Да мне счастье не нужно, мне нужно чтобы было Windows Form (это обязательно, я не написал в начале)+ stl;

Не по теме:

Если бы мне не надо было Windows Form сидел бы я на своём Dev-Cpp и не дёргался;



Если я убираю CPL в "поддержкка общеязыковой среды выполнения (CRL)" (активирую пункт "Без поддержки CLR-среды"), тогда прога ничё не узнаёт и на всё ругается, начиная с пространства имён
C++
1
    using namespace System;
и далее по списку.

Все другие варианты той или иной степени включённости CRL тоже ругаются кто на что.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
10.12.2012, 17:57 4
Цитата Сообщение от kravam Посмотреть сообщение
Да мне счастье не нужно,
Завидую

Цитата Сообщение от kravam Посмотреть сообщение
чтобы было Windows Form (это обязательно, я не написал в начале)+ stl;
Тебе обязательно NET?


Цитата Сообщение от kravam Посмотреть сообщение
Все другие варианты той или иной степени включённости CRL
так в том то и дело что CRL/CLI это не совсем С он уже близок к шарпу
и повенчать его управляемый и неуправляемый код не так то просто
если тебе именно он нужен то проще обратится сюда
https://www.cyberforum.ru/cpp-cli/
если просто работать с формами( что по моему равно Диалогам) то посмотри в сторону MFC он то по крайней мере поддерживает стандарт С (ну почти)
0
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
10.12.2012, 20:38  [ТС] 5

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
Тебе обязательно NET?
в этой теме я подробно постарался описать свои запросы, щас разделил для себя MFC и Windows Form, а вот понятие .NET- тёмный лес, был бы рад, если бы кто-нибудь объяснил



Короче дело в следующем: тут парень немножко объяснил (пробел убрать) h ttp://www.gamedev.ru/code/forum/?id=50766
В общем пока я ещё не углубился в Windows Form, можно более или менее обходиться локальными переменными для методов. Дальше будет видно, тему оставляю открытой.
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
10.12.2012, 21:13 6
Цитата Сообщение от kravam Посмотреть сообщение
Нужно сделать так, чтобы в MSVS работала stl (библиотека шаблонов)
На MSDN такие вопросы отвечают однозначно :
- Учите C# ...
Местные гуру говорят :
- CLI умер ...
( MrCold тоже на C# убежал )
Поэтому дальше для самых упорных упёртых

Цитата Сообщение от ValeryS Посмотреть сообщение
повенчать его управляемый и неуправляемый код не так то просто
Тут есть маленькие хитрости вот что в голову пришло .(на форме кнопка и текстбокс )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma endregion
                    
            std::string *s;
            std::vector<std::string> * ptrVect; 
            std::fstream *ptrInFile;
 
               private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
    
                    s = new std::string();
                    ptrVect = new std::vector<std::string>();
                    ptrVect->reserve(120);
                    ptrInFile = new std::fstream("F:\\file.txt", std::ios::in | std::ios::out);
 
                    *ptrInFile << "Stl Does not Work in Windows Forms !!!";
 
                    ptrInFile->clear();
                    ptrInFile->seekp(0);
 
                    while ( *ptrInFile >> *s)
                        ptrVect->push_back(*s);
 
                        s->clear();
                    ptrVect->erase (ptrVect->begin() + 1);
                    ptrVect->erase (ptrVect->begin() + 1);
 
                    for (std::vector<std::string>::iterator it = ptrVect->begin() ;
                        it != ptrVect->end(); ++it)
                     *s += ( *it + ' ' );
        
                            textBox1->Text = gcnew String(s->c_str());
 
                            delete s;
                            delete ptrVect;
                            delete ptrInFile;
А вообще по СLI много статей на CodeProject
}
(конечно старых статей )
Миниатюры
Нужно сделать так, чтобы в CLI работала stl (библиотека шаблонов)  
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
10.12.2012, 21:14 7
Цитата Сообщение от kravam Посмотреть сообщение
NET- тёмный лес,
Это грубо говоря виртуальная машина в которой исполняется свой код и поставив NET Framework на любую машину
твоя программа будет вести себя одинаково, но если его нет то извини программа не исполнится
http://ru.wikipedia.org/wiki/.NET_Framework
из микрософтофской студии можно писать C++ CLR, C#, Basic
MFC программа выполнится на любой машине с Виндосом( иногда придется правда с бубном поплясать)
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
10.12.2012, 22:06 8
Прошел по ссылке и увидел
ну создавай динамически объект. а в классе храни указатель на него.
. Короче опоздал опять .
1
0 / 0 / 0
Регистрация: 24.10.2012
Сообщений: 9
05.02.2013, 00:57 9
Может и не по теме, извините заранее.
Но я для c++/clr применяю уже давно библиотеку cliext
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <cliext/vector>
using namespace System;
using namespace System::Collections::Generic;
using namespace cliext;
................
public interface class CStorage_interface
{
public:
    virtual void save(StreamWriter^ file) abstract;
    virtual void load() abstract;
};
................
public ref class CStorage
{
private:
    [B]vector<CStorage_interface^> mass;[/B]
public:
    void add(CStorage_interface^ prt)
    {
        mass.push_back(prt);
    }
    void pop()
    {
        mass.pop_back();
    }
    void clear()
    {
        mass.clear();
    }
    int size()
    {
        return mass.size();
    }
    bool is_empty()
    {
        return mass.empty();
    }
    CStorage_interface^ at(int id)
    {
        if(!is_empty() && id>=0 && id<this->size())
            return mass.at(id);
        else
            return mass.at(0);
    }
};
обратите внимание на vector<CStorage_interface^> mass; где CStorage_interface мой класс
h ttp://msdn.microsoft.com/ru-ru/library/bb385659.aspx
0
05.02.2013, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2013, 00:57
Помогаю со студенческими работами здесь

Стандартная библиотека шаблонов STL Алгоритмы
Здравствуйте помогите пожалуйста сделать сортировку по фамилии // ConsoleApplication59.cpp:...

Организация шаблонов на языке С++, библиотека STL
Огромная просьба, подсобите кодик: Используя стандартную библиотеку шаблонов STL и класс list по...

Стандартная библиотека шаблонов STL LIST
Добрый день. Подскажите пожалуйста как сделать поиск элемента в контейнерном классе list. Мне...

STL, или другая библиотека шаблонов
Где можно жостать инфу (в инете) про STL или другую библиотеку шаблонов? Есди можтте дайте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru