С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 9
1

Библиотека dll

12.10.2013, 21:31. Показов 1301. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как реализовать возможность возведения в степень.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
library Project2;
 
{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }
 
uses
  SysUtils,
  Classes;
 
{$R *.res}
function calc(a,b, index:integer) : integer;
begin
if index=0 then
result:=a+b else
if index=1 then
result:=a-b;
if index=2 then
result:=a*b else
if index=3 then
result:=a div b else
end;
exports calc;
begin
end.
 
 
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
function calc(a,b, index:integer) :integer;
external 'Project2.dll';
 
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption:=inttostr (calc(strtoint(edit1.Text), strtoint(edit2.text), combobox1.ItemIndex));
end;
 
end.
Добавлено через 2 минуты
http://zalil.ru/34771734
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2013, 21:31
Ответы с готовыми решениями:

Пытаюсь сделать динамическую загрузку dll. Dll-библиотека не подает признаков жизни
Здравствуйте. У меня такое дело, я пытаюсь создать в своей программе динамическую загрузку...

Dll-библиотека
Пишу длл,процедуры табулирования в модуле все работает ,а в библеотеке выдает ошибки ...

Библиотека dll
Задача звучит так : "Разработать приложение, демонстрирующее вызов из библиотеки dll подпрограмм...

Библиотека DLL
Извините за глупий вопрос... но когда я создал библиотеку Dll у меня в папке где dll появились ещо...

5
Заблокирован
12.10.2013, 21:32 2
SanyaNikCooper,
Я не понял что вы имеете в виду, но в степень возводит функция Power
Надо подключить модуль Math
0
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 9
12.10.2013, 21:36  [ТС] 3
Цитата Сообщение от Lirrk Посмотреть сообщение
SanyaNikCooper,
Я не понял что вы имеете в виду, но в степень возводит функция Power
Надо подключить модуль Math
когда я пишу
uses
Math;
SysUtils,
Classes;
ошибка выходит
Build
[Error] Project2.dpr(15): Declaration expected but identifier 'SysUtils' found
0
пофигист широкого профиля
4753 / 3190 / 860
Регистрация: 15.07.2013
Сообщений: 18,477
12.10.2013, 21:55 4
Цитата Сообщение от SanyaNikCooper Посмотреть сообщение
когда я пишу
А если внимательно посмотреть на то что вы пишете? И подумать где должны быть просто запятые, а где точки с запятой.
1
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 9
12.10.2013, 22:07  [ТС] 5
Цитата Сообщение от northener Посмотреть сообщение
А если внимательно посмотреть на то что вы пишете? И подумать где должны быть просто запятые, а где точки с запятой.
не заметил,спасибо, подскажите пожалуйста еще в одном моменте, как возвести в степень?
пишу хоть так
if index=4 then
result:=exp(a*ln(b)) else
хоть так
if index=4 then
result:=power(a,b) else
Ошибочка выходит Build
[Error] Project2.dpr(30): Incompatible types: 'Integer' and 'Extended'
0
Заблокирован
12.10.2013, 22:58 6
Power работает с дробными числами. и если вы пишите калькулятор, то они все дробные и должны быть. Про целые забудьте.
А вообще Round(Power(X,Y));
1
12.10.2013, 22:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2013, 22:58
Помогаю со студенческими работами здесь

Dll-библиотека
нужно найти min и max из чисел, которые введены в stringgrid (3x3). dll для нахождения min и...

DLL библиотека
Создал DLL библиотеку library Project1; uses SysUtils, Classes, Inifiles; var...

DLL библиотека
Помогите реализовать подключение динамической библиотеки к программе unit Unit1; interface...

DLL Библиотека и поток
Создаю ДЛЛ библиотеку и в ней есть функции связаные с работой в интернете, и хотелось бы сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru