Skocz do zawartości

39dll & Delphi


mike_p

Rekomendowane odpowiedzi

Chciałbym przenieść serwer do sitda na Delphi, tylko do tego potrzebna będzie obsługa 39dlla.

 

W przykładach z Marbs Online :F jest funkcja dll_init(), w której są rzeczy typu

global._BufA = external_define(global._39dll, "WriteByte", dll_cdecl, ty_real, 1, ty_real);

 

I jak ja to mam teraz zapisać w Delphi? :| Jest zdaje się takie coś:

procedure <nazwawprogramie>; stdcall external '<ścieżkadlla>' name '<nazwawdllu>';

Tylko czy to zawsze jest procedura? I jak tu zapisać argumenty? :F

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

ja już mam przepisane to na delphi bo sam pisze server dla potomnych :P może później ci podrzucę to :) pamiętaj że ty_real musi być zadeklarowane w delphi jako Double a ty_string jako pchar! :) używaj też pointerów...

 

EDIT

 

unit dll39;

interface

//buffer write
function WriteByte(data:double):double; cdecl; external '39dll.dll';
function WriteString(data:pchar;writesize:double):double; cdecl; external '39dll.dll';
function WriteShort(data:double):double; cdecl; external '39dll.dll';
function WriteInt(data:double):double; cdecl; external '39dll.dll';
function WriteFloat(data:double):double; cdecl; external '39dll.dll';
function WriteDouble(data:double):double; cdecl; external '39dll.dll';

//buffer read                                           
function ReadByte():double; cdecl; external '39dll.dll';
function ReadString(size:double;separator:pchar):pchar; cdecl; external '39dll.dll';
function ReadShort():double; cdecl; external '39dll.dll';
function ReadInt():double; cdecl; external '39dll.dll';
function ReadFloat():double; cdecl; external '39dll.dll';
function ReadDouble():double; cdecl; external '39dll.dll';

//buffer other
function ClearBuffer():double; cdecl; external '39dll.dll';
function SetPos(pos:double):double; cdecl; external '39dll.dll';
function GetPos(pos:double):double; cdecl; external '39dll.dll';
function BufferSize():double; cdecl; external '39dll.dll';
function CreateBuffer():double; cdecl; external '39dll.dll';

implementation

end.

jutro podam resztę jak znajde czas... (name nie jest konieczne jeżeli nie musisz zmienić nazwy funkcji)

 

http://host-a.net/39ster/39dllV25.zip tu masz source w C++ jak chodź trochę znasz to napewno przetłumaczysz na delphi deklaracje według mojego wzoru :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...