Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Программа в виде DLL


Автор: XSInet 11.1.2006, 17:11
Здравствуйте все ! Вопрос немного не по теме, но мой друг сказал что можно сделать прогу в виде DLL'ки. И что она может реально работать. Такое возможно ? Если да, то напишите пожалуйста пример простейшей такой проги\Dll.

Ещё один вопрос не по теме : Я купил и установил Microsoft Visual Studio 2005 with MSDN. Раньше я предполагал что при открытии мне предстанет спиок API'шек с подробнейшим описанием... Но нашёл я там описане очень малого кол-ва API. Может я не там искал ? Есть ли действительно такой список (в локальной базе, не на microsoft.com) ?

Автор: _hunter 11.1.2006, 18:09
Цитата(XSInet @ 11.1.2006, 16:11 Найти цитируемый пост)

казал что можно сделать прогу в виде DLL'ки

действительно можно.
Цитата(XSInet @ 11.1.2006, 16:11 Найти цитируемый пост)

И что она может реально работать.

таки будет.
Цитата(XSInet @ 11.1.2006, 16:11 Найти цитируемый пост)

Но нашёл я там описане очень малого кол-ва API. Может я не там искал ?

может и не там

Автор: z-END 11.1.2006, 18:10
Модератор: Пожалуйста, один топик - один вопрос.

Автор: Alexeis 11.1.2006, 18:57
Цитата

Вопрос немного не по теме, но мой друг сказал что можно сделать прогу в виде DLL'ки. И что она может реально работать

Все делается как обычно только понадобится загрузчик для этой dll

Автор: bems 11.1.2006, 19:02
dll без экзешника работать не может, но экзешник не обязательно должен писать ты, можно воспользоваться существующим. Если библиотека должна запускаться при загрузке, можно прописать кой-что в реестре и винлогон ее запустит.
http://forum.vingrad.ru/index.php?showtopic=77028&view=all

Если это должен запускать юзер, то пользуйся Rundll32.exe она лежит в одной из системных папок. Что бы Rundll32.exe запустила твою библиотеку нужно выполнить такую командную строку

rundll32 DllName,FunctionName [Arguments]
(например запихнуть ее в ярлык или реестр)


Имя библиотеки должно быть без пробелов и прочей фигни вроде запятых. Лучше с полным путем. Имя процедуры должно совпадать с именем экспортируемой функции с точностью до регистра. Можно передать аргументы процедуре, если ты их не передаешь то все равно объявляй функцию так:

procedure FunctionName(wnd:HWND;hInst:THANDLE;CmdLine:PChar;CmdShow:integer);stdcall;

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

Автор: Гость_VIKT0R 15.1.2006, 19:29
Цитата

Я купил и установил Microsoft Visual Studio 2005 with MSDN
Может я не там искал ? Есть ли действительно такой список (в локальной базе, не на microsoft.com) ?

Где ты его купил?
Если на рынке двусторонний DVD, то там слегка измененная 2005 beta2.
Там, действительно, поменьше будет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)