Šta je novo?

UnitToHeader

hwfanatic

Čuven
Učlanjen(a)
13.02.2002
Poruke
659
Poena
630
Da li ima neke sanse da mi neko od sledeceg delphi unit-a napravi c++ header?
Kod:
unit cae;

interface
function MakeUniversal(FileName: String; Enabled: Boolean; DateTime,
  EndDateTime: Double; RunForever: Boolean; Period: Integer;
  lpOperation, lpFile, lpParams, lpDirectory: String;
  nShowCmd: Integer): Boolean;
function MakeOneTime(FileName: String; Enabled: Boolean; DateTime: Double;
  lpOperation, lpFile, lpParams, lpDirectory: String;
  nShowCmd: Integer): Boolean;

implementation
function MakeUniversal(FileName: String; Enabled: Boolean; DateTime,
  EndDateTime: Double; RunForever: Boolean; Period: Integer;
  lpOperation, lpFile, lpParams, lpDirectory: String;
  nShowCmd: Integer): Boolean; external 'cexport.dll';
function MakeOneTime(FileName: String; Enabled: Boolean; DateTime: Double;
  lpOperation, lpFile, lpParams, lpDirectory: String;
  nShowCmd: Integer): Boolean; external 'cexport.dll';
end.
Hvala unapred!
 
Poslednja izmena:
Ok, ajde da probam sledeci pristup... Ja zapravo znam kako da prevedem veci deo ovog koda (moram znati neku osnovnu c sintaksu jer se bavim Windows programiranjem), ali je stvar u tome da nemam pojma sta sve treba da sadrzi jedan header, koji je ekvavilent rezervisanoj reci external i tako to. A povrh svega, nemam nikakvu c dokumantaciju pri ruci. :(

Resenje mozda nekome oduzme par minuta, ali ce meni puno znaciti...
 
Sta ti treba - hoces da napravis dll ili sta?
 
Imam vec kompajliranu bilbioteku... Treba mi parce koda koje ce omoguciti da je c/c++ korisnici i upotrebe. :)
 
U principu ako zelis da napravis c header potrebno je da napravis dva fajla koje ces redom nazvati npr proba.h i proba.c . U zaglavlju proba.h pises nesto tipa :

#ifndef PROBA_H
#define PROBA_H 1

i u njemu ce ti se nalaziti definicije funkcija koje ce biti sadrzane u header-u
npr.

void funkcija (int) ;

U fajlu proba.c ce ti se nalaziti sam kod funkcija npr.
void funkcija(int param)
{
/*
*
*/
}
i obavezno u zaglavlju
#include "proba.h"

pozdrav...
 
Ali, ja ne bih bas da pravim te funkcije opet u jeziku koji ne poznajem dovoljno, kada vec imam gotovu bilbioteku...
 
Pazi, zavisi u kojem C++ paketu radis i da li to hoces da uradis staticki ili dinamicki.
Ako radis staticki, onda obicno moze da se uradi dodavanje dll-a projektu (Add to Project) pa onda sa "__declspec(dllimport) tip_koji_se_vraca naziv_funkcije_i_parametri;" (npr. __declspec(dllimport) void iscrtaj(void);)
Ovako je bar staticki sa borlandovim C++ builderom, a trebalo bi da radi i sa MS.

A ako radis dinamicki, radis sa istim WinAPI funkcijama kako se koristi i u delphiju - znaci ides prvo sa LoadLibrary, pa uzmes hendl sa GetProcAddress, itd - i na kraju FreeLibrary.
 
Kewl, 10x. Mislim da ce mi staticka metoda odgovarati. Samo, dllimport je ime biblioteke, zar ne?
 
Ne, to je kljucna rec. Kada uradis Add To Project, ta akcija importovanja napravi listu exportovanih funkcija iz dll-a interno i ti moras samo da redeklarises funkciju kao sto je gore opisano.

P.S.
Ako vec imas taj neki c/c++ zar nemas neki help u njemu?
 
Stvar je u tome sto nemam nikakav C++ alat pri ruci, niti dokumantaciju, a usput, kao sto vidis, nemam pojma da radim u tome. Samo sam hteo da likovi koji ne koriste Delphi ipak mogu da koriste moju biblioteku. Izgleda da ce to biti lakse opisati recima nego nekim kodom... Hvala, u svakom slucaju.
 
Vrh Dno