Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 3.901 pregleda

Najnovija ↓

delphi i c++ dll 20.02.2006. u 13:16 · pre 251 mesec #1
Imam c++ dll koji poseduje f-ju koja izgleda ovako:

Code:
RASTER_API unsigned char* GetImageFromRasterInstance(void *instance , int &imageWidth , int &imageHeight);


tj f-ja vraca niz bajtova. Medjutim nikako ne mogu da importujem tu funkciju tako da mogu da je koristim iz Delphi koda. Stvar je u tome da se dimenzije niza koga funkcija vraca kreiraju unutar funkcije.

Ovako sam importovao f-ju u delphi:

Code:
function GetImageFromRasterInstance(instance: Pointer;
                                    var imageWidth: Integer;
                                    var imageHeight: Integer): Pointer cdecl  {$IFDEF WIN32} stdcall {$ENDIF};


Osim tipa (za povratnu vrednost funkcije) Pointer probao sam i TByteArray , PByteArray , array of byte , Variant ali nista nije pomoglo jednostavno cim je funkcija ubacena u kod program puca. Da li neko ima neku ideju kako bi moglo ovo da se sredi? Hvala unapred
Potpis
His majesty Grand Duke of Shumadija and Western Pomoravlje
Re: delphi i c++ dll 20.02.2006. u 15:14 · pre 251 mesec #2
Nisi bio precizan; sta znaci "cim se funkcija ubaci u kod, program puca"?
Cim startujes program, ili kad pokusas da izvrsis funkciju? Daj neki kod/text greske.
Kako si importovao funkciju, staticki ili dinamicki?

Rajko
Re: delphi i c++ dll 20.02.2006. u 15:23 · pre 251 mesec #3
meni to smrdi na pogresan calling convension. Proveri kako je tacno definisan RASTER_API i da li u delphiu imas definisan WIN32.
Re: delphi i c++ dll 20.02.2006. u 15:26 · pre 251 mesec
izmenjeno 1 put, poslednji put masetrt 20.02.2006. u 15:33
  1. masetrt20.02.2006. u 15:33zapis iz teksta poruke
#4
Program je pucao kada se pokrene aplikacija, znaci pre poziva funkcije. Funkcije su linkovane staticki ne dinamicki. Greska je bila u tome shto u definisanju funkcije u c++ kodu nije bilo extern "C" posle ubacivanja toga sve je OK. RASTER_API je bio definisan sa:
#define RASTER_API __declspec(dllexport). Bash glupo sto to nisam naveo, ali hvala vam u svakom slucaju
Potpis
His majesty Grand Duke of Shumadija and Western Pomoravlje
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme