• 14 odgovora
  • 4.159 pregleda
Šta je potebno da bi radio C++ dll 15.07.2007. u 22:53 · pre 234 meseci #1
Prvobitno sam napravio program ceo u C# jeziku i sve je radilo na svakom kompu koji je imao instaliran .NET framewrork 2.0 ili noviji. Zatim sam jedan dll uradio u Managed C++ i sada program radi samo na kompjuterima na kojim ima instaliran Visual Studio. Kada se pokrene program, a ako VS nije instaliran, pojavi se ista ona poruka kao kad dođe do neobrađenog izuzetka i piše da nije pronađen fajl od kojega valjda zavis taj .dll. Dakle to sigurno nije neki fajl tipa slike ili nešto slično već u vezi .NET-a.
I sad sam zbunjen, ne znam šta treba da dostavim uz taj dll rađen u C++ for .NET-u da bi radilo.
Pravio sam sve to u Visual Studio 2005.

Imate li neku ideju?
Potpis
Expert Opinions - Niche Articles
Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 00:01 · pre 234 meseci #2
Managed C++ takodje zahteva .NET Framework. Jesi li ga imao instaliranog na tim racunarima na kojima prijavljuje gresku?
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 00:48 · pre 234 meseci #3
Hoce da radi samo tamo gde imas instaliran VisualStudio ?

Cisto onako odoka (educated guess) sve mirise na to imas Debug verziju DLL-a.

Release verzija DLL-a bi trebalo da po default-u ima sve DLL-ove od kojih zavisi u okviru
regularne Windows instalacije, tj. ne bi ti trebao instaliran Visual Studio.

Probaj da iskompajliras Release verziju DLL-a pa javi kako radi u toj kombinaciji.

Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 12:35 · pre 234 meseci #5
@Shadowed
Pa naravno.

@milanche
Hm, pa ja i ne znam kako da razlikujem te dve stvari? Uglavnom, imao sam jedan Solution i unutar njega par projekata. Kad hoću da ih "izgradim" idem na Build-> RebuildAll. Šta se dobija na taj način?

Dragi Tata je upravu
Hvala vam!

Nisam znao da je ovo potrebno jer sam do skora koristion VS 2003 a u njemu to nije bilo potrebno( ili je na neki način bilo "sakriveno" od mene ).
Potpis
Expert Opinions - Niche Articles
Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 13:22 · pre 234 meseci #6
Citat:
toxi_programer: 
Nisam znao da je ovo potrebno jer sam do skora koristion VS 2003 a u njemu to nije bilo potrebno( ili je na neki način bilo "sakriveno" od mene :) ).


Nije bilo potrebno, ali tehnologija "napreduje" pa je sad potrebno.

Osim naravno, ako statički linkuješ CRT.
Potpis
IOCC
Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 14:57 · pre 234 meseci #7
Citat:
Dragi Tata: Osim naravno, ako statički linkuješ CRT.


Zar nije ovo disabled u VS2005 zbog tog njihovog famozonog fusiona i side-by-side versioninga?

[Edit: pobrkah loncice, zaboravi da sam pitao ovo :)]

[Ovu poruku je menjao mmix dana 16.07.2007. u 16:11 GMT+1]
Potpis
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ć
Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 17:29 · pre 234 meseci #11
Citat:

Hm, pa ja i ne znam kako da razlikujem te dve stvari? Uglavnom, imao sam jedan Solution i unutar njega par projekata. Kad hoću da ih "izgradim" idem na Build-> RebuildAll. Šta se dobija na taj način?


Idi na Build->Configuration Manager, pa izaberes Release version. Posle u opcijama (Alt F7 -> C++ -> Optimization) imas nekoliko
mogucnosti optimizacije koda (Minimize Size, Maximize Speed,....) a mozes i da stavis No Optimization.

Cisto iz radoznalosti (iako znam da ce da radi po receptu Dragog Tate) - pokusaj da setujes Release verziju i rekompajliras samo
za Visual C++ DLL projekat i distribuiras ga uz ostalo bez runtime i installera, zanima me kako bi samo ta promena uticala
na krajnji rezultat (tj. da li bi radilo ili ne bez instaliranog Visual Studio-a).

Jos od Win98 su release verzije DLL-ova (Win32, MFC, ATL,...) mogle da rade samo oslanjajuci se na DLL-ove koji stizu sa
operativnim sistemom, pa mi je malo cudno da bi backward compatibility princip prestao da vazi, tim pre sto bi .NET runtime vec
trebalo da je instaliran.











[Ovu poruku je menjao milanche dana 16.07.2007. u 18:39 GMT+1]

[Ovu poruku je menjao milanche dana 16.07.2007. u 18:51 GMT+1]
Re: Šta je potebno da bi radio C++ dll 16.07.2007. u 22:10 · pre 234 meseci #13
Tatko,

(ako je tacno sto je toxi pronasao, mada ista velicina DLL-a zvuci malo cudno) stvano - zasto cak i Release verzija
zahteva bilo sta drugo osim sto vec dolazi uz Windows ?
Re: Šta je potebno da bi radio C++ dll 17.07.2007. u 12:36 · pre 234 meseci #14
Citat:
milanche: Tatko,

(ako je tacno sto je toxi pronasao, mada ista velicina DLL-a zvuci malo cudno) stvano - zasto cak i Release verzija
zahteva bilo sta drugo osim sto vec dolazi uz Windows ?



VC++ 2005 zahteva svoje verzije standardnih biblioteka (CRT, CPP, MFC, ATL...) a one ne dolaze uz Windows (jednostavno, novije su od XP-ja). Recimo, sa VC++ 6.0 si manje-više siguran da svaki Windows od 98 pa na ovamo ima msvcr.dll, mfc42.dll itd u System folderu, ali za novije kompajlere to baš nije tako. Sa verzijama VC 2002 i 2003 si u tom slučaju mogao da strpaš sve potrebne dllove u isti folder gde ti je i exe i to je radilo super, a sad su izmislili nekakve manifeste i koncept "side-bz-side assemblies": http://msdn2.microsoft.com/en-us/library/ms235299(VS.80).aspx

Naravno, kao što rekoh, uvek možeš da linkuješ statički i onda nema potrebe da vučeš te dllove.
Potpis
IOCC
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme