Bonjour,
j'ai réalisé il y a 1 ans une application sur Embedded Visual C++, une version compatible avec Pocket PC 2003.
J'airerai migrer mon application pour Windows Mobile 5. comment dois-je faire ?
Faut-il une autre version de EVC++ ?
Merci
Version imprimable
Bonjour,
j'ai réalisé il y a 1 ans une application sur Embedded Visual C++, une version compatible avec Pocket PC 2003.
J'airerai migrer mon application pour Windows Mobile 5. comment dois-je faire ?
Faut-il une autre version de EVC++ ?
Merci
salut,
je suppose que tu disposes de visual 2005 .
dans un premier temps ouvre le projet avec visual 2005 qui devrait le convertir.
à priori tu ne devrais pas trop rencontrer de problémes sauf sur quelques points liés au respect de la norme du C++.
voir mon tuto sur la migration.
:D
J'ai une malette contenant tous les logiciel de Microsoft donc je devrai le trouver ^^
C'est quoi le nom exacte ?
(c'est une application sur pocket pc moi y a pas de pbl ?)
PS : je trouve pas ton tutau
re,
il faut que tu installes visual studio 2005.
tu peux disposeras de tous les types de projets MFC ,pocket,smartphone etc.
mon tuto : http://farscape.developpez.com/tutor...on-vc6-vc2005/
:D
Je peut les convertir avec VS Express ???
non ,vc express ne posséde pas les MFC ...
:D
Ok .... une après midi de perdu lol
Merci beaucoup.
je te dis a demain (aujourd'hui ca me saoule mais je vais retester demain lol ^^)
lors de la migration de mon appli j'ai une erreur bizarre :
afxver_.h(77) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
cela viens de cela :
Je n'ai pas codé cela moi...Code:
1
2
3 #if defined(_AFXDLL) && !defined(_DLL) #error Please use the /MD switch for _AFXDLL builds #endif
apparemment tu construis une dll et il te demande que le run-time library (crt) soit en Multithreaded DLL (/MD).
voir les options du projet..
:D
Merci pour ton aide j'ai résolue le problème.
Mais ... et oui encore un truc bizarre :
j'ai rectifié les boucles comme dans ta FAQ
(plein de warning sur les '<' que je comprend pas non plus ^^)
Mais j'ai une autre fatal erreur qui n'est pas liée a mon code
#include "wceres.rc" // WCE-specific components
Dans mon projet_1.rc // Evc++4.0 ma généré cela
Code:#include "wceres.rc" // WCE-specific components
essaye de mettre la ligne entre commentaire ...
:D
si seulement c'etait ca ...
Code:
1
2 corelibc.lib(wwinmain.obj) : error LNK2019: symbole externe non résolu wWinMain référencé dans la fonction wWinMainCRTStartup Pocket PC 2003 (ARMV4)\Debug/MBC_APPRO_1.exe : fatal error LNK1120: 1 externes non résolus
de ce que je vois tu dois avoir un de tes modules qui est encore en CRT statique.
fait le point sur tous tes modules pour les passer en multi thread dll (/MD).:D
et si je te dis que je n'ai pas de modules ?
hé bien c'est que tes options de ton projet ne sont pas correctes en release.
tu dois avoir en release:
Utiliser les MFC dans une bibliothèque statique
bibliotheque runtime :Multithread (/MT)
c'est le cas ?
fait aussi un rebuild all..
:D
encore une fois merci beacoup.
encore une fois j'ai un derniere (j'espere) probleme.
Apparament Visual studio ne gère pas les CDateTimeCtrl.
car a chaque ligne ou je les utilise j'ai une erreur.
Y-a-til une option a cochez ? (j'espere)
un composant a installer ? ( j'espere moin)
ou je dois changer de composant ? (pitié non ....) si oui lequel ?
Merci ^^
tu as quoi comme erreur ?
:D
re ,
tu dois avoir dans stdafx.h les lignes suivantes:
c'est le cas ?Code:
1
2
3
4
5
6
7 #include <afxwin.h> // composants MFC principaux et standard #include <afxext.h> // extensions MFC #ifndef _AFX_NO_OLE_SUPPORT #include <afxdtctl.h> // Prise en charge MFC pour les contrôles communs Internet Explorer 4 #endif
:D
Toujours le sourire :D
alors :
Lors de le déclaration :
Erreur :Code:CDateTimeCtrl m_CdateBL;
Newbonpro.h(53) : error C2146: syntax error : missing ';' before identifier 'm_CdateBL'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Lors du DoDataExchange :
Erreur :Code:DDX_Control(pDX, IDC_DATET, m_CdateBL);
error C2065: 'm_CdateBL' : undeclared identifier
Lors de l'utilisation :
Exemple :
Erreur :Code:m_CdateBL.EnableWindow(TRUE);
error C2228: left of '.EnableWindow' must have class/struct/union
Merci de ta patience ...
pour les 2 premier include oui mais pour le reste j'ai pas. par contre j'ai ca :Citation:
Envoyé par farscape
Code:
1
2
3
4
5
6 #include <afxdisp.h> // MFC OLE automation classes #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT #include <afxsock.h> // MFC socket extensions
essaye de rajouter afxdtctl.h
:D
voila le contenu de stdafx.h pour un projet pocket classique MFC:
j'ai rajouté un CDateTimeCtrl, je n'ai pas eu de problémes .Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 // stdafx.h : fichier Include pour les fichiers Include système standard, // ou les fichiers Include spécifiques aux projets qui sont utilisés fréquemment, // et sont rarement modifiés #pragma once #pragma comment(linker, "/nodefaultlib:libc.lib") #pragma comment(linker, "/nodefaultlib:libcd.lib") // REMARQUE - il s'agit d'une valeur qui n'est pas en corrélation avec la version du système d'exploitation Windows CE ciblée #define WINVER _WIN32_WCE #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // Exclure les en-têtes Windows rarement utilisés #endif #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // certains constructeurs CString seront explicites #ifdef _CE_DCOM #define _ATL_APARTMENT_THREADED #endif // désactive le masquage MFC de certains messages d'avertissement courants et par ailleurs souvent ignorés #define _AFX_ALL_WARNINGS #include <ceconfig.h> #if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) #define SHELL_AYGSHELL #endif #include <afxwin.h> // composants MFC principaux et standard #include <afxext.h> // extensions MFC #ifndef _AFX_NO_OLE_SUPPORT #include <afxdtctl.h> // Prise en charge MFC pour les contrôles communs Internet Explorer 4 #endif #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // Prise en charge des MFC pour les contrôles communs Windows #endif // _AFX_NO_AFXCMN_SUPPORT #if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) #ifndef _DEVICE_RESOLUTION_AWARE #define _DEVICE_RESOLUTION_AWARE #endif #endif #ifdef _DEVICE_RESOLUTION_AWARE #include "DeviceResolutionAware.h" #endif #include <aygshell.h> #pragma comment(lib, "aygshell.lib") #if (_WIN32_WCE < 0x500) && ( defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) ) #pragma comment(lib, "ccrtrtti.lib") #ifdef _X86_ #if defined(_DEBUG) #pragma comment(lib, "libcmtx86d.lib") #else #pragma comment(lib, "libcmtx86.lib") #endif #endif #endif #include <altcecrt.h>
:D
J'ai plus cette erreur !!!! :D :D :D :D
par contre l'erreur du
fatal error RC1015: cannot open include file 'wceres.rc'.
es revenu ...
je pensais l'avoir résolu en mettant :
Utiliser les MFC dans une bibliothèque statique
mais apparamant ca venais pas de la ....
bah ça n'a rien a voir lol,
sur ton fichier .rc dans l'explorateur de solutions tu fais clic droit afficher le code.
voila ce que j'ai moi dans mon .rc à la fin du fichier
alors tu peux virer ton wceres.rcCode:
1
2
3
4
5
6
7 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) LANGUAGE 12, 1 #pragma code_page(1252) #include "res\DemoPocketPcppc.rc2" // ressources non modifiées par Microsoft Visual C++ #include "afxres.rc" // Composants standard #endif
et envutuellement rajouter afxres.rc si il n' y est pas...
:D
bon il me mettait une erreur su le /MD alors j'ai rajoute ca dans mon afx.h
#define _AFXDLL
Le probleme : si je retire mon wceres.rc (a 2 endroit dans mon RC) j'ai cette erreur.
corelibc.lib(wwinmain.obj) : error LNK2019: symbole externe non résolu wWinMain référencé dans la fonction wWinMainCRTStartup
Pocket PC 2003 (ARMV4)\Debug/MBC_APPRO_1.exe : fatal error LNK1120: 1 externes non résolus
Comme ta pu le remarquer je suis pas un pros en C++, je sais pas si ce probleme viens du RC ou si le rc est passer et que le compilateur trouve une autre erreur ...
j'ai tester ca
Propriétés de configuation->Editeur de liens->Système->Sous-système : Console (/SUBSYSTEM:CONSOLE).
mais ca marche pas
Bon j'en suis la quand je vire mes wceres.rc
j'ai l'erreur :
et quand je le remet, j'ai :Code:
1
2 corelibc.lib(wwinmain.obj) : error LNK2019: symbole externe non résolu wWinMain référencé dans la fonction wWinMainCRTStartup Pocket PC 2003 (ARMV4)\Debug/MBC_APPRO_1.exe : fatal error LNK1120: 1 externes non résolus
Code:.\MBC_APPRO_1.rc(533) : fatal error RC1015: cannot open include file 'wceres.rc'.
J'essais également de migrer une application pour Pocket PC vers Visual Studio 2005 et je n'arrive pas à me débarasser de toutes les erreurs :
Use MFC in a Shared DLL
Runtime library : MD
J'obtiens également la même erreur avec :Citation:
corelibc.lib(wwinmain.obj) : error LNK2019: unresolved external symbol wWinMain referenced in function wWinMainCRTStartup
Use MFC in a Static Library
Runtime library : MT
Hors, on ne peut pas combiner MT avec la MFC incluse dans une DLL :
Quel est le bon nom a mettre dans les options de Linking à la place de wWinMainCRTStartup ?Citation:
C:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include\afxver_.h(77) : fatal error C1189: #error : Please use the /MD switch
hum il me semble que sur pocket il faut rester en shared pas en static..
J'arrive à construire en utilisant WinMainCRTStartup au lieu de wWinMainCRTStartup
L'application s'exécute correctement en Release (mais pas en debug, ce qui doit être due au fait qu'il manque les Dll en version debug -avec un d à la fin du nom- quelque part ?)
Edit : L'application que je viens de migrer est un viewer pour pocket PC (http://www.codeproject.com/ce/PicView.asp)
J'utilise l'émulateur de Pocket PC sous Visual Studio 2005 mais je ne sais pas comment enregistrer une image dessus. une idée ?
J'ai enfin réussi à construire et exécuter le projet.
Je donne 2 liens qui pourraient être utiles pour d'autres personnes :
http://msdn2.microsoft.com/en-us/library/ms838254.aspx
http://msdn.microsoft.com/library/de...bug_VS2005.asp