【问题标题】:Giving the application some data on launch在启动时为应用程序提供一些数据
【发布时间】:2012-12-31 23:15:00
【问题描述】:

我正在尝试创建一个应用程序,该应用程序可以在启动时从另一个程序接收一些数据。 例如:

Start_App.exe calls Main_App.exe and gives it the current date, all at the same time
(while launching it)

Main_App.exe outputs the date on its console

如果没有 Start_App 传递的数据,其他程序将无法正常工作或将执行其他操作。 我一直在寻找一段时间,但似乎我错过了 技术名称...

【问题讨论】:

  • 搜索有点技术性的名称命令行参数
  • 也许您可以将数据写入文件以供其他程序读取,然后在其他程序退出之前删除该文件。
  • @Alex Yan:那真的很糟糕,如果你想同时启动两个实例怎么办?或者你没有文件系统的写权限?还是您将数据写入文件但无法删除?
  • 好点。我只是把想法扔在那里。还不是 C++ 专业人士,但正在取得进步,我还在上高中 :)
  • 如果您希望从您编写的另一个进程中获取此数据,请查看Inter-Process Communication (IPC)。这比命令行参数更复杂,但也更强大。但只有当这确实是你需要的时候。如果您可以使用命令行参数,那将是最好的解决方案。

标签: c++ launch


【解决方案1】:

您可能希望使用命令行参数。
它们是通过写出它们来传递的,用空格分隔,直接在程序名称之后。

像这样:

#include <iostream>

int main(int argc, char *argv[])
{
    using namespace std;

    cout << "There are " << argc << " arguments:" << endl;

    // Loop through each argument and print its number and value
    for (int nArg=0; nArg < argc; nArg++)
        cout << nArg << " " << argv[nArg] << endl;

    return 0;
}

argc 是程序接收到的参数数量。
*argv[] 是一个字符串数组,每个参数一个。

如果你这样调用程序:

Program.exe arg1 arg2 arg3

它给你:

There are 3 arguments:
0 arg1
1 arg2
2 arg3

【讨论】:

    猜你喜欢
    • 2011-02-27
    • 2016-10-30
    • 2021-04-15
    • 2021-06-07
    • 2023-01-27
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多