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

BBuilderC++, .NET - kompatibilnost

[es] :: .NET :: BBuilderC++, .NET - kompatibilnost

[ Pregleda: 1315 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

erkan
Sarajevo

Član broj: 12339
Poruke: 267
*.team.ba.

ICQ: 238530669


Profil

icon BBuilderC++, .NET - kompatibilnost21.08.2006. u 09:37 - pre 215 meseci
Pozdrav svima,

Imam projekat koji je napisan u C++-u, a kao razvojno okruzenje
koristen je BBuilder 6.0.
Projekat je pogolem a jedan dio logike tog projekta bih trebao iskoristiti
u novom projektu koji bih najradije radio u C#-u.
Dio logike o kom govorim je u dll-ovima i LIB-ovima.
Sad se postavlja pitanje kako u .NET-u iskoristiti te bilbioteke (dll, lib)
obzirom da Borlandova rjesenja nisu kompatibilan sa MS-om(mada, iskreno nisam probao
jer je povelik posao, tako da zasad samo istrazujem).
Molio bih za savjet, prijedlog i sl.
Da li je moguce napraviti COM interfejs pa pristupati tim bibliotekama
(naravno, imam kod svih tih biblioteka napisanih u BB-u) iz .NET-a ili je
moguce napraviti neki managed C++ wrapper u C++.NET-u pa tako dobijeno rjesenje koristiti
u C#-u ili... sta vec?!
Da li neko vec ima slicno iskustvo?
Svaki savjet je dobrodosao.
Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
*.team.ba.

ICQ: 238530669


Profil

icon Re: BBuilderC++, .NET - kompatibilnost23.08.2006. u 06:54 - pre 215 meseci
zar je moguce da niko nema nista da kaze...
...
Jel moguca sljedeca varijanta: da se biblioteke wrappiraju u Borlandovom C#-u
a onda takav wrapper koristiti normalno u MS VS .NET-u jer ne bi tad smjelo
biti nekompatibilnosti (ipak se radi o istom framework-u)!?
Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

sstanko78
Novi Sad

Član broj: 19139
Poruke: 411
*.nordnet.ws.



Profil

icon Re: BBuilderC++, .NET - kompatibilnost23.08.2006. u 13:54 - pre 215 meseci
Vid, u Managed C++-u mozes da napravis wrapper. Koliko se secam te dll-e mozes importovati
pomocu u VS 2005. Mislim da je opcija Add Reference, pa izaberes com tab. Ili tako nesto
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
*.team.ba.

ICQ: 238530669


Profil

icon Re: BBuilderC++, .NET - kompatibilnost23.08.2006. u 14:11 - pre 215 meseci
Hm, mozda...
Jednom sam imao problem sa DLL-om napisan u C++ VS 6.0.
Ideja je bila ta da koristim sve te mogucnosti koje je taj dll pruzao.
Nakon sto sam se napatio dvije sedmice pokusavajuci da to uradim u C#-u
(a nisam uspio zbog sile uniona i pointera na pointer), konacno
sam to uradio u C++.NET-u. Medjutim, ovdje je problem u borlandovom rjesenju;
Ne mogu tek tako referencirati se na te biblioteke i koristiti ih (AddReference itd.).
Trazio sam po NET-u i vidim da ljudi pitaju slicne stvari, medjutim, ne vidim odgovora.
Naravno, ne mislim da ce neko bas predloziti cjelovito rjesenje ali barem neku uputu.
Jos se nisam 'nafatio' posla, jos uvijek iscitavam i istrazujem, medjutim, prije nego krenem
da radim volio bih da znam sta cu i na kakve probleme mogu 'racunati'.
Zato bih volio da ako neko ima iskustva sa slicnim stvarima da ih podijeli ;).
Poz

Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: BBuilderC++, .NET - kompatibilnost23.08.2006. u 15:35 - pre 215 meseci
Da bi Add reference radio u .NETu, mroa da postoji ili type metadata (za .NET DLLove) ili TypeLibrary (za COM). Standardni C++ DLL-ovi nemaju to, imaju samo spisak "nakicenih" EntryPoint-a (iz tog razloga koristis .h/.hpp fajlove da bi kompajler znao koji su formalni parametri).

Ne mozes wrapovati unmanaged C++ klasu u bilo kom "cistom" .NET jeziku ukljucujuci Borlandov C#

Postoje dva nacina da ubacis C/C++ DLL u .NET.

Prvi je sa Platform invoke ako pozivas samo funkcije iz DLL-a (sto kod tebe izgleda nije slucaj)

Drugi je da u C++.NET napravis managed "single-aggregation" wrapper koji ce imati instancu unamanged C++ klase i koji ce metod po metod preslikati unamanaged C++ klasu u .NET klasu. Iskreno, nisam nikad ovo pokusavao niti me privlaci kao potencijalno resenje. Ovo bih koristio ako i samo ako nemam sors za taj unmanaged C++ DLL, a koliko sam ja shvatio ti posedujes C++ sors code.

Ako hoces da zadrzis svoju C++ logiku, portuj kod sa BBuildera na C++.NET. Da, imaces dosta posla oko "ciscenja" koda i konformisanja CLI-u ali verovatno manje nego sa debagovanjem marshaling gresaka u gore pomenutoj agregaciji. Ovo resenje ce ti cak omoguciti da u .NET jeziku nasledis neke od tih klasa i nastavis tamo gde si stao...


Naravno, postoji resenje i sa COM-om, gde ces u Borland C++-u SVAKU klasu iz projekta publikovati kao COM objekat, ali to je nocna mora a i zahteva da se svi ti objekti instaliraju na klijent masine, a i pride svi metodi koji ne koriste COM-compatibile tipove moraju da se rekodiraju i sve to na kraju ispadne mnogo gadno
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

erkan
Sarajevo

Član broj: 12339
Poruke: 267
*.team.ba.

ICQ: 238530669


Profil

icon Re: BBuilderC++, .NET - kompatibilnost25.08.2006. u 14:58 - pre 215 meseci
Zahvaljujem,
jos malo sam istrazivao...
Posto COM rjesenje podrazumjeva visoki performance penalty,
ponovni prepis koda u C++.NET je vise nego rizican poduhvat (ooogroman je postojeci projekat)
i zbog drugih specificnosti vezanih za projekat,
vjerovatno da cu se opredjeliti za novi dll (BC++) koji ce
sa jedne strane 'komunicirati' sa postojecim bibliotekama a onda
jednostavno ih wrappirati i eksportovati osnovne funkcije koje mi trebaju
u novom projektu.
Ako ima jos sugestija, svakako su dobrodosle.
Pozdrav

Samo se budala saplice na kamen iza sebe.
 
Odgovor na temu

[es] :: .NET :: BBuilderC++, .NET - kompatibilnost

[ Pregleda: 1315 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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