Pourquoi une application de console simple s’exécute alors que les dialogs ne s’exécutent pas dans WIN CE 6.0

Je développe une application pour Windows CE 6.0 dans Visual C ++ 4 intégré.

J’ai créé une application console simple (WCE Application) avec la plate-forme “Pocket PC 2003” avec le code simple suivant:

#include "stdafx.h" #include  int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { FILE * pFile; char c; pFile=fopen("alphabet.txt","wt"); for (c = 'A' ; c <= 'Z' ; c++) { putc (c , pFile); } fclose (pFile); return 0; } 

Ce code simple fonctionne correctement sur mon périphérique WinCE 6.0 et le fichier “alphabet.txt” est créé.

Mais lorsque je crée un projet basé sur une boîte de dialog (WCE MFC AppWizard (exe)) et que je mets ce code dans la classe principale de mon projet avant l’initialisation de ma fenêtre de dialog, il ne fonctionne pas et aucun fichier “alphabet.txt” n’est créé et mon application. ne s’ouvre pas sans aucun message.

 BOOL CFffffApp::InitInstance() { // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need. FILE * pFile; char c; pFile=fopen("alphabet.txt","wt"); for (c = 'A' ; c <= 'Z' ; c++) { putc (c , pFile); } fclose (pFile); CFffffDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; } 

Pourquoi cela ne fonctionne pas et comment puis-je résoudre ce problème?

Merci d’avance,

Les périphériques d’exécution MFC sont-ils installés sur le périphérique cible? Ils doivent également être ceux pour lesquels votre application est conçue. Sachez que eVC 4.0 utilisait mfcce400.dll, qui n’était pas livré avec Platform Builder 6.0 (en fait, IIRC MFC ne figure même pas dans le catalogue du système d’exploitation CE 6.0 et Studio ’08 utilisait une version plus récente de MFC pour les périphériques). Vous devrez dissortingbuer les fichiers binarys mfcce400 (ils se trouvent dans les SDK eVC) avec votre application.

Mon C ++ est très rouillé, mais vous devez toujours initialiser vos contrôles.

 CFffffDlg dlg = new CFffffDlg(); // << Initialize the dlg m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) 

Droite? Est-ce tout ce dont vous avez besoin?