Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Как использовать классы, которых нет, но которые быть должны?

09.01.2013, 22:34. Показов 2356. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам

Не по теме:

На C++ (gcc) так делается- скачиваешь библиотеку, распихиваешь файлы по директориям и работаешь



А тут как?
Допустим, нашёл я код и хочу его у себя задействовать.
C#
1
ManagementObject x = new ManagementObject("stroka");
шаги такие:
1) танцы с бубном- ничё не получается
2) MSDN, ага увидел пространство имён, которое нужно подключить
3) собсно окончательный неработающий код

C++
1
2
3
using System.Management;
//++++++++++++++++++++=
ManagementObject x = new ManagementObject("stroka");
ругается, понятно на ManagementObject
"Ошибка 1 Не удалось найти имя типа или пространства имен "ManagementObject" (пропущена директива using или ссылка на сборку?) E:\vso_moio\программирование_на_C#\Conso leApplication1\ConsoleApplication1\Progr am.cs 24
"
4) напоследок убеждаюсь ещё раз в обозревателе объеков, что действительно, в пространстве имён System.Management класса ManagementObject нет
5) грущу

+++++++++++++++++++++++++++++++++

Что же делать? Это не блажь на самом деле, если я буду знать алгоритм действий, как действовать в таких ситуациях, то всё будет круто. Только, сдаётся мне, не так просто тут мне чего-то скачать и обновить... Не пришлось бы студию переустанавливать... бр-р-р-р... Спасибо, кто откликнется.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2013, 22:34
Ответы с готовыми решениями:

Следует дать конкретную постановку, т.е. указать, какие классы должны быть реализованы, какие должны быть в ни
Задание: Перечень классов: квитанция, накладная, документ, чек; Порядок выполнения работы 1. Определить иерархию классов (в...

я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.. должны быть классы!!
я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.. должны быть классы!!.. например какие...

Классы и методы в разных пакетах, должны быть PUBLIC?
Пытаюсь выстроить декомпозицию приложение, так чтобы функционал разнести в разные pakeges. К примеру классы связанные с UI в...

10
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.01.2013, 22:38
kravam, бывают проблемы с версией фреймворка: я тоже долго тупил, что не могу создать в методе Tuple<int,int> пока не заметил, что версия FW стоит 3.5, а они появились в 4.0
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
09.01.2013, 22:45  [ТС]
ну я так понимаю, что фреймворк это то, что нужно для запуска программ на моём компьютере, но для компиляции он не нужен.

Ну совсем по-простому- фреймворк, это некий ресурс, пусть даже архиглобальный. Его отсутствие или несоответствие требованиям обнаружится на стадии выполнения или запуска. Но не на стадии же компиляции!
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.01.2013, 22:46
Цитата Сообщение от kravam Посмотреть сообщение
На C++ (gcc) так делается- скачиваешь библиотеку, распихиваешь файлы по директориям и работаешь
Настоящие танцы с бубном там начинаются при попытке построить команду компилятору и (особенно) линкеру.
Достаточно глянуть любой makefile проекта размером от среднего и выше.

В студии, по сути, то же самое, только вместо насилования клавиатуры происходит насилование мышки. Ну и задокументированно все, конечно, намного лучше чем в любой опенсорсной либе для сей.

Ну а кроме пространства там же на MSDN написана еще и сборка, которую надо подключить, а так же список фреймворков, поддерживающих данный класс.
В данном случае - System.Management.dll
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
09.01.2013, 22:58  [ТС]

Не по теме:

Ну про несколько лёгких пассов руками с линкёром мы потом поговорим.



Цитата Сообщение от kolorotur Посмотреть сообщение
Ну а кроме пространства там же на MSDN написана еще и сборка, которую надо подключить
написано .NET Framework 4.5
делать-то чего? Надо же сперва удостовериться, что у меня НЕ 4.5, так? А потом установить как-то 4.5, так?

Я, конечно, могу сам попробовать, но опять же, что пробовать-то? Делов наделаю, а студия мне не бесплатно досталась.
0
 Аватар для KristopherRobin
146 / 143 / 11
Регистрация: 11.09.2011
Сообщений: 419
09.01.2013, 23:03
у меня получилось -
1) добавь ссылку в проект:


2) используй пространство имен
1
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
09.01.2013, 23:04
kravam,и еще убедитесь что не исп. .NET 4 Framework Client Profile.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.01.2013, 23:14
Цитата Сообщение от kravam Посмотреть сообщение
Ну про несколько лёгких пассов руками с линкёром мы потом поговорим.
Нет уж, спасибо
Я после довольно плотной работы с ITK про линкёр слышать не хочу.

