将C ++可执行文件自动复制到用户的驱动器

时间:2019-05-21 20:51:04

标签: c++

我正在尝试在可执行文件运行时将c ++可执行文件自我复制到用户驱动器,但是此后,我想像这样显示它std::cout << "Filepath:" << actualpath[i];,但是每个字符都有文件名迭代,但是我需要复制自我程序到另一个地方

int _tmain(int argc, _TCHAR* argv[])
{
    TCHAR szEXEPath[MAX_PATH];
    char actualpath[MAX_PATH];
    GetModuleFileName(NULL, szEXEPath, MAX_PATH);

    for (int i = 0; szEXEPath[i] != 0; i++){
        actualpath[i] = szEXEPath[i];
        std::cout << "Filepath:" << actualpath[i];

    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您需要移动行

std::cout << "Filepath:" << actualpath[i];

for循环之后。但是,您必须:

  1. 使用空字符终止actualpath
  2. 为此,您必须知道i的最后一个值。您可以在i循环之前定义for,以便能够使用它来使actualpath终止。

int i = 0;
for ( ; szEXEPath[i] != 0; i++ ){
    actualpath[i] = szEXEPath[i];
}

actualpath[i] = '\0';
std::cout << "Filepath:" << actualpath;

PS 显然,这不能解决主要任务-复制文件。