Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
CD-ROM [11]
DLL и PlugIns [75]
Help файлы [20]
INI файлы [16]
RS232 [2]
Активные директории [1]
Директории [0]
Диски [0]
Корзина [5]
Порты [26]
Ресурсы [0]
Файлы [0]
Форматы файлов [15]
Ярлыки [0]

Наш опрос
Какие компоненты добавлять больше?
Всего ответов: 49

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Файловая система » DLL и PlugIns

Использование C-шной DLL
unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class(TForm) Button1: TButton; Button2: TButton; FooData: TEdit; Button3: TButton; Button4: TButton; SetCVarData: TEdit; GetCVarData: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; _GlobalVar: PChar = 'This is a Delphi String'; implementation uses PasStrng; {$R *.DFM} {$L ccode.obj} type TFoo = class function Function1(Str1: PChar): integer; virtual; cdecl; abstract; function Function2(i: integer): integer; virtual; cdecl; abstract; end; PCharArray = ^TCharArray; TCharArray = array[0..127] of char; // import from OBJ file: function _SAYHELLO(Text: PChar): Integer; cdecl; external; procedure _C_VAR; external; // trick to import OBJ data // imports from DLL file: function ClassFactory: TFoo; cdecl; external 'cdll.dll' name '_CLASSFACTORY'; procedure ClassKill(Foo: TFoo); cdecl; external 'cdll.dll' name '_CLASSKILL'; procedure TMainForm.Button1Click(Sender: TObject); begin _SayHello('hello world'); end; procedure TMainForm.Button2Click(Sender: TObject); var Foo: TFoo; begin Foo := ClassFactory; Foo.Function1('huh huh, cool.'); FooData.Text := IntToStr(Foo.Function2(10)); ClassKill(Foo); end; function GetCArray: string; var A: PCharArray; begin A := PCharArray(@_C_VAR); Result := A^; end; procedure SetCArray(const S: string); var A: PCharArray; begin A := PCharArray(@_C_VAR); StrLCopy(A^, PChar(S), SizeOf(TCharArray)); end; procedure TMainForm.Button3Click(Sender: TObject); begin SetCArray(SetCVarData.Text); end; procedure TMainForm.Button4Click(Sender: TObject); begin GetCVarData.Text := GetCArray; end; end.
Категория: DLL и PlugIns | Добавил: Skinner (06.07.2008)
Просмотров: 378 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz