Converting an exe to DLL - Calling the main function manually

拈花ヽ惹草 提交于 2019-12-24 10:46:36

问题


I am trying to convert an exe to dll and manually call the main function from the DLL in my C++ program.

The main function in the code of this exe (generated from another C++ program) looks like this:

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

Now, in my C++ program, earlier I was passing the command line arguments to this exe as follows:
system(somexe test.txt test1.txt test2.txt);

The int argc and argv array are automatically then passed to the exe program. However, I am not sure as to how I would be passing the above parameters if I have to call this function manually. Do I have to manually generate an array everytime with these parameters, and also manually pass the number of elements in this array?


回答1:


just make a string array and pass to main.int argc mean the string number in the array. argv store the string array. for example: int argc = 3; char *argv[3] = {"argc1","argc2","argc3"}; main(argc,argv);




回答2:


Do you know the function printf? You can do it the same way.

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);
}


来源:https://stackoverflow.com/questions/10425743/converting-an-exe-to-dll-calling-the-main-function-manually

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!