Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2010, 13:02   #1
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию DLL в Delphi

Привет всем! Есть такая проблемка:
работая с fpl.dll (DLL для работы с фискальным регистратором).
Так вот, указую функции из DLL для импорта. И такое вот условие:
если криейтить форму с функциями то при запуске приложение сразу же
закрывается. Убираю создание формы - все работает! Подскажите кто может((
RuVarez вне форума Ответить с цитированием
Старый 25.08.2010, 13:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если криейтить форму с функциями
А если динамически подгружать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2010, 13:06   #3
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

Смысли LoadLibrary?
RuVarez вне форума Ответить с цитированием
Старый 25.08.2010, 13:14   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага. И указатель на процедуры получат через GetProcAddress
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2010, 13:17   #5
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

Ты думаеш поможет! Можеш код-пример написать?
RuVarez вне форума Ответить с цитированием
Старый 25.08.2010, 13:24   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Посмотри тут примеры динзагрузки:
http://www.programmersforum.ru/showthread.php?t=58263
http://www.programmersforum.ru/showt...5008#post95008
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2010, 13:24   #7
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

А чем лучше динамическая от статической?
RuVarez вне форума Ответить с цитированием
Старый 25.08.2010, 13:27   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от RuVarez Посмотреть сообщение
Так вот, указую функции из DLL для импорта.
...
если криейтить форму с функциями то при запуске приложение сразу же
закрывается. Убираю создание формы - все работает!
Неправильно записали импорт.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 25.08.2010, 13:30   #9
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

Вот код:

Код:
unit frmFPC;

interface

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

type
  TFPC = class(TForm)
    Button1: TButton;
    GroupBox1: TGroupBox;
    Button2: TButton;
    NX_In: TNxCalcEdit;
    FF: TGroupBox;
    Button3: TButton;
    NX_Out: TNxCalcEdit;
    Button4: TButton;
    Button5: TButton;
    function Reg_OpenKey : Integer;
    procedure Reg_WriteKey;
    procedure Reg_NullKey;
    function FPC_ArticleCut(N : Integer) : String;

    procedure Print_FiscalRec_FP3530;
    procedure InOutMoney_FP3530(Sum : Real);
    procedure X_Rep_FP3530;
    procedure Z_Rep_FP3530;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FPC: TFPC;
  Reg : TRegistry;
  F : Integer;
  G : THandle;

function InitFPort(Port,Baud : Integer) : Integer ; stdcall ; external 'fpl.dll' name 'InitFPort';
function CloseFPort : Integer;stdcall;external 'fpl.dll' name 'CloseFPort';
function ProgrammingArticle(Window:HWND;V : Integer;par:LPARAM; nal:char; cod:integer; gr:integer; Sena:double; pass:LPSTR; name:LPSTR):integer;stdcall;external 'fpl.dll' name 'ProgrammingArticle';
function    DeleteArticle(hWin:HWND; fun:Integer; par:LPARAM; cod:integer; pass:LPSTR):integer; stdcall  ;external 'fpl.dll' name 'DeleteArticle';
function    ServiceInputOutput(hWin:HWND; fun:Integer; par:LPARAM ; sum:Double) :integer; stdcall	;external 'fpl.dll' name 'ServiceInputOutput';
function    GetStatus(hWin:HWND; fun:Integer; par:LPARAM; int1: BOOL):integer; stdcall	;external 'fpl.dll' name 'GetStatus';
function    OpenFiscalReceipt(hWin:HWND; fun:Integer; par:LPARAM;i1: DWORD;i2: LPSTR;i3: DWORD;i4: BOOL):integer;stdcall;external 'fpl.dll' name 'OpenFiscalReceipt';
function    CloseFiscalReceipt(hWin:HWND; fun:Integer; par:LPARAM):integer; stdcall	;external 'fpl.dll' name 'CloseFiscalReceipt';
function    SaleArticleAndDisplay(hWin:HWND; fun:Integer; par:LPARAM; sign: Boolean;  numart:integer; qwant,perc,dc:double ):integer; stdcall  ;external 'fpl.dll' name 'SaleArticleAndDisplay';
function  FiscalClosure(H : HWND; fun : Integer;C : LPARAM;TypeReport : Char) : Integer;stdcall;external 'fpl.dll' name 'FiscalClosure';

implementation

{$R *.dfm}
и т.д\

Последний раз редактировалось Stilet; 25.08.2010 в 13:39.
RuVarez вне форума Ответить с цитированием
Старый 25.08.2010, 14:05   #10
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

Кстати попробовал динам. загрузку тоже не работает((
RuVarez вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dll в delphi xmaksimca БД в Delphi 6 06.05.2010 10:28
dll в Delphi Нур Общие вопросы Delphi 2 12.04.2010 23:21
Delphi dll tanek Помощь студентам 6 14.03.2010 15:38
DLL в DELPHI Шульц Общие вопросы Delphi 6 11.01.2009 08:28
Создать DLL на C# и вызвать её в Delphi (Delphi) RIO Общие вопросы Delphi 2 25.03.2008 15:33