PDA

Visualizza la versione completa : [C] Errore di Applicazione non correttamente inizializzata


james-C
11-03-2014, 18:59
Salve,

utilizzo l'IDE DEV-Cpp per programmare in C su Windows 7. Ho fatto un programma che analizza immagini estratte da un video. Per far questo utilizzo le librerie OpenCV. Non è stato banale installarle e linkarle correttamnte, cmq ora funziona tutto.

Poiché debbo analizzare molti dati, utilizzo vari computer oltre al mio. Ho a disposizione vecchi PC con Win XP (+ SP2) col .NetFramework. Vi ho installato DEVcpp, Open CV etc.. quando arrivo a far girare il programma su Win XP si pianta subito dando un errore "Applicazione non correttamente inizializzata (0xc0000..." . Ho capito che c'è un errore di segmentazione da qualche parte. Già le prime righe gli creano problemi (nonostante che in fase di compilazione vada tutto bene):

#include <stdio.h>
#include <stdlib.h>
#include <highgui.h>
#include <cxcore.h>
#include <cv.h>

int main (void)

/* etc .....*/

Se faccio girare programmi che non richiedono le OpenCV non ci sono problemi, quindi direi che il problema è sulle librerie grafiche.

Ho provato a utilizzare gli HotFix della Microsoft, senza successo... Purtroppo non ho tutti PC Win 7, debbo accontentarmi di quel che c'è.... Possibile che non si riesca a far funzionare le librerie OpenCV su XP? Con Win7 vanno così bene....

Avete suggerimenti?

Grazie!

James-C

oregon
11-03-2014, 20:23
Beh, intanto un SP2 è vecchiotto e non proprio completamente aggiornato. Direi che devi installare il SP3 e tutto il seguito degli aggiornamenti.

In secondo luogo non userei proprio DevC++, pessima scelta. Sarebbe già meglio CodeBlocks oppure, meglio, Visual C++.

Per finire, è possibile che il problema sia nel codice che hai scritto (e che non hai mostrato) anche perché non ho capito se lo stesso codice funziona su Win7.

MItaly
11-03-2014, 20:35
L'errore che descrivi in genere deriva dalla mancanza di una dll, ti sei tirato dietro anche le dll di opencv? Stai compilando in modalità debug o release? La libreria standard è linkata staticamente? Hai provato a verificare le dipendenze del tuo eseguibile con il dependency walker?

james-C
12-03-2014, 11:11
Sì, hai ragione. Ho provato ad installare il SP3, ma ancora non gira. Ok per i suggerimenti sulle IDE. In effetti DevC++ non è il massimo, ma visto che sono riuscito a farci funzionare OpenCV, mi piaceva ormai finire il lavoro. Nei prossimi giorni proverò anche Eclipse, Visual Studio e Code Blocks. Eventualmente ti farò sapere se ho difficoltà nel link con OpenCV. Su Win7 mi funziona. Cmq è un problema di librerie. Rimando alla risposta sotto>>. Grazie!

james-C
12-03-2014, 11:20
Grazie anche a MItaly. Compilo in modalità release. In effetti sembrerebbe un problema di librerie. Ho provato a far girare Dependency Walker, che mi dà i segunti errori:

Non trova i file:
MSVCP90.DLL
MSVCR90.DLL
MSJAVA.DLL

Error: The Side-by-Side configuration information for "c:\opencv2.1\bin\HIGHGUI210.DLL" contains errors. Impossibile avviare l'applicazione specificata. La configurazione dell'applicazione non  corretta.
Error: The Side-by-Side configuration information for "c:\opencv2.1\bin\CXCORE210.DLL" contains errors. Impossibile avviare l'applicazione specificata. La configurazione dell'applicazione non  corretta.
Error: The Side-by-Side configuration information for "c:\opencv2.1\bin\CV210.DLL" contains errors. Impossibile avviare l'applicazione specificata.
Error: At least one required implicit or forwarded dependency was not found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Ho provato a re-installare OpenCV (che sta in C:\OpenCV2.1). Nulla.

La configurazione di DevCpp è la seguente:

Opzioni di compilazione:
File binari C:\OpenCV2.1\bin
Librerie C:\OpenCV2.1\bin
Include C C:\OpenCV2.1\include\opencv
Include C++ C:\OpenCV2.1\include\opencv

Opzioni di progetto:
Librerie: C:\OpenCV2.1\bin
Include C C:\OpenCV2.1\include\opencv
Parametri del Linker:
-lcxcore210
-lcv210
-lcvaux210
-lhighgui210

Loading