Доброе время суток, Alex! Во втором случае переменная x создается в стеке. Т.е. в стеке будет отведено место под переменную типа LBBYTE и значение этой переменной будет храниться в этом месте в стеке. В первом случае вы объявляете указатель на переменную типа LPBYTE. Указатель представляет собой 4х байтовый адрес, который указывает на место в памяти где будет храниться переменная типа LPBYTE. Т.е. в стеке будет храниться не значение переменной, а адрес этой переменной в памяти. Когда вы пишете LPBYTE *x в стеке просто освободится место для хранения адреса, но сам адрес запишется когда вы будете использовать оператор new либо присвоение указателя. Пример: int x = 5; int *y = new int; *y = 5; В первом случае в стеке освободится 4 байта под хранение значения переменной x и туда запишется число 5. Во втором случае в стеке освободится 4 байта под
хранение адреса, указывающего на переменную y. После выполнения оператора new в памят
и (уже не в стеке) дополнительно освободится еще 4 байта для хранения значения переменной y. Адрес этих выделенных в памяти 4х байт запишется в стек, туда где перед этим было освобождено мето для хранения указателя. Затем при выполнении инструкции *y = 5; из стека возьмется адрес переменной y и по этому адресу запишется значение 5. Вот что будет происходить в памяти: При "int x = 5;" в стеке например по адресу 120004h запишется число 5. При выполнении инструкции "int *y = new int;" выделится 4 байта в памяти например по адресу 8D0000h и адрес 8D0000h запишется в стек по адресу например 120000h. При выполнении инструкции "*y = 5;" из стека по адресу 120000h возьмется адрес переменной (8D0000h) и по этому адресу (8D0000h) запишется число 5. Читайте про указатели, обязательно смотрите в отладчике что происходит. А для этого нужно самое минимальное
понятие ассемблера. Ответ отправлен: 10.08.2004, 15:44 Отправитель: CrackLab Отвечает sir henry
Доброе время суток, Alex! LPBYTE *x - перенная-указатель на тип LPByte, LPBYTE x - переменная типа LPByte.
Ответ отправлен: 11.08.2004, 07:40 Отправитель: sir henry Отвечает THE_PRO
Добрый день, Alex! LPBYTE *x - тут "х" это указатель на область в памяти куда можно записывать данные типа LPBYTE Ответ отправлен: 11.08.2004, 10:02 Отправитель: THE_PRO
Вопрос № 1734
нужно вывисти диалог с кнопками да и нет (отмена) (не yes & cancel) причем надо задать текст в диалоге его заголовке и вывисти на нём синий восклю знак (information) среда delphi6
Приветствую Вас, menand! MessageBox(form1.Handle,'Text','Caption',MB_ICONINFORMATION+MB_YESNO); Подробнее о иконках, клавишах и возвращаемом резельтате можно узнать в файле справки. -------------------------- -=Experts helper: testmode=- Ответ отправлен: 13.08.2004, 13:51 Отправитель: samum2000 Отвечает CrackLab
Доброе время суток, menand! Используйте API функцию MessageBox. Посмотреть документацию сейчас не могу, но по памяти так: MessageBox(0, 'This is Text', 'This is Caption', MB_OKCANCEL or MB_ICONINFORMATION); Функция возвратит IDOK или IDCANCEL в зависимости от нажатой кнопки. Ответ отправлен: 11.08.2004, 01:52 Отправитель: CrackLab Отвечает sir henry
Здравствуйте, menand! Специально для этого есть функция (если у Вас не английская версия ОС): function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall; hWnd - хэндл хозяина; lpText - текст сообщения; lpCaption - текст заголовка; uType - набор параметров, где указывается какие кнопки и какая иконка. Для Вас: MB_YESNO - "Да, Нет"; MB_YESNOCANCEL - "Да, Нет, Отмена" MB_ICONINFORMATION - иконка "Информация". Все параметры плюсуются. Ответ отправлен: 11.08.2004, 07:50 Отправитель: sir henry Отвечает THE_PRO
Добрый день, menand! function MessageDlg(...):Integer Ответ отправлен: 11.08.2004, 10:01 Отправитель: THE_PRO
Вопрос № 1735
Здравствуйте... Делаю программку, для записи разговоров через модем, типа ModemSpy, разобрался уже со всем,с командами модема, и тд, тока вот не знаю как записывать с модема... может есть какие то компоненты??? Все исходники/компоненты которые я находил, записывали тока с звук. карты, а мне нужно с модема, может кто то видел такое???
Здравствуйте, Михаил! Система Voice Modem видит и как модем и как звуковое устройство, это можно посмотреть в диспетчере устройств/звуковые карты. Соответственно с модема звук можно читать как со звуковой карты.
Ответ отправлен: 11.08.2004, 12:36 Отправитель: E-terra experts
Вопрос № 1736
Привет! Спасибо за помощь. У меня возник еще один вопрос: Что означает LPBYTE *x - перенная-указатель на тип LPByte? Раз тип LPByte является указателем на тип Byte ( type LPByte = ^Byte) то получается что переменная х является указателем на тип, который сам является указателем - указатель на указатель? И еще: LPBYTE x - переменная типа LPByte (тоже взято из ответа одного из экспертов)- разве в этом случае х не является указателем на Byte? Прокомментируйте пожалуйста , а то я пока слабо разбираюсь в вопросах касательно указателей, хотелось бы поглубже разобраться. Спасибо.
Добрый день, Alex! Вы рассуждаете правильно LPByte *x //если компилируется тогда x будет указывать //на 32 битное число которое является указателем //на 8 битное число. //То есть: LPByte* -> LPByte -> Byte //если конечно компилится Ответ отправлен: 11.08.2004, 14:11 Отправитель: THE_PRO Отвечает Boriss
Добрый день, Alex! Такие вещи нужны, если захотите изменять значение не только переменной, но и указателя. А это бывает не часто Ответ отправлен: 12.08.2004, 09:43 Отправитель: Boriss Отвечает CrackLab
Приветствую Вас, Alex! В общем-то комментировать нечего. Вы все правильно говорите. Главное чтобы вы еще понимали то что говорите и как это все выглядит в памяти. Ответ отправлен: 11.08.2004, 15:10 Отправитель: CrackLab Отвечает sir henry
Приветствую Вас, Alex! 1. Я, честно говоря, тоже не совсем понимаю, зачем нужен "указатель на указатель" :). Для этого надо смотреть Вашу программу. 2. LPBYTE x - это действительно указатель. И что тут комментировать? :) Ответ отправлен: 12.08.2004, 05:31 Отправитель: sir henry
Вопрос № 1737
Всем спасибо! To CrackLab - насчет размещения в памяти было бы неплохо. Благодарю за сотрудничество!
Добрый день, Alex! OK Ответ отправлен: 12.08.2004, 09:48 Отправитель: THE_PRO Отвечает CrackLab
Здравствуйте, Alex! Ну если есть какие-то вопросы - можешь обращаться на ICQ 906789. Ответ отправлен: 11.08.2004, 19:07 Отправитель: CrackLab
Вопрос № 1738
Уважаемые эксперты, как в Delphi выводить данные из таблиц Paradox (и из других) выводить строки, отсортированные по возрастанию даты(не обрабатывая формата Дата-время)?
Здравствуйте, Olegandr! SQL запрос будет выглядеть примерно так: SELECT * FROM mytable ORDER BY birthdate; Если по убыванию, то так: SELECT * FROM mytable ORDER BY birthdate DESC; -------------------------- -=Experts helper: testmode=- Ответ отправлен: 13.08.2004, 13:51 Отправитель: samum2000 Отвечает Boriss
Приветствую Вас, Olegandr! Примеры этого описаны во всех учебниках и статьях. Видимо, что-то Вы имеете в виду особенное? Связанное с Вашей БД? Ответ отправлен: 12.08.2004, 09:40 Отправитель: Boriss Отвечает sir henry
Доброе время суток, Olegandr! Специально для вывода данных из таблиц (например Парадоксовских) в Дельфи есть множество компонентов, например DBGrid. За сортировку по тем или иным полям отвечают индексы таблицы. Это независимо друг от друга. Видимо Вы имели в виду что-то другое. Уточните пожалуйста вопрос. Ответ отправлен: 12.08.2004, 05:36 Отправитель: sir henry
Вопрос № 1739
Пожалуйста киньте ссылочки на электронные книжки для начинающих по Buider'у . С++ знаю.
Добрый день, Paul! У меня ссылок нет, но на винчестере какие-то валяются. Могу выложить в инет. Если нужно - rusfaq собачка avtograd.ru Ответ отправлен: 11.08.2004, 19:06 Отправитель: CrackLab Отвечает Boriss
Здравствуйте, Paul! http://www.bcbdev.ru/ - начни с этого Ответ отправлен: 12.08.2004, 09:35 Отправитель: Boriss Отвечает sir henry
Добрый день, Paul! Вообще лучше спросить в поисковике. :) Одна из ссылок на книжку вот: http://anatolix.naumen.ru/bcbbooks.htm Ответ отправлен: 12.08.2004, 05:41 Отправитель: sir henry
Вопрос № 1740
К вопросу 1731. Для меня важно, чтобы при нажатии на указанные клавиши клавиатуры, соответственные кнопки УТОПАЛИ(нажимались), а не реакция на KeyPress или KeyDown.
Здравствуйте, Zaknafeyn! Рисуй сам! Ответ отправлен: 12.08.2004, 13:50 Отправитель: THE_PRO
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.