Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.01.2008, 17:13
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
Вопрос DLL. Процедуры и функции.

Привет всем. У меня возникла проблема.
Мне нужно:
1) создать dll и в этой DLL процедуру определения серийного номера HDD;
2) вызвав с dll данную функцию вывести ее результат в файл .txt

Пытался сделать сам не получилось , искал в инете примеры работы с DLL дам там все поверхностно. Буду очень благодарен за помощь.
P.S. Раньше с DLL никогда не работал, так что извините если вопрос идиотский.
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #2  
Старый 18.01.2008, 17:27
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Вот есть примерчик (правда на С++)
http://www.sources.ru/pascal/disks/hdd_num.zip
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 18.01.2008, 17:29
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

А вот еще одна процедурка:
Код:
 procedure TForm1.Button1Click(Sender: TObject);
var
SerialNum:Pdword;
a,b:Dword;
buffer:array [0..255] of char;
begin
new(SerialNum);
if getVolumeInformation('d:\',buffer,sizeof(buffer),SerialNum,a,b,nil,0) then
Label1.Caption:=IntToStr(SerialNum^);
Dispose(SerialNum);
end; 
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #4  
Старый 18.01.2008, 18:21
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Вот тут про Dll
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #5  
Старый 18.01.2008, 19:39
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Yurk@, я об этом методе определения S/N HDD уже знал.
The Shadow, спасибо, но я это уже находил в интернете.
Я не могу составить программу у меня выводит S/N в виде абдакадабры.
Кто-нибудь может составить программу именно с пунктами, что выше. Очень надо. Или мне выложить исходники того, что я уже сделал?
__________________
Программирование - это искусство и наш смысл жизни.

Последний раз редактировалось moo2k, 25.02.2008 в 16:58.
Ответить с цитированием
  #6  
Старый 18.01.2008, 19:51
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Давай исходный код! Посмотрим, что можно сделать
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #7  
Старый 18.01.2008, 20:24
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Блин он у меня сейчас потерян.
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #8  
Старый 18.01.2008, 22:14
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Сообщение DLL. Процедуры и функции.

DLL:
Код:
library HDDSNDLL;

uses
  Windows,
  Classes;

{$R *.res}

function GetHDDSerial(out SN:DWORD):Boolean;
var
 a,b:Dword;
 buffer:array [0..255] of char;
begin
 Result := getVolumeInformation('d:\',buffer,sizeof(buffer),@SN,a,b,nil,0);
end;

exports  GetHDDSerial name 'GetHDDSerial';

begin
end.

В программе до implementation пиши:
Код:
function GetHDDSerial(out SN:DWORD):Boolean; external 'HDDSNDLL.dll' name 'GetHDDSerial';
Вызов:
Код:
var N:DWORD;
begin
 if  GetHDDSerial(N) then ShowMessage(IntToStr(N));
end;
Запись в файл, думаю, напишешь сам.
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #9  
Старый 19.01.2008, 10:48
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Rokuell, спасибо. Сильно выручил.
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #10  
Старый 19.01.2008, 15:07
Аватар для zip000
zip000 zip000 вне форума
Начинающий
 
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
По умолчанию

Добавлю лишь, что лучше юзать метод вызова функций из DLL - stdcall (передача аргументов через стек), по умолчанию там fastcall (передача через регистры).
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
Ответить с цитированием
  #11  
Старый 25.02.2008, 15:42
Игорь22 Игорь22 вне форума
Прохожий
 
Регистрация: 25.02.2008
Сообщения: 2
Репутация: 10
По умолчанию

Добрый день!
Большое спасибо этому чудесному сайту, большое спасибо программистам, которые отвечают на вопросы.
По сути: мне необходимо создать программу, только не знаю с какого места зайти в Делфи. Основная функция программы заключается в том, что при нажатии на любую кнопку в Windows-ce, Internet Explorer, флешь анимации (это самое главное), эта кнопка распознавалась, и в программе происходили какие нибудь действия, например записывалось что Пользователь в такое то в время нажал кнопку «добавить» во флешь анимации, или закрыть.
Распознавание кнопки хотелось бы, что происходило при помощи сравнения с таким же рисунком, например, Пользователь нажал кнопку «закрыть» далее сработала моя программа, она сравнила со своей базой кнопок «закрыть» с кнопкой которую, нажал пользователь…
Так же программа должна, сама понимать на какую кнопку нажал пользователь, просто есть кнопки, которые нельзя распознать как текст, например «>>>» что обозначает далее.
Буду рад пообщаться с умными людмию..
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter