编程语言
首页 > 编程语言> > c – 为什么运行简单的控制台应用程序,但基于对话框不能在WIN CE 6.0中运行?

c – 为什么运行简单的控制台应用程序,但基于对话框不能在WIN CE 6.0中运行?

作者:互联网

我正在开发嵌入式Visual C 4中的Windows CE 6.0应用程序.

我用平台“Pocket PC 2003”创建了一个简单的控制台应用程序(WCE应用程序),其中包含以下简单代码:

#include "stdafx.h"
#include <stdio.h>

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;
}

这个简单的代码在我的WinCE 6.0设备上正常工作,并创建了“alphabet.txt”.

但是当我创建一个基于对话框的项目(WCE MFC AppWizard(exe))并在我的对话框窗口初始化之前将此代码放在我的项目的主类中它不起作用并且没有创建“alphabet.txt”文件和我的应用程序不打开没有任何消息.

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;
}

为什么它不起作用,我该如何解决这个问题?

提前致谢,

解决方法:

目标设备上是否有MFC运行时?它们也必须是您的应用程序构建的.请注意,eVC 4.0使用了mfcce400.dll,它根本没有随Platform Builder 6.0一起提供(实际上IIRC MFC甚至不在CE 6.0 OS目录中,Studio ’08使用了更新的MFC版本的设备).您必须与应用程序一起分发mfcce400二进制文件(它们位于eVC SDK中).

标签:windows-ce,c,visual-c,embedded,windows-mobile
来源: https://codeday.me/bug/20190926/1820588.html