3024

Введение в программирование под Windows

Лекция

Информатика, кибернетика и программирование

Лекция 1. Введение в программирование под Windows Под термином WINDOWS-программирование можно подразумевать все, что угодно, но в большинстве своем это означает "событийное" программирование. Именно эта концепция используется в Windows. Она кардинал...

Русский

2012-10-23

91 KB

66 чел.

Лекция 1.

Введение в программирование под Windows

Под термином WINDOWS-программирование можно подразумевать все, что угодно, но в большинстве своем это означает "событийное" программирование. Именно эта концепция используется в Windows. Она кардинально отличается от того, как писались программы для DOS. Если в DOS программа представлялась единым целым и опрашивала в цикле клавиатуру, мышь, порты и пр. и в зависимости от того, нажата ли клавиша, передвинулась мышь, выполняла определенные действия. В Windows этот процесс опроса берет на себя сама система и если произошло какое-то действие (событие), то сообщает (посылает вашей программе сообщение) об этом. А программа фактически состоит из отдельных функций, каждая из которых обрабатывает определенные (клавиатура, мышь) сообщения и соответствующим образом реагирует на них (т.е. реагирует на событие). Очевидно, что события могут быть разными - это не только клавиатура и мышь, а например закрытие окна, изменение его размеров, завершение работы Windows, появление новых данных в буфере обмена и пр. Причем программа может реагировать только на определенные сообщения, а остальные, будут обработаны системой.

Наиболее важным моментом при программировании для Windows является интерфейс прикладного программирования - (Application Programming Interface, API) - это набор самых различных функций, с помощью которых приложение может взаимодействовать с Windows.

API содержит около 2000 функций! Кроме этого в него входит несколько сотен сообщений, макросов и предопределенных констант. С одной стороны все это облегчает работу программиста, а с другой требует изучения многих томов литературы. Но здесь же следует вспомнить, что из десятков тысяч слов русского языка средний человек использует от силы пять тысяч.

