__argc, __argv的功用

在startdic的原始码中,有这样一段return stardict_main (__argc, __argv);

这也会让人有点疑惑,查询一下__argv的功用,你可以看到如何取得程式名称在 Windows 架构应用程式和 Win32 架构的应用程式中这一篇,以C撰写的MS-DOS应用程式,命令列可以取得从 argv 参数的 main ()。在特别程式名称由 argv [0] 被指到]。

Windows 为基础和以 Win32 基础的应用程式使用 WinMain() 做为进入点。

在 32 位元应用程式中您就可以直接参考 __argv。在 stdlib.h 中有这样的宣告:

extern int    _argc;
extern char**    _argv;

在 16 位元应用程式中 __argv 未宣告,而且您将需要宣告它。在您的来源或标头档中加入下列宣告。

   #ifdef __cplusplus
   extern "C"
   #endif
   extern char ** __argv;

这个__argc, __argv,主要是在接下来的gtk_init(&argc, &argv); 会用到,一般来说,我们不太会在命令列中执行这个,所以常会忽略到gtk-init的命令列参数有一些功用 ,可以参考GTK+ 2.0 教学-从这里开始这篇的说明。