1

我正在尝试开发一个简单的应用程序,它将读取一些针对 Windows CE 的文件。为此,我使用的是 Microsoft eMbedded Visual C++ 3。这个程序(用于控制台)将像这样调用:

/存储卡/测试> coms file.cmss

正如你所看到的,file.cmss是第一个参数,但是main如果参数小于 2,我有一个条件来显示帮助(正常,如何使用程序):

int WinMain(int argc,char **argv) {
    if(argc < 2) {
        showhelp();
      return 0;
    }
}

但是当我在 Windows CE 的命令行上执行程序(使用所有必要的参数)时,我得到了showHelp()内容。然后我检查了所有代码,但它完全正确。但我认为 eVC++ 不使用argcandargv[]作为参数,那么我需要一些关于如何确定参数的帮助。

4

3 回答 3

0

您需要提供有关嵌入式平台的更多详细信息。嵌入式平台与台式计算机的差异很大,尤其是在文件系统 I/O、内存容量和硬件布局(寻址)等资源方面。

要开发 WinCE 应用程序,您必须确认平台支持文件系统。许多嵌入式系统没有。

接下来,您应该研究如何设置 WinCE 来执行 C 函数:它使用 Windows ( WinMain) tmainwmain还是main?此外,您需要研究如何将参数传递给程序。窗口编程不同于“控制台”编程。

于 2010-04-12T17:24:35.197 回答
0

Windows 应用程序的“主要”功能可以采用几种不同形式中的一种。有WinMain,有,main还有wmain。在您的情况下,您编写了一个采用经典main参数(即argcargv)的 WinMain 函数。

我建议您将函数名称切换为main并确认您的 Visual Studio 项目已正确配置为“正确”的应用程序入口点。

于 2010-04-11T20:56:57.150 回答
0

WinMain定义为

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR    lpCmdLine, /* command line */
                   int       nCmdShow)

你可能想要类似的东西

if (sscanf(lpCmdLine, "%s", filename) != 1) {
  showHelp();
}
于 2012-03-23T13:19:52.477 回答