控制台eMbedded Visual C ++应用程序上的参数

时间:2010-04-11 19:32:18

标签: c arguments windows-ce evc

我正在尝试开发一个简单的应用程序,它将读取一些针对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 ++没有使用argcargv[]作为参数,那么我想要一些帮助来确定它的参数。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

WinMain定义为

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

你可能想要类似于

的东西
if (sscanf(lpCmdLine, "%s", filename) != 1) {
  showHelp();
}