Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - CxImage e msvcrt.dll
Forum - C/C++ - CxImage e msvcrt.dll

Avatar
redo86 (Normal User)
Newbie


Messaggi: 7
Iscritto: 19/05/2010

Segnala al moderatore
Postato alle 10:10
Mercoledì, 19/05/2010
Salve a tutti, prima mi presento: mi chiamo Redini Nilo ho 24 anni e sono di pisa, è da un po di tempo che bazzico da queste parti ma non avevo ancora lasciato nessun messaggio sul forum, ma ora che mi trovo davanti ad un problema che non so come risolvere chiedo aiuto a voi :P
Premettendo che programmo in vc++ 2010; dovrei convertire una bmp in una jpg, girando un po sul sito ho capito che devo usare le cximage, cosi le ho scaricate; ho scaricato anche beatrix per vedere come le usava.
Hho incluso le lib delle cximage:
#pragma comment(lib,"CxImage/CxImage.lib")
#pragma comment(lib,"Jpeg/jpeg.lib")
ed ho messo nelle opzioni di compilazione del codice Multithreaded-debug (in pratica voglio generare codice statico senza dover fare affidamento alle dll); ora il problema è tutto qui, se io cambio questa opzione (metto ad esempio multithreaded-dll) l'exe che ne esce fuori funziona perfettamente faacendo la conversione, ma va a cercare una dll (msvcrt100.dll mi pare si chiami), in questo modo il programma non è riutilizzabile su pc che non ce l'hanno.
Vorrei quindi fare in modo di creare codice statico, non usare alcuna dll e far però comunque funzionare le cximage :D per il momento ricevo errori del tipo:
MSVCRT.lib(MSVCR100.dll) : error LNK2005: _free already defined in LIBCMTD.lib(dbgfree.obj)
MSVCRT.lib(MSVCR100.dll) : error LNK2005: _malloc already defined in LIBCMTD.lib(dbgmalloc.obj)
come devo fare? :S qualche ideaa???

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:19
Mercoledì, 19/05/2010
Puo' essere che si tratti di una questione di "ordine" di linking delle librerie.

Leggi questo articolo di MS

http://support.microsoft.com/default.aspx?scid=kb;en-us;14 ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
redo86 (Normal User)
Newbie


Messaggi: 7
Iscritto: 19/05/2010

Segnala al moderatore
Postato alle 10:33
Mercoledì, 19/05/2010
Ho messo le pragma nello stesso ordine in cui compaiono in eatrix, ho inoltre messo tra le opzioni di linker di escludere la lib msvcrt; ricevo però una marea di errori e warning del tipo:
CxImage.lib(ximainfo.obj) : error LNK2001: unresolved external symbol __imp__fread

l'ordine delle include non l'ho cambiato ma non credo possa essere quello dato che gli errori sono di linking no?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:38
Mercoledì, 19/05/2010
Ordine di include? E chi l'ha detto?

Ho detto "ordine di linking" ... hai letto l'articolo? Hai applicato i metodi suggeriti?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
redo86 (Normal User)
Newbie


Messaggi: 7
Iscritto: 19/05/2010

Segnala al moderatore
Postato alle 10:47
Mercoledì, 19/05/2010
sisi ho letto e se non ho capito male devo mettere a mano l'ordine delle librerie; ora dato che io non so l'ordine, ho seguito il passo sul fondo del sito: ho incluso stdafx.h come primo header e poi ho messo le pragma (nell'ordine appunto di beatrix), ho capito male qualche passaggio :S ?

PM Quote
Avatar
redo86 (Normal User)
Newbie


Messaggi: 7
Iscritto: 19/05/2010

Segnala al moderatore
Postato alle 11:37
Mercoledì, 19/05/2010
Credo di aver capito una cosa in piu: navigando ho trovato questa pagina: http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx e se non ho capito male dice che nel mio caso si debba aggiungere la lib libcmtd.lib essend Multithreaded, static link (debug).
Però mi sa che le cximage vogliono la msvcrt.lib essendo (come riportato sul sito) associata alla msvcr100.dll; mettendo pero la msvcrt ed escludendo la msvcrt continuo ad avere un sacco di warning /errori, mi sto quindi chiedendo se è possibile che il mio progetto funzioni senza fare uso di dll :S

PM Quote