Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2012, 21:07   #1
iLnes
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 66
По умолчанию Подгрузка функции из .dll

Здравствуйте все.
Для уменьшения размера файла, вынес GetEnvironmentVariable и FileExists, получилось вот так:
Код:
function GetEnvironmentVariable(const Name: string): string; stdcall; external 'kernel32.dll' name 'GetEnvironmentVariable';
Код:
function FileExists(const FileName: string): Boolean; stdcall; external 'kernel32.dll' name 'FileExists';
Так вот, работать не хочет) На обе ошибки ругается, что не удалось найти такую функцию в kernel32.dll.
Либо не те .dll использую, либо где-то ошибки.
Помогите.
iLnes вне форума Ответить с цитированием
Старый 22.01.2012, 21:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
GetEnvironmentVariable
GetEnvironmentVariableA
Или GetEnvironmentVariableW для юникода
Цитата:
(const Name: string): string;
Смело... ИМХО пошлет он куда подальше с такими параметрами
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2012, 21:29   #3
iLnes
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 66
По умолчанию

Можно ваши предложения,, как лучше сделать?)
iLnes вне форума Ответить с цитированием
Старый 22.01.2012, 21:34   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Для начала почитать литературу по основам работы с DLL и особенности линковки.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 22.01.2012, 21:34   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну в принципе FileExists нету в kernel32.dll
особого смысла выносить нету, разве что переписывать модуль System.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.01.2012, 21:43   #6
iLnes
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 66
По умолчанию

Неужто никак не вынести?)
Мне надо избавиться от SysUtils.
iLnes вне форума Ответить с цитированием
Старый 22.01.2012, 22:00   #7
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 177
По умолчанию

Цитата:
Сообщение от iLnes Посмотреть сообщение
Код:
function FileExists(const FileName: string): Boolean; stdcall; external 'kernel32.dll' name 'FileExists';
Так вот, работать не хочет) На обе ошибки ругается, что не удалось найти такую функцию в kernel32.dll.
не удивительно, потому что такой функции там нет!

Цитата:
Сообщение от iLnes Посмотреть сообщение
Неужто никак не вынести?)
написать свою, там не очень сложно.

Цитата:
Сообщение от iLnes Посмотреть сообщение
Мне надо избавиться от SysUtils.
а смысл?

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

Последний раз редактировалось Rock-n-Rolla; 22.01.2012 в 22:05.
Rock-n-Rolla вне форума Ответить с цитированием
Старый 22.01.2012, 22:07   #8
iLnes
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 66
По умолчанию

Для меня есть разница.
размер уменьшился хоть и на 28 кб, но мне это важно.
Вот и все.
Поэтому не могли бы Вы помочь?
iLnes вне форума Ответить с цитированием
Старый 22.01.2012, 22:20   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

забудьте про Forms и прочих. пишите приложение с нуля в dpr файле, экономия огромная будет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.01.2012, 22:34   #10
iLnes
Пользователь
 
Регистрация: 07.10.2011
Сообщений: 66
По умолчанию

А у меня этого ничего и нету.
только .dpr файл, не более.
Что использую: Windows, TlHelp32, SysUtils.
От SysUtils и хочу избавиться.
iLnes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dll и функции Antistas Общие вопросы Delphi 16 08.02.2011 15:03
Вызов функции из DLL(C#) ZverSS88 Помощь студентам 0 25.11.2010 11:27
Вызов функции из dll-ки VVVadim Общие вопросы Delphi 2 28.04.2009 10:37
Функции binkw32.dll Volkogriz Общие вопросы Delphi 3 16.10.2007 11:46
DLL + Процедуры(не функции) LEKA Общие вопросы Delphi 1 02.05.2007 20:37