Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exception sur un new bitmap sous CE4.2

4 réponses
Avatar
Guillaume
Bonjour,

Je fais le portage d'une application WM2003 sur Windows CE4.2.

J'ai un problème tout bête, mais très gênant : le constructeur de bitmap
provoque une exception (System.Exception:Exception) sur la machine Windows
CE4.2 (alors que sous l'émulateur CE4.2 ça marche).

Voici le code :


Dim Image As Bitmap

Image = New Bitmap("\Program Files\Test CE42\image.png")


Simple, non ?

L'erreur se situe sur Bitmap::.ctor+0x21, qui doit correspondre au
constructeur de bitmap.

Bien sûr, l'image est bien à l'endroit indiqué (sinon j'ai un FileNotFound).

Quelqu'un a une idée ?

Merci à tous !

4 réponses

Avatar
Fabrice MALAINGRE
Bonjour Guillaume,

J'ai un problème tout bête, mais très gênant :
le constructeur de bitmap provoque une exception
(System.Exception:Exception) sur la machine Windows
CE4.2 (alors que sous l'émulateur CE4.2 ça marche).


Est-ce que votre noyau CE 4.2 contient la librairie "imgdecmp.dll" ?
Elle se trouve théoriquement dans le répertoire "Windows"...

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr

Avatar
Guillaume
Merci Fabrice pour la réponse.

Avant de poser ma question sur ce newsgroup j'avais trouvé sur Internet des
articles concernant "imgdecmp.dll" qui effectivement n'a pas l'air de se
trouver dans le répertoire "Windows" (mais elle n'a pas l'air d'être non
plus dans le répertoire Windows de l'émulateur).

Si le problème vient effectivement de l'absence de cette DLL, quelles
solutions s'offrent à moi ? Peut-on rajouter la DLL ? Y-a-t'il une
modification possible au niveau du code ou de la génération de l'exécutable
?

Pour info, la machine cible est le Bluemedia de Navigon.

Cordialement,

Guillaume

"Fabrice MALAINGRE" a écrit dans le message de
news:u$
Bonjour Guillaume,

J'ai un problème tout bête, mais très gênant :
le constructeur de bitmap provoque une exception
(System.Exception:Exception) sur la machine Windows
CE4.2 (alors que sous l'émulateur CE4.2 ça marche).


Est-ce que votre noyau CE 4.2 contient la librairie "imgdecmp.dll" ?
Elle se trouve théoriquement dans le répertoire "Windows"...

Cordialement

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr






Avatar
Fabrice MALAINGRE
Bonjour Guillaume,

Avant de poser ma question sur ce newsgroup
j'avais trouvé sur Internet des articles concernant
"imgdecmp.dll" qui effectivement n'a pas l'air de se
trouver dans le répertoire "Windows"
Ceci explique peut-être cela...



(mais elle n'a pas l'air d'être non plus dans
le répertoire Windows de l'émulateur).
Par contre, là, je suis plus étonné !!

Avec quel outil parcourez-vous la liste des fichiers du répertoire
"Windows" ?
S'il s'agit de l'explorateur de fichier, on ne peut pas lui faire confiance
sur ce coup là (il ne montre bien que ce qu'il veut).
Il vaut mieux utiliser le « Remote File Viewer » où écrire un petit bout de
code qui vérifie la présence de la DLL en question.


Si le problème vient effectivement de l'absence
de cette DLL, quelles solutions s'offrent à moi ?
Peut-on rajouter la DLL ?
Y-a-t'il une modification possible au niveau du code
ou de la génération de l'exécutable ?
En fait les possibilités sont restreintes :

1) Vous générez l'OS par vous-même (ce qui ne semble pas être le cas à ce
que j'ai compris) et il faut explicitement dire à PlateForm Builder d'incorporer
la DLL dans le noyau.
2) Vous utiliser un OS provenant d'un OEM, et dans ce cas, vous n'avez plus
qu'à lui demander gentiment la librairie en question. En espérant qu'il soit
coopératif !

Cordialement

P.S. 1 : Un indice supplémentaire, quant à la présence de "imgdecmp.dll" :
si mes souvenirs sont bons (à vérifier donc), Internet Explorer l'utilise.
Est-ce que IE est présent sur votre cible ?

P.S. 2 : Vous pouvez toujours jeter un oeil au « Open Compact Framework »
(http://www.opennetcf.org/) qui propose une classe « BitmapEx » qui, il me
semble, ne repose pas sur "imgdecmp.dll" (à vérifier ègalement).

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr

Avatar
Guillaume
Merci Fabrice.

Effectivement, je ne sais pas si on peut faire confiance à l'explorateur de
fichier. Je vais essayer de faire cette vérification différemment.

IE n'est pas installé sur cette machine, ce qui confirmerait l'absence de
imgdecmp, en fait il n'y a vraiment pas grand chose sur le Bluemedia à part
l'explorateur de fichier. Je vais faire un petit test rapide avec la classe
BitmapEx d'OpenNetCF pour voir ce que ça donne.

"Fabrice MALAINGRE" a écrit dans le message de
news:
Bonjour Guillaume,

Avant de poser ma question sur ce newsgroup
j'avais trouvé sur Internet des articles concernant
"imgdecmp.dll" qui effectivement n'a pas l'air de se
trouver dans le répertoire "Windows"
Ceci explique peut-être cela...



(mais elle n'a pas l'air d'être non plus dans
le répertoire Windows de l'émulateur).
Par contre, là, je suis plus étonné !!

Avec quel outil parcourez-vous la liste des fichiers du répertoire
"Windows" ?
S'il s'agit de l'explorateur de fichier, on ne peut pas lui faire
confiance

sur ce coup là (il ne montre bien que ce qu'il veut).
Il vaut mieux utiliser le « Remote File Viewer » où écrire un petit bout
de

code qui vérifie la présence de la DLL en question.


Si le problème vient effectivement de l'absence
de cette DLL, quelles solutions s'offrent à moi ?
Peut-on rajouter la DLL ?
Y-a-t'il une modification possible au niveau du code
ou de la génération de l'exécutable ?
En fait les possibilités sont restreintes :

1) Vous générez l'OS par vous-même (ce qui ne semble pas être le cas à ce
que j'ai compris) et il faut explicitement dire à PlateForm Builder
d'incorporer

la DLL dans le noyau.
2) Vous utiliser un OS provenant d'un OEM, et dans ce cas, vous n'avez
plus

qu'à lui demander gentiment la librairie en question. En espérant qu'il
soit

coopératif !

Cordialement

P.S. 1 : Un indice supplémentaire, quant à la présence de "imgdecmp.dll" :
si mes souvenirs sont bons (à vérifier donc), Internet Explorer l'utilise.
Est-ce que IE est présent sur votre cible ?

P.S. 2 : Vous pouvez toujours jeter un oeil au « Open Compact Framework »
(http://www.opennetcf.org/) qui propose une classe « BitmapEx » qui, il
me

semble, ne repose pas sur "imgdecmp.dll" (à vérifier ègalement).

____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr