Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi ругается на название функции, в которой структура DEV_BROADCAST_VOLUME 
V
    Опции темы
BEST13
Дата 4.11.2011, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



Доброго времени суток формучани,
хочу реализовать я функцию, которая будет мне выдавать букву подключаемого диска(USB). Вот есть пример:
Код

function GetDrive(pDBVol: PDevBroadcastVolume): string;
var i: Byte;
    Maske: DWORD;
begin
 Maske := pDBVol^.dbcv_unitmask;
 for i := 0 to 25 do begin
  if (Maske and 1) = 1 then
   Result := Char(i + Ord('A')) + ':';
  Maske := Maske shr 1;
 end
end;

procedure tf.WndProc(var Msg: TMessage); // перехват события USB-
begin
 if msg.WParam = DBT_DEVICEARRIVAL then
  if PDevBroadcastHdr(Msg.lParam)^.dbcd_devicetype = DBT_DevTyp_Volume then
 messagebox(handle,pchar(GetDrive(PDevBroadcastVolume(Msg. lParam))),'',0);
end;
 
пытаюсь его реализовать : 
Код

function GetFirstDriveLetter(unitmask: Longint): Char;

 private
   
    procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
  public
    
  end;
  type
  {DEV_BROADCAST_HDR структура служит стандартнным заголовком для инфо
   связаной с устройством, о событии которого было сообщено через
   сообщение WM_DEVICECHANGE.}
  PDEV_BROADCAST_HDR = ^_DEV_BROADCAST_HDR;

  _DEV_BROADCAST_HDR = record
    dbch_size, dbch_devicetype, dbch_reserved:DWORD;
  end;

  PDevBroadcastVolume = ^TDevBroadcastVolume;
  DEV_BROADCAST_VOLUME = packed record
    dbcv_size: DWORD;
    dbcv_devicetype: DWORD;
    dbcv_reserved: DWORD;
    dbcv_unitmask: DWORD;
    dbcv_flags: Word;
  end;
  TDevBroadcastVolume = DEV_BROADCAST_VOLUME;



И вот компилятор выдает такую ошибку: [DCC Error] U_BSF.pas(23): E2065 Unsatisfied forward or external declaration: 'TForm1.GetFirstDriveLetter'
Не могу понять, в чем проблема? 

   
PM MAIL ICQ GTalk   Вверх
alexnef
Дата 4.11.2011, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.4.2010

Репутация: нет
Всего: нет



В примере ф-я возвращает string а в реализации char. Может из-за этого. Попробуй подогнать обе ф-ии к одному типу.
PM MAIL   Вверх
northener
Дата 4.11.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(alexnef @  4.11.2011,  22:24 Найти цитируемый пост)
а в реализации char.

А где код самой реализации?


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
BEST13
Дата 5.11.2011, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



alexnef, Delphi подчеркивает именно имя функции " GetFirstDriveLetter ", и пишет то сообщение, которое я выше приводил.
northener, реализациию не писал, ошибка в названии почемоту, или может я не правельно структуру обявил?
PM MAIL ICQ GTalk   Вверх
Keeper89
Дата 5.11.2011, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Проблема в том, что надо реализацию добавить, а то компилятор ищет и не находит. Приходится ругаться smile


--------------------
PM MAIL WWW   Вверх
BEST13
Дата 5.11.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 11.4.2008
Где: Ukraine

Репутация: нет
Всего: нет



Да, спасибо всем вы правы) что-то я туплю!
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.