【问题标题】:Converting an exe to DLL - Calling the main function manually将 exe 转换为 DLL - 手动调用主函数
【发布时间】:2012-05-03 14:22:21
【问题描述】:

我正在尝试将 exe 转换为 dll,并在我的 C++ 程序中从 DLL 手动调用 main 函数。

这个exe(从另一个C++程序生成)的代码中的main函数如下所示:

int main(int argc, char* argv[])

现在,在我的 C++ 程序中,我之前将命令行参数传递给这个 exe,如下所示:
system(somexe test.txt test1.txt test2.txt);

int argcargv array 然后会自动传递给 exe 程序。但是,如果我必须手动调用此函数,我不确定如何传递上述参数。是不是每次都要用这些参数手动生成一个数组,还要手动传递这个数组的元素个数?

【问题讨论】:

  • 您可以将 main 放在 DLL 之外,然后在需要时由具有 main 函数的 .exe 加载 DLL。

标签: c++ command-line-arguments


【解决方案1】:

只需创建一个字符串数组并传递给 main.int argc 表示数组中的字符串编号。 argv 存储字符串数组。 例如: 整数 argc = 3; 字符 *argv[3] = {"argc1","argc2","argc3"}; 主要(argc,argv);

【讨论】:

    【解决方案2】:

    你知道函数 printf 吗?你也可以这样做。

    int doit(int n1, ...)
    {
        va_list arg_ptr;
        int n = n1;
        va_start(arg_ptr, n1);
    
        while (n > 0)
        {
             va_arg(arg_ptr, int);
        }
    
        va_end(arg_ptr);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多