Win32 API реализован на следующих платформах: Win32s (интерфейс Win32s # свободно распространяемое подмножество API Win32, работающее под ОС Windows 3.x на процессорах 80386 и старше), Windows 95/98/NT/2000/XP/2003, Windows CE.

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

Все Win32-функции существовуют на каждой платформе, но поддерживаются на некоторых из них только частично.

Win32 API в основном состоит из трех компонентов: Kernel, User и GDI, которые обеспечивают интерфейс с базовой OS, управление окнами и приложениями и предоставляет поддержку графики.

    Знание WinAPI очень полезно, но в случае использования соответсвующих систем программирования не является обязательным. Если использовать Borlan Pascal или Borland С++, то знание API просто необходимо. В случае использования т.н. RAD-систем (системы быстрой разработки приложений), таких как Delphi, С++ Builder, Visual Basic, Visual C++ и им подобных знание WinAPI особо не требуется (но приветствуется). Все вышеперечисленные системы (а также множество других) являются ответом на вопрос "И где это делают?".

Программирование с применением API, представляет непростую задачу. Особенно трудоемким является процесс отладки таких программ. Поэтому все современные интегрированные средства программирования позволяют в значительной степени автоматизировать, написание таких программ. Но и здесь имеются свои проблемы. Для того чтобы разобраться, как написать самостоятельно программу с использованием API, достаточно изучить коды программ написанных другими программистами.

Основные общие свойства Windows-платформ.

Систему Windows часто называют операционной системой передачи сообщений. В основе системы лежит механизм, транслирующий практически каждое событие (нажатие клавиши, перемещение мыши, истечение времени таймера) в сообщение.

Типичное приложение построено на основе цикла сообщений, который принимает эти сообщения и отправляет их к соответствующим функциям – обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы не им, а другим основополагающим компонентам операционной системы – окнам.

С точки зрения пользователя, окно - это прямоугольная область экрана, которую занимает каждая программа Windows. Хотя одна программа может создать несколько окон, всегда имеется одно окно верхнего уровня, которое называется “главным окном” приложения.

С точки зрения программиста, окно - это самостоятельно существующий объект, параметры которого описаны в специальных структурах данных, а поведение функцией окна.

  •  Окно – это гораздо больше, чем просто прямоугольная область на экране компьютера; оно представляет некую абстрактную сущность, через которую взаимодействуют пользователь и компьютер.

Приложения, потоки и окна

В многозадачных (но не многопоточных) операционных системах наименьшей единицей выполнения является задача или процесс. Механизм распределения задач в этих операционных системах переключается между этими задачами; многозадачность выполняется между двумя или более процессами.

В противоположность этому в многопоточной системе наименьшей единицей выполнения является поток, не процесс. Задача или процесс могут состоять из одного или более потоков (обычно один определяется как главный поток). Организация нового потока требует меньше системных ресурсов, потоки одного процесса имеют доступ к одному адресному пространству; переключение между потоками одного и того же процесса требует незначительных расходов ресурсов системы.

Типичное Win32-приложение состоит из одного или более потоков, которые выполняются параллельно (потоки можно понимать как многозадачность в рамках отдельного приложения, например, один поток обрабатывает данные, вводимые пользователем, в то время как другой поток занят передачей документа на принтер).

  •  Окно всегда принадлежит какому-то потоку; поток может владеть одним или несколькими окнами или вообще ни одним.

Поток, выполняющий какие-либо операции, не имеющий ни окон, ни очереди сообщений, ни цикла сообщений, называется обычно рабочим потоком, в противоположность более совершенному, обрабатывающему очередь сообщений потоку пользовательского интерфейса.

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

В Windows существует множество типов окон.

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

Менее очевидно, что многие элементы, отображаемые внутри главного или диалогового окна, сами по себе являются окнами.

Каждая кнопка, поле ввода, полоса прокрутки, окно списка, пиктограмма, даже фон экрана обрабатывается операционной системой как окно.

Классы окон

Основное поведение окна определяется классом окон. Класс окна (не путать с понятием “класс” языка программирования C++) несет информацию о начальном внешнем виде окна, пиктограмме по умолчанию, курсоре и ресурсе меню, связанном с окном; и, что, возможно, более важно – об адресе функции, называемой оконной процедурой. 

Когда приложение обрабатывает сообщения, оно обычно делает это посредством вызова функции DispatchMessage для каждого принятого сообщения - это происходит в так называемом цикле сообщений. В свою очередь, функция DispatchMessage вызывает соответствующую оконную процедуру, проверяя, для какого класса окна предназначено сообщение. Именно эта оконная процедура (функция окна) действительно обрабатывает сообщение, переданное окну.

Функция окна анализирует это сообщение и его параметры, а затем, при необходимости, выполняет некоторые действия.

Можно считать, что единственная для каждого окна функция окна реализует все методы окна как объекта. В языке C++, напротив, каждый метод объекта (класс) реализуется отдельной функцией, называемой обычно функцией-членом. Для реализации методов функция окна анализирует сообщение и однозначно определяет нужный метол.

Рассмотрим, какие типы классов окон существуют.

Существует множество стандартных классов окон, предусмотренных самой операционной системой Windows. Эти системные глобальные классы реализуют функциональные возможности общих элементов управления.

Любое приложение может использовать эти классы в своих окнах; например, реализовать элемент управления – поле ввода, используя класс окна Edit.

Приложение также может определять собственные классы окон с помощью функции RegisterClass. Эта функция позволяет программисту реализовать поведение окна, не являющегося частью ни одного из поддерживаемых системой глобальных классов.

Например, таким образом, типичное приложение реализует функциональные возможности своего главного окна, регистрирует пиктограмму главного окна и ресурса меню.

В Windows предусмотрен механизм наследования. Он реализуется с использованием так называемых классов окна. Перед созданием окна, необходима регистрация класса окна.

Для каждого класса окна определяется функция окна. При создании окна необходимо указать, к какому классу окна оно будет принадлежать и, соответственно, какую функцию окна будет использовать для обработки сообщений. Приложения могут создавать собственные оконные классы окна и свои функции окна (и следовательно свои методы), или использовать стандартные, определенные в Windows классы окна.

Например, можно создать окно изображающее кнопку и для него определить функцию окна, которая будет обрабатывать сообщения от мыши. Эта функция будет обрабатывать сообщения, и рисовать кнопку в нажатом и отжатом состоянии. Но в Windows уже определен класс окна, соответствующий кнопке.

 

Windows также позволяет разбивать существующие окна на подклассы (субклассы) и суперклассы.

  •  Разбиение на подклассы замещает оконную процедуру для класса окна на другую процедуру. Это разбиение осуществляется путем изменения адреса процедуры через функцию SetWindowLong (в случае простого разбиения на подклассы) или SetClassLong (в случае глобального разбиения на подклассы). При этом в первом случае изменится только поведение определенного окна, а во втором – поведение всех окон указанного класса, создаваемых данным приложением.
  •  Операция создания суперкласса создает новый класс на основе существующего, сохраняя его оконную процедуру. Чтобы создать суперкласс из класса окна, приложение извлекает информацию о классе с помощью функции GetClassInfo, изменяет полученную таким образом структуру WNDCLASS и использует измененную структуру при вызове RegisterClass.

Через функцию GetClassInfo приложение также получает адрес оригинальной оконной процедуры, который остается тот же; сообщения, которая не обработала новая оконная функция, должны быть переданы оригинальной процедуре.

 Замечание. Несмотря на то, что используемая выше терминология напоминает терминологию объектно-ориентированного программирования, понятие класса окна не следует путать с понятиями C++. Понятие класса окна возникло на несколько лет раньше начала использования в Windows объектно-ориентированных языков.

Типы сообщений

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

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

Приходящее приложению Windows-сообщение состоит из нескольких частей, для его представления используется структура MSG. Приведем описание структуры, применяющейся для представления сообщения, т.е. описывающей тип сообщения:

typedef struct tagMSG

{ HWND  hwnd;   // окно, которому посылается это сообщение

 UINT  message;  // значение самого сообщение

 WPARAM  wParam;  // для передачи дополнительной информации

 LPARAM  lParam;  // для передачи дополнительной информации

 DWORD  time;  // время, когда произошло событие

 POINT  pt;  // точка, где произошло события (для мыши)

} MSG;

Элемент структуры hwnd однозначно идентифицирует окно, которому посылается это сообщение. Каждое окно в Windows имеет такой идентификатор. Элемент message идентифицирует само сообщение. Этот элемент может иметь сотни различных значений, означающих одно из многих сотен различных сообщений, которые могут получать приложения Windows.

Для идентификаторов сообщений обычно используются символьные представления (WM_PAINT, WM_TIMER), а не числовые значения. Эти символьные значения определены в стандартных файлах заголовков Windows (приложению необходимо включать в свой исходный текст только файл windows.h – он содержит директивы #include для остальных файлов).

Сообщения можно разделить на несколько групп в зависимости от их функций. Самой насыщенной группой сообщений является группа сообщений управления окнами. Символьные идентификаторы для этих сообщений начинаются с WM_. Эта группа настолько велика, что ее уместно еще раз разбить на категории. Эти категории включают:

  •  сообщения DDE (dynamic data exchange),
  •  сообщения буфера обмена (clipboard),
  •  сообщения мыши,
  •  сообщения клавиатуры,
  •  сообщения неклиентской (non-client) области окна,
  •  сообщения MDI (multiple-document interface),
  •  и многие другие типы.

Перечисленные категории несколько неточны, не всегда строго определены; они просто служат для удобства программистов, чтобы можно было представить картину множества событий управления окнами. Множество сообщений WM_ также не фиксировано, оно растет по мере добавления новых возможностей операционной системы.

Другие группы сообщений связаны с определенными типами окон. Существуют сообщения, определенные для полей ввода, кнопок, списков, комбинированных списков, полос прокрутки, элементов просмотра списка деревьев и т.д. Эти сообщения за редким исключением обычно обрабатываются оконной процедурой окна элемента управления и редко представляют интерес для программистов приложений.

Приложения также могут определять собственные сообщения. 

  •  Первый способ пригоден только для случая, если сообщение пересылается между окнами (частями) одного и того же приложения. Для этого необходимо определить символическое имя нового сообщения при помощи директивы #define, например:

#define  СимволическоеИмяОдногоСообщения  (WM_USER+1)

#define  СимволическоеИмяДругогоСообщения  (WM_USER+2)

  •  Вторым способом определения собственного сообщения является использование функции RegisterWindowMessage, которая возвращает уникальный идентификатор для сообщения. Использование собственных типов сообщений, полученных таким способом, позволяет частям приложения связываться между собой; разные приложения также могут обмениваться информацией таким способом. Однако для взаимодействия приложений доступны более мощные механизмы, например, отображаемые в память файлы.

Вызов функций Windows

Существование цикла сообщений – не единственный механизм, посредством которого приложение взаимодействует с Windows. Windows предлагает огромное количество системных вызовов для выполнения большого разнообразия задач, включая управление потоками, работу с окнами, обработку файлов, управление памятью, графический сервис, коммуникацию и много других функций.

Замечание. Основное множество системных вызовов Windows можно разделить на три главных категории. Службы GDI (Graphics Device Interface – интерфейс графических устройств) предлагают аппаратно-независимые функции графического вывода. Службы пользователя включают в себя системные вызовы для управления элементами пользовательского интерфейса, такими как окна, элементы управления, диалоговые окна или сообщения. Службы ядра включают системные вызовы для управления процессами и потоками, управления ресурсами, файлами и памятью. Windows также включает разносторонние пользовательские интерфейсы программирования приложений (API), вкратце рассматриваемые ниже.

Службы GDI. Функции GDI используются для выполнения основных независимых от устройства графических операций над контекстом устройства. Контекст устройства – это интерфейс для определенного графического устройства. Его можно использовать для получения информации об устройстве и выполнения графического вывода на это устройство. Информация, которая может быть получена через контекст устройства, содержит его подробное описание. Технология устройства (векторная или растровая), его тип, имя, разрещающая способность, цветовые возможности, возможности шрифтов – все это можно получить, вызвав контекст соответствующего устройства.

Службы пользователя. Модуль User (модуль пользователя) поддерживает системные вызовы для работы с элементами пользовательского интерфейса. Они включают в себя функции обработки окон, диалоговых панелей, меню, текстовых и графических курсоров, элементов управления, буфера обмена и многих других понятий. Именно благодаря функциям модуля User становятся доступными высокоуровневые компоненты пользовательского интерфейса.

Службы ядра системы. Службы ядра обычно относятся к категории управления файлами, памятью, процессами, потоками и ресурсами. Это не полный список, но все же эти категории описывают самые часто используемые функции модуля Kernel.

Другие API. Windows – это намного больше, чем возможности, реализованные в рассматриваемых выше трех основных модулях. Существует множество модулей, других API, каждый реализующий свое определенное множество функциональных возможностей. Рассмотрим кратко некоторые из наиболее широко используемых API.

  •  Функции общих элементов управления используются для работы с новыми элементами управления (расширяющими множество стандартных элементов управления).
  •  Общие диалоговые окна содержат поддерживаемые системой диалоговые окна для открытия файла, выбора цвета из цветовой палитры, выбора шрифта из множества инсталлированных в системе, определения операции поиска или поиска с заменой. Эти диалоговые окна можно использовать по умолчанию или их функции можно изменять через новые шаблоны диалоговых окон и оконных процедур.
  •  MCI (multimedia control interface) предоставляет собой интерфейс управления средствами мультимедиа. Через функции MCI приложения легко могут получить доступ к видео-, аудио- и MIDI-возможностям Windows.
    Существует несколько
     групп функций, связанных с сетью: например, WinSock – библиотека Windows Sockets, WinInet – библиотека Windows Internet API и др.

Оконная функция – функция обратного вызова

Программисты хорошо знакомы с понятием вызова операционной системы для выполнения каких-то действий. Например, программисты на C используют функцию fopen для открытия файла. Библиотечные функции, поставляемые компилятором, содержат код, который фактически вызывает для открытия файла операционную систему. Здесь все просто. Но операционная система Windows ведет себя иначе.

Хотя в Windows имеется очень много доступных программисту функций, Windows также и сама посылает вызовы программе, особенно оконной процедуре. Оконная процедура связана с классом окна, который программа регистрирует с помощью вызова функции RegisterClass. Окно, создаваемое на основе этого класса, использует оконную процедуру для обработки всех сообщений окна. Windows посылает сообщения окну, вызывая оконную процедуру.

Рассмотрим примеры, когда Windows вызывает оконную процедуру:

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

Все эти вызовы имеют форму сообщений. В большинстве Windows-программ основная часть программы направлена на обработку этих сообщений. Свыше 200 различных сообщений, которые Windows может отправить оконной процедуре, идентифицируются именами, которые начинаются с cимволов WM_ и определяются в заголовочных файлах Windows.

Фактически, идея функции, находящейся в программе, но которая вызывается не из самой программы, не является абсолютно новой в традиционном программировании. Функции signal в языке С может перехватить нажатие комбинации клавиш <Ctrl+Break>. В Windows эта идея расширена и пронизывает всю систему.

Любое событие, относящееся к окну, передается оконной процедуре в виде сообщения. Затем оконная процедура соответствующим образом реагирует на это сообщение или передает сообщение в функцию DefWindowProc для обработки его по умолчанию.

Синхронные и асинхронные сообщения

Итак, передача окну сообщений означает вызов операционной системой Windows оконной процедуры. Но в программах для Windows имеется и цикл обработки сообщений, который берет сообщения из очереди сообщений, вызывая функцию GetMessage, и отправляет их оконной процедуре, вызывая функцию DispatchMessage.

Одни и те же сообщения могут быть и синхронные (queued), и асинхронные (nonqueued). Синхронными сообщениями называются сообщения, которые Windows помещает в очередь сообщений программы, и которые извлекаются и диспетчеризируются в цикле обработки сообщений. Асинхронные сообщения передаются непосредственно окну, когда Windows вызывает оконную процедуру.

  •  Говорят, что синхронные сообщения помещаются (отправляются) в очередь сообщений (post), а асинхронные посылаются прямо в оконную процедуру (send).

Структура программ для Windows очень проста, поскольку у них имеется только одно центральное место обработки сообщений. В результате оконная процедура получает все предназначенные для окна сообщения, как синхронные, так и асинхронные.

Синхронными становятся сообщения, в основном, тогда, когда они являются результатом пользовательского ввода путем нажатия клавиш (например, WM_KEYDOWN или WM_KEYUP), это символы, введенные с клавиатуры (WM_CHAR), результат движения мыши (WM_MOUSEMOVE) и щелчков кнопки мыши (WM_LBUTTONDOWN). Кроме этого, синхронные сообщения включают в себя сообщения таймера (WM_TIMER), сообщение о выходе из программы (WM_QUIT), а также все сообщения, которые помещаются в очередь сообщений посредством вызова приложением функции PostMessage.

Сообщения становятся асинхронными во всех остальных случаях. Часто асинхронные сообщения являются результатом вызова определенных функций Windows или непосредственным результатом вызова функции SendMessage. 

Очевидно, что процесс этот сложен, но, большая часть сложностей ложится на Windows, а не пользовательские программы.

С позиции оконной процедуры совершенно не важно, для обработки какого сообщения и кем она вызвана. Оконная процедура может что-то сделать с этими сообщениями, а может и проигнорировать их. По этой причине оконную процедуру назвали конечным пунктом обработки (ultimate hook). Сообщения извещают оконную процедуру почти обо всем, что влияет на окно.

Например, когда WinMain вызывает функцию CreateWindow, Windows отправляет оконной процедуре асинхронное сообщение WM_CREATE. КогдаWinMain вызывает UpdateWindow, Windows отправляет оконной процедуре асинхронное сообщение WM_PAINT.

Сообщения не похожи на аппаратные прерывания. Во время обработки в оконной процедуре одного сообщения программа не может быть прервана другим сообщением. Только в этом случае, если оконная процедура вызвала функцию, которая сама стала источником нового сообщения, то оконная процедура начнет обрабатывать это новое сообщение еще до того, как функция вернет управление программе.

Цикл обработки сообщений и оконная процедура работают не параллельно. Когда оконная процедура обрабатывает сообщение, то это результат вызова функции DispatchMessage в WinMain. DispatchMessage не завершается до тех пор, пока оконная процедура не обработала сообщение.

Часто возникает необходимость того, чтобы оконная функция сохраняла информацию, полученную в сообщении, и использовала ее при обработке другого сообщения. Тогда эту информацию следует описывать в оконной процедуре в виде статических переменных, либо хранить в глобальных переменных.

Разделение аппаратных ресурсов

Одним из наиболее существенных свойств Windows является то, что под его управлением можно одновременно запускать на выполнение несколько программ. Различные приложения делят между собой эти ограниченные ресурсы, распределение которых осуществляет операционная оболочка Windows.

Программируя для Windows, нельзя забывать о том, что все аппаратные ресурсы являются разделяемыми, и для их правильного использования следует придерживаться определенных правил.

Так, если программа для MS-DOS имеет доступ ко всей свободной оперативной памяти и может обращаться к этой памяти так, как захочется программисту, то в Windows, где одновременно может выполняться несколько программ, память является разделяемым ресурсом.

Другим примером разделяемого ресурса является дисплей. Программируя в MS-DOS, можно в любой момент переключить режим видеоадаптера, изменить цвет или даже напрямую обратится контроллеру и что-то записать в видеопамять. Такая техника полностью исключается при программировании в Windows. Дисплей - разделяемый системный ресурс, и обращаться к нему можно только так, как позволяет Windows.

Одной из основных целей создателей Windows являлось обеспечение визуального доступа к большинству приложениям одновременно. Для этого каждому приложению выделяется часть экрана для взаимодействия с пользователем. В Windows каждое приложение в любой момент времени имеет доступ к определенной части экрана. Таким образом, экран в Windows - разделяемый ресурс, средством разделения которого является окно приложения.

Итак, два важных вывода.

Во-первых, загруженная на выполнение программа не забирает на себя полностью все ресурсы - эти ресурсы выделяются приложению при помощи специальных механизмов.

Во-вторых, в каждый момент времени программа не знает, какая именно область экрана принадлежит окну приложения, поскольку пользователь в любой момент может переместить окно и изменить его размеры (для определения координат окна нужно обратиться к специальной функции Windows).

 


 

А также другие работы, которые могут Вас заинтересовать

21395. ГРАЖДАНСКОЕ ПРАВОТНОШЕНИЕ 24.99 KB
  на сознание и волю Гпр оо только потому и возможно что содержание оо составляет поведение участников этих оо Поэтому урегулировать оо входящие в предмет ГП модно только одним способом путем регулирования поведения субъектов ГП в рамках существующих м у ними оо В качестве таких регуляторов выступают субъективные права и обязанности которыми наделяются участники регулируемых оо Субъективное право это мера возможного поведения управомоченного лица ГПотн Объективное право это мера должного поведения В ГП поведение определяется в соответствии с...
21396. СУБЪЕКТЫ ГП 27.62 KB
  некоторые граждане в силу малолетнего возраста или по состоянию здоровья не могут это делать то признается недееспособным до 14 лет не обладают дееспособностью Право и дееспособности это юр качества и свойства которыми субъектов ГП наделяет государство и только оно может лишить или ограничить Отказ субъекта от право ил дееспособности недействителен Статья 22: сделки направленные на ограничение право и дееспособности не действительны в СССР не хватало рабочей силы тогда выдавали квартиру но обычно ее меняли сразу на ленинградскую тогда брали...
21397. ИНДИВИДУАЛИЗАЦИЯ ГРАЖДАН 18.03 KB
  он не может от этого отказаться; для граждан не достигших 14 летнего возраста местом жительства признается место жительства их родителей усыновителей или опекунов; безвестное отсутствие и его последствия: отсутствие на месте жительства гражданина порождает неопределенность в ГО; в устранении неопределенности заинтересованы многие также как и сам гражданин; статья 42: суд может признать гражданина безвестно отсутствующим если в течение одного года в месте его постоянного места жительства нет сведений о месте его пребывания т. Невозможность...
21398. ЮРИДИЧЕСКИЕ ЛИЦА 28.28 KB
  Поэтому необходимо некое срво которое способно обеспечить реальность юрлица. юрлица в отличие от граждан не существуют реально. Эта теория впервые противопоставила юрлица и физлица как субъектов ГП. Недостатком является то что теория фикции объясняет почему создаются юрлица но не объясняет что такое юрлицо.
21399. ИНДИВИДУАЛИЗАЦИЯ ЮЛ 19.46 KB
  на практике он просто запутывает ГО когда регистрировали кооперативы то надо было его место нахождения тогда и появился юридический адрес они абонировали почтовый ящик Третий способ: не пользуются граждане Товарный знак знак обслуживания: в соответствии со статьёй 1477 товарный знак это обозначение служащее для индивидуализации товаров ЮЛ а знак обслуживания это обозначение служащее для индивидуализации выполнения работ и оказываемых услуг ЮЛ т. сочетание слов Раковая шейка Изобразительные шестеренка с буквами КЗ Объемный знак...
21400. СПОСОБЫ ОБРАЗОВАНИЯ ЮЛ 20 KB
  если все требования закона соблюдены отказать нельзя Если он случится можно обжаловать в суде УЧРЕДИТЕЛЬНЫЕ ДОКУМЕНТЫ ЮЛ Статья 52 виды: Устав: наиболее распространенный только на основе его действуют кооперативы и АО Учредительный договор: полное товарищество Учредительный договор и устав: ООО но теперь изменение что только на основе устава Общее положение о данном виде ЮЛ: закон о среднем специальном образовании эти учреждения действуют только на основании его Единственным документом д. на одной стороне активы а на другой пассивы; если...
21401. ОРГАНИЗАЦИОННО ПРАВОВЫЕ ФОРМЫ КО 17.16 KB
  Три формы: ООО Общество с дополнительной ответственностью АО Объединение в первую очередь имущества а вовторую лиц Не требует личного участия участника в деятельности общества Личность не имеет особого значения Участниками м. любые субъекты ГП кроме гос органов Участники общества не несут ответственности по долгам общества За рубежом общества тоже получили широкое распространение Система хоз тов и обв построена таким образом что чем...
21402. ПОЛНОЕ ТОВАРИЩЕСТВО 20.06 KB
  Полное товарищество это переходная форма от индивидуальной к коллективной предпринимательской деятельности т. участником только одного полного товарищества Фирменное наименование должно содержать либо имена наименования всех товарищей и слова полное товарищество либо имена наименования нескольких участников и слова компания и слова полное товарищество В качестве учредительного документа...
21403. ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ 22.83 KB
  Риск предпринимательской деятельности уменьшается до величины вклада который вносится пр создании ЮЛ; другое имущество риску не подвергается Возможность реально влиять на деятельность этого ЮЛ и его результаты Круг участников ограничен лицами которые как правило знают и доверяют друг другу До последнего времени: любой участник мог в любое время выйти без согласия и потребовать выдел своей доли Недостаток: нестабильная имущественная база т. весьма не удобно для кредиторов и остальных участников ГО что может в любое время участники...