Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi

[es] :: Pascal / Delphi / Kylix :: Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi

[ Pregleda: 3040 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SambucusELF
Marko Radojčić
student
Stara Pazova

Član broj: 79125
Poruke: 62
*.dialup.neobee.net.

ICQ: 359912898
Sajt: www.myspace.com/vilenjak


Profil

icon Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi07.03.2007. u 17:03 - pre 208 meseci
ovo je sa Lazarus - foruma.

Citat:

I wrote a pascal unit to use a c dll.
and I used this to create two test programs, one in delphi 7 and the other in lazarus, both running under windows

The delphi version run without any problem.

the lazarus version, after the first call to a dll function give me a sigsegv error. I think there could be a stack corruption.

But wy the same is working good with delphi?

Wath must I do to cacth and fix the problem?

Thanns, angman


ovo sam ja napisao:
Citat:

I can tell you about the stuff people on www.elitesecurity.org were talking about>
If you use a Borland C++ or VC++ library (dll or just lib) it WILL work with delphi, but
in many cases not with gcc or other free compilers and I am almost sure because of a stack corruption.
This happens especially when you are passing a vector to a function in dll, so maybe it should be done
by just passing pointers around, but there could be a problem because in some cases you need to have
a class declaration to be able to work with that type of pointer. This is avoidable via smart pointers in c++,
but it can cause confusion.

How does this help you? It probably doesn't but you should know that these stuff happen to other people aswell, so maybe you should ask some c++ developers about it...

SambucusELF


moze li neko malo vise da pomogne???

link ka strani je ovde: [link]http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&p=16122#16122[/link] - tu se nalazi i code o kome se radi.

Sve se menja.
Promena je stanje koje je konstanto. ??? Ups, kako to?

http://blender-srbija.forummotion.com/
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi07.03.2007. u 17:35 - pre 208 meseci
> If you use a Borland C++ or VC++ library (dll or just lib) it WILL work with delphi, but
> in many cases not with gcc or other free compilers and I am almost sure because of a stack corruption.

To što je neki compiler free ne znači da je loš, da postoje tako krupni problemi oni bi do sada bili otkriveni i ispravljeni. Najpre treba proveriti da i funkcije u dllu i u programu koriste istu calling konvenciju. Ako dolazi do manipulacije sa memorijom u dllu ili programu proveriti kako se to radi, videti uputstvo za dll.
 
Odgovor na temu

SambucusELF
Marko Radojčić
student
Stara Pazova

Član broj: 79125
Poruke: 62
*.dialup.neobee.net.

ICQ: 359912898
Sajt: www.myspace.com/vilenjak


Profil

icon Re: Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi08.03.2007. u 08:16 - pre 208 meseci
potpuno se slazem, ja licno koristim gcc/c++ u okviru Dev-C++ paketa i 100% sam zadovoljan.

inace, (sad nemam vremena, ali) radim u linux-u i cenim sve sto GPL nudi, takodje se trudeci da i sam tome doprinesem, koliko je u mojoj skromnoj moci.

cinjenica je da je bilo problema oko linkovanja biblioteka izmedju gcc (i slicnih) kompajera sa proprietary kompajlerima.

sto se tice calling convention - nesto su pricali o tome,nisam imao vremene da ulazim dublje u temu, a i source se nalazi na linku koji sam dao u prethodnom postu.

moje pitanje je bilo usmereno (na ovom forumu) ka Lazarus/Delphi/Kylix programerima koji su se mogli sresti sa ovakvim provblemom kod linkovanja VC++ dll-ova.

pitanje i dalje stoji. moze li neko da kaze vise, pa da to citiram na lazarus.freepascal.org ?

SambucusELF

P.S. ovo Elf jeste kao vilenjak, ali je ELF nesto sto ce korisnicima linux-a biti poznato...



Sve se menja.
Promena je stanje koje je konstanto. ??? Ups, kako to?

http://blender-srbija.forummotion.com/
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi08.03.2007. u 10:23 - pre 208 meseci
> sto se tice calling convention - nesto su pricali o tome,nisam imao vremene da ulazim dublje u temu, a i source se nalazi na linku koji sam dao
> u prethodnom postu.

Tamo je samo dat pascal source ne i originalni od C dlla.

> moje pitanje je bilo usmereno (na ovom forumu) ka Lazarus/Delphi/Kylix programerima koji su se mogli sresti sa ovakvim provblemom kod
> linkovanja VC++ dll-ova.

Vidim da kaže da je nešto ispravljao u svom kodu pa sada radi, dakle problem nije ni bio do kompajlera već pogrešnog prepeva ili upotrebe.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Lazarus(free pascal compiler) i dll napisan u c jeziku na Windows platformi

[ Pregleda: 3040 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.