Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Что значит the default directory ;в параметрах функции? [D6, WinXP]


Страницы:   1 2

Matolch ©   (2002-12-12 13:06:00) 

HINSTANCE FindExecutable(

LPCTSTRlpFile, // pointer to string for filename
LPCTSTRlpDirectory, // pointer to string for default directory
LPTSTRlpResult // pointer to buffer for string for executable file on return
);

lpDirectory
Pointer to a null-terminated string specifying the default directory.


Access Violation   (2002-12-14 06:52:00) [1]


> Игорь Шевченко © (13.12.02 09:35)

Круто я вас подловил!!!
OpenFile - недостаточно параметров
LookForDesiredValue - нет такой функции


Игорь Шевченко   (2002-12-13 13:30:00) [2]

Cobalt © (13.12.02 13:10)

????

А что, в заголовочных файлах объявлено не текущее значение ?


> Линукс в этом отношении рулит

Да нехай себе рулит...


Cobalt   (2002-12-13 13:10:00) [3]

2 Игорь Шевченко © (13.12.02 09:35)
Я ведь не о том. Вы (кажется, или может, кто-то другой) упоминали о том, что эта символическая константа может быть разной для разных ОСей.
Мда, Линукс в этом отношении рулит - можно откомпилить исходники с учетом текущего значения...


Игорь Шевченко   (2002-12-13 09:35:00) [4]

Есть.

function YourEyes (const FileName, Value : String) : Integer;
begin
OpenFile(FileName);
Result := LookForDesiredValue(Value);
end;

Использование:
MaxPath := YourEyes("windows.pas", "MAX_PATH");


Matolch   (2002-12-13 09:13:00) [5]

Интересно.


Cobalt   (2002-12-13 00:47:00) [6]

Интересно, нет ли у Виндов такой недокументированной функции: unsigned int GetMax_Path();?


Игорь Шевченко   (2002-12-12 16:44:00) [7]


var
A : array[0..MAX_PATH] of char;

...
I := sizeof(A); { Получишь значение константы MAX_PATH + 1 }


Matolch   (2002-12-12 15:13:00) [8]


> Игорь Шевченко © SizeOf.

Так я понял, его ещё надо заставить это сделать & SizeOf(чего?).
BitBlt будем пробовать.


Matolch   (2002-12-12 15:13:00) [9]


> Игорь Шевченко © SizeOf.

Так я понял, его ещё надо заставить это сделать & SizeOf(чего?)


Игорь Шевченко   (2002-12-12 15:06:00) [10]

Matolch © (12.12.02 15:01)

Только для компилятора. А приложение может узнать, сказав SizeOf.

Про икону - можно нарисовать оба этих битмапа в memory device context (BitBlt с соответствующими растровыми операциями) и получится полноценный вид иконы.


Matolch   (2002-12-12 15:01:00) [11]

А ещё, MAX_PATH объявлен как константа, есть ли повод утверждать, что приложение получит информацию о том, что для Windows эта константа уже не 260, а 275, или это действительно только для компилятора?


app   (2002-12-12 15:00:00) [12]

было 66, затем 144, затем 260, сейчас идет речь об 1024
Использование константы позволяет избежать проблем
А меняется потому, что меняется файловая система


Matolch   (2002-12-12 14:52:00) [13]

MAX_PATH.
А есть еще такой вопрос: вот я вытащил иконку при помощи

ExtractIconEx(ResPChar, 0, HL, HS, 1);

Из IconInfo получаю два HBITMAP:

BColor.Handle := IconInfo.hbmColor;
BMask.Handle := IconInfo.hbmMask;

Как-то можно слить их в один, чтобы получить полноценный вид?


Matolch   (2002-12-12 14:52:00) [14]

MAX_PATH. Это понятно, но почему меняется.
А есть еще такой вопрос: вот я вытащил иконку при помощи

ExtractIconEx(ResPChar, 0, HL, HS, 1);

Из IconInfo получаю два HBITMAP:

BColor.Handle := IconInfo.hbmColor;
BMask.Handle := IconInfo.hbmMask;

Как-то можно слить их в один, чтобы получить полноценный вид?


Anatoly Podgoretsky   (2002-12-12 14:46:00) [15]

Нет не 260, а именно MAX_PATH, оно меняется со временем


Matolch   (2002-12-12 14:40:00) [16]

Ясно, 260, но почему так?


Anatoly Podgoretsky   (2002-12-12 14:27:00) [17]

Если ты понял про ResPChar, то надо ResPChar : array [0..MAX_PATH] of char;


Matolch   (2002-12-12 14:24:00) [18]


> Игорь Шевченко ©

Все понял: array [0..255] of char;

Спасибо огромное.


Matolch   (2002-12-12 14:19:00) [19]

var
ResPChar: PChar;
begin
ResPChar := "";
и далее приведенный код


Игорь Шевченко   (2002-12-12 14:16:00) [20]


> FName := PChar(FileName);
> FDir := PChar("C:\Program Files\"); //как только не пробовал
> FindExecutable(FName, FDir, ResPChar);


ResPChar как объявлен и какие действия с ним произведены до вызова функции ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо