![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что значит the default directory ;в параметрах функции? [D6, WinXP]
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 как объявлен и какие действия с ним произведены до вызова функции ?