Теперь по теме - учимся пользоваться MSDN.
Открывая страницу с документацией о каком-либо классе, в самом верху вы видите что-то вроде ".NET Framework 4.5 | Другие версии". Это - версия фреймворка, для которой вы в данный момент просматриваете документацию о классе (внутренности класса могут меняться от версии к версии).
Дальше идет краткое описание класса - что это такое и для чего он вообще нужен: "Представляет экземпляр WMI."
Потом идет иерархия наследования - тоже весьма полезная штука.
А вот дальше идет очень нужная информация для определения "координат" этого класса:
Пространство имен: System.Management
Сборка: System.Management (в System.Management.dll)
Это значит, что для того, чтобы студия могла откомпилировать ваш код, использующий этот класс, вам надо сделать две вещи:
1. Добавить ссылку на System.Management.dll (Project -> Add Reference, закладка .NET).
2. Добавить директиву using System.Management в шапку файла или использовать этот путь при каждом использовании класса ManagementObject в коде (System.Management.ManagementObject obj = new System.Management.ManagementObject())

Потом идет декларация класса - там можно посмотреть полезную информацию об атрибутах, примененных к этому классу и об интерфейсах, им реализуемых.
Ниже идет собственно "начинка" класса - конструкторы, свойства, методы, события. Иконки в левой колонке тоже не просто так - по ним можно определить, является ли член статическим, явной реализацией интерфейса, поддерживается ли в версии Compact Framework и пр.

После этой таблицы - тоже очень полезная информация: в каких версиях фреймворка имеется этот класс:
.NET Framework
Поддерживается в версиях: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
.NET Framework (клиентский профиль)
Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)
Целевую версию вашего приложения можно подглядеть в свойствах проекта.

Потом идет список поддерживаемых платформ:
Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)
Ниже - информация о потокобезопасности (имеет ли смысл синхронизировать вызовы членов этого класса).

Ну и в самом подвале, как правило, всевозможные примечания, примеры использования и прочая доп. информация.

Как видите, из вышеперечисленного довольно быстро можно найти причину, по которой проект с этим классом не хочет компилироваться.
Если прошли по всем пунктикам, вроде бы все совпадает, но все равно ничего не фачит, то тут уже либо глючит студия, либо слетел фреймворк. Проверить можно, попытавшись откомпилировать минимальный пример из командной строки. Если не сможет - значит фреймворк, если сможет - значит студия.
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
10.01.2013, 00:00  [ТС]
Ну вот, теперь я научился подключать библиотеки пространства имён. Мне и в голову не приходило, что надо куда-то ещё мышью тыкать.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
10.01.2013, 00:05
Цитата Сообщение от kravam Посмотреть сообщение
Мне и в голову не приходило, что надо куда-то ещё мышью тыкать.
Ну оно же, по сути, точно так же, как и в С/gcc: можно проинклюдить файл, но если линкеру не указать либу или он не отрезолвит символы - кранты.
Разница лишь в том, что тут это мышью через IDE делается
0
10.01.2013, 00:16  [ТС]

Не по теме:

Вот будет прикольно если этот проект на моей XP не запустится!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2013, 00:16
Помогаю со студенческими работами здесь

Классы. Задана программа.Нужно ее изменить за место переменных должны быть указатели
Задана программа.Нужно ее изменить за место переменных должны быть указатели ии... #include &lt;iostream&gt; using namespace std;...

Нет посетителей на сайте а должны быть
Всем привет. Есть сайт avtolubiteli.com.ua, сайту около 2-х месяцев. Сайт находится на 2-й позиции в Яндексе и на 6-й в Гугле по...

Нет настроек разгона ,хотя точно должны быть!
Gygabyte z97 hd3 +4770k точно знаю на этой материнке можно разгонять смотрел обзоры,но у меня некоторые опции,что были показаны в том же...

Какой элемент отображения данных использовать, последние записи должны быть сверху
Добрый день. Суть вопроса такова. Есть БД в нее периодически (раз в 10-20 секунд ) добавляются записи. Какой элемент отображения можно...

Не могу найти компоненты, которые должны быть в Indy
Здравствуйте. Подскажите новичку, установил Делфи Берлин. Версия полная, но почему то не могу найти компоненты которые должны быть в indy....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru