Поиск
 

FrameWork

MicroSoft DotNet

Cи Шарп это просто Simple C#
Логин Пароль Вход Регистрация
Главная
Изучаем C#
Web-приложения
Win-приложения
Web-сервисы
ADO.NET
FrameWork
Алгоритмы
Исходники
Классы
Среда разработки
Статьи
Форум
FAQ
О Проекте
Обратная связь
Отблагодарить
Rambler's Top100

Компоновка типов в модуль

В этом разделе я покажу, как сделать из файла исходного текста с разными типа-
ми файл, пригодный для развертывания. Для начала рассмотрим такое простое
приложение:



public class App {
  static public void Nain(System.String[] args) {
    System.Console.WriteLine("Hi");
  }
}




Это приложение определяет тип Арр с единственным статическим открытым
методом Main. Внутри метода Main находится ссылка на другой тип — System. Console
— тип, реализованный Microsoft. Код на языке IL, реализующий методы этого типа, находится в файле MSCorLib.dll. Таким образом, наше приложение определяет свой тип, а также использует тип, созданный другой компанией.
Чтобы скомпоновать это приложение-пример, сохраните показанный выше код.
скажем, в файле App.cs и исполните в командной строке:
csc.exe /out:App.exe /t:exe /nMSCorLib.dll App.cs
Эта команда приказывает компилятору С# создать исполняемый файл Арр.ехе (имя задано переключателем /out; Арр. ехе). Тип создаваемого файла — консольное приложение Win32 (задан переключателем /t[arget]:exe).
При обработке файла с исходным текстом компилятор С# видит ссылку на метод
WriteLine типа System. Console. На этом этапе компилятор хочет убедиться, что такой тип где-то существует и что у него есть метод WriteLine. Компилятор также проверяет, что типы аргументов, ожидаемых методом WriteLine, совпадают с предоставленными программой. Чтобы компилятор Си остался доволен, ему нужно дать набор сборок, при помощи которых он сможет разрешить все ссылки на
внешние типы, (Определение сборки будет дано чуть ниже, а сейчас можно считать, что сборка — это набор из одного или нескольких DLL-файлов). В показанной выше команде переключатель /r[eference]:HSCorLib.dll приказывает компилятору вести поиск внешних типов в сборке, идентифицируемой файлом MSCorLib.dll.
MSCorLib.dll — это особый файл, в нем находятся все основные типы, представляющие байты, целочисленные, символьные, строковые и другие значения, Фактически эти типы используются так часто, что компилятор С# ссылается на эту
сборку автоматически. Иначе говоря, следующая команда (в ней опущен переключатель /r) даст тот же результат, что и предыдущая:
csc.exe /out:App.exe /t:exe App.cs
Более того, поскольку значения, заданные переключателями командной строки
/ o u t : A p p . e x e и /t:exe, совпадают со значениями, которые компилятор С# назначает по умолчанию, следующая команда тоже даст аналогичный результат:
csc.exe App.cs
Если вы почему-то не хотите, чтобы компилятор С# ссылался на сборку MSCorLib.dll, примените переключатель /nostdlib. Так, во время исполнения следующей
команды при компиляции файла App.cs генерируется ошибка, поскольку тип
System. Console определяется в сборке MSCorLib.dll:
csc.exe /out:App.exe /t:exe /nostdlib App.cs
А теперь приглядимся к файлу App.exe, созданному компилятором С#. Что же это за файл? Для начинающих поясню: это стандартный РЕ-файл (файл в формате РЕ — portable executable). Это значит, что машина, работающая под управлением 32- или 64-разрядной версии Windows, способна загрузить этот файл и что-то с ним сделать. Windows поддерживает два типа приложений: консольные (COI)
и с графическим интерфейсом (GUI). Поскольку я указал переключатель /t: ехе, компилятор С# создает консольное приложение. Чтобы заставить компилятор
сделать приложение с графическим интерфейсом, используйте переключатель /t:winexe.

Предыдущая стр.    Оглавление    Следующая стр.
Средняя оценка: (1 - 1 голосов)
Для оценки необходимо зарегистрироваться


Только зарегистрировавшиеся пользователи могут оставлять комментарии