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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DLL 
:(
    Опции темы
Vladimir1988
  Дата 2.12.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите пожалуйста, почему при использовании DLL (ниже) если переменные проходят по условию все равно выходит сообщение. 

DLL 
Код

library Project2;

uses
  SysUtils,
  Windows,
  Classes;

{$R *.res}
type
TMyClass = class(TObject)
v1: real;
v2: real;
end;

 procedure MyFirstFunc(My:TMyClass);
 begin
  if (My.v1<2) or (My.v1>10) then
  begin
  MessageBox(0, 'Значения должны быть от 2 до 10. Повторите ввод', 'dll', MB_OK);
  Exit;
  end;
  if (My.v2<2) or (My.v2>10) then
  begin
  MessageBox(0, 'Значения должны быть от 2 до 10. Повторите ввод', 'dll', MB_OK);
  Exit;
  end;
end;
exports
   MyFirstFunc;
function MySum (My:TMyClass): real; 
 begin
   Result:=My.v1+My.v2;
end;
exports
  MySum; 
begin
end.


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


Эксперт
***


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

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



А где код вызова?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Vladimir1988
Дата 2.12.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот:

Код

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Edit3: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;
type
  TMyClass = class(TObject)
    v1: real;
    v2: real;
  end;
var
  Form2: TForm2;
  My: TMyClass;
implementation

uses
  Unit1;
  procedure MyProc();  external 'Project2.dll' name 'MyFirstFunc';
  function MySum (My:TMyClass): real;  external 'Project2.dll';
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
 My := TMyClass.Create;
   begin
     DecimalSeparator := ',';
     My.v1:=strtofloat(StringReplace(Form1.edit1.text,'.',',',[]))
   end;
   begin
     DecimalSeparator := ',';
     My.v2:=strtofloat(StringReplace(Form1.edit2.text,'.',',',[]))
   end;
      MyProc();
       Form2.Edit3.Text := floattostr (MySum(My));
 My.Free;
end;
end.



Еще есть Unit1, но там только два Edit для ввода значений
PM MAIL   Вверх
Демо
Дата 2.12.2009, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



У функции MyProc должен быть параметр.


--------------------
    
PM MAIL ICQ Skype   Вверх
Beltar
Дата 3.12.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А соглашения о вызове, например, stdcall не нужны разве?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Демо
Дата 3.12.2009, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Beltar @  3.12.2009,  00:09 Найти цитируемый пост)
А соглашения о вызове, например, stdcall не нужны разве?


Соглашения должны быть просто однаковыми.


--------------------
    
PM MAIL ICQ Skype   Вверх
Vladimir1988
Дата 3.12.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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