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

C++ Dekoracija imena izvežene funkcije

[es] :: C/C++ programiranje :: C++ Dekoracija imena izvežene funkcije

[ Pregleda: 3561 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon C++ Dekoracija imena izvežene funkcije26.06.2006. u 20:18 - pre 217 meseci
Koristim MSVC++ .NET 2003 i kada napravim DLL projekat, i deklarišem funkcije za izvoz iz njega, dolazi mi do toga da kompajlirani DLL sadrži ona "dekorisana" imena izveženih funkcija.
Deklaracija funkcija izgleda ovako :
Code:

#define TESTPG_API __declspec(dllexport)

#ifdef __cplusplus
extern "C" {
#endif
  TESTPG_API int __stdcall MyDestroy();
  TESTPG_API int __stdcall MyUnInitialize();
#ifdef __cplusplus
}
#endif


A DLL sadrži sledeća imena ( uzeto iz Dependency Walker-a ) :
_MyDestroy@0
_MyUnInitialize@0

Ono što mene zanima je da li kojim slučajem postoji neka opcija da se podesi u projektu DLLa pa da se isključi ovo ukrašavanje imena izveženih funkcija?

Hvala
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: C++ Dekoracija imena izvežene funkcije26.06.2006. u 20:42 - pre 217 meseci
Možeš da mu navedeš alias ako koristiš def fajl, ako me pamćenje dobro vara.
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: C++ Dekoracija imena izvežene funkcije26.06.2006. u 21:37 - pre 217 meseci


[Ovu poruku je menjao yooyo dana 29.06.2006. u 14:41 GMT+1]
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije26.06.2006. u 22:54 - pre 217 meseci
Yoyo, zar to nisam već uradio?

Ovakav projekat sam već radio na isti način ( bez DEF fajla ) i sve je radilo kako treba. Zato baš i pitam da nije do nekog podešavanja ili šta ja znam zašto neće da me sluša.
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 09:08 - pre 217 meseci


[Ovu poruku je menjao yooyo dana 29.06.2006. u 14:40 GMT+1]
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 12:06 - pre 217 meseci
Citat:

Nisi.... imas __stdcall viska. Izbaci ga i onda bi trebalo da sve bude OK.

Ali, zar MSVC++ kompajler ne kompajlira __cdecl Calling Convention ako se ne zada drugačije?
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 13:21 - pre 217 meseci


[Ovu poruku je menjao yooyo dana 29.06.2006. u 14:40 GMT+1]
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 13:55 - pre 217 meseci
Izvini za yoyo... ;)

Prvi put čujem da extern "C" znači __cdecl?! To označava linkage, a ne calling convention. Svejedno, nemam nameru još i o tome da raspravljam, jer mi je sve u zastoju zbog glupave C++ dekoracije.
Činjenica je da u opcijama projekta ima da se podesi Calling Convention, ali to bi onda uticalo na sve funkcije u projektu. Možda ja to ne želim.

Probaću preko DEF fajla. Hvala u svakom slučaju...

PS:
Evo, čisto iz znatiželje sam probao da kompajliram bez __stdcall, i sada su imena u redu ?! Ne znam šta da kažem...

[Ovu poruku je menjao stargazer dana 27.06.2006. u 15:05 GMT+1]
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 14:11 - pre 217 meseci
yooyo, baci pogled ovde:

http://www.codeproject.com/cpp...ng_conventions_demystified.asp


 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 20:04 - pre 217 meseci


[Ovu poruku je menjao yooyo dana 29.06.2006. u 14:40 GMT+1]
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije27.06.2006. u 20:39 - pre 217 meseci
Citat:

Npr.. da sam juce umro ovo ne bih znao :)


Ništa mi novo nisi rekao. To je bilo kompajlirano sa __cdecl konvencijom u opcijama, a bez naznačenog __stdcall u prototipima funkcija; a čak i kada se u opcijama projekta podesi __stdcall, on radi tu dekoraciju. Sve u svemu DEF fajl je odradio posao i hvala tati.
PS: Nadam se samo da si pogledao link koji ti je tata preporučio ;)
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: C++ Dekoracija imena izvežene funkcije28.06.2006. u 10:46 - pre 217 meseci


[Ovu poruku je menjao yooyo dana 29.06.2006. u 14:40 GMT+1]
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije28.06.2006. u 11:55 - pre 217 meseci
Pretpostavljam da si ti to već odradio. Reci kakvo je čudo u pitanju i šta treba da se objasni.
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
..shall-bg.customer.sbb.co.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije28.06.2006. u 16:29 - pre 217 meseci



[Ovu poruku je menjao yooyo dana 29.06.2006. u 14:39 GMT+1]
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: C++ Dekoracija imena izvežene funkcije28.06.2006. u 22:51 - pre 217 meseci
Citat:

Funkcije su izvezene na isti nacin ali su prevedene kao C++ i kao C code. Export je drugaciji, tj. c funkcija nije dekorisana a cpp funkcija je dekorisana.


I šta je tu čudno?
Ja pretpostavljam da kada kažeš cpp funkcija, misliš na onu koja se izvozi iz pera.cpp.

Naziv ove teme je :
C++ Dekoracija imena izvežene funkcije

Izvozio sam funkciju iz cpp fajla, i bila je dekorisana.


With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

[es] :: C/C++ programiranje :: C++ Dekoracija imena izvežene funkcije

[ Pregleda: 3561 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

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