我正在尝试创建一个自解压的可执行文件+文件柜,用于分发小工具。 为此,我正在使用VS 2010 C ++项目MFC应用程序创建可执行文件。我不太了解c ++。 我用C#编写了一个解决方案,我试图“翻译”到c ++基本上包括打开一个文件本身(可执行存根)并寻找一个标题“MSCF”,将此后的所有内容保存到另一个文件(柜子支架) - 单独)。
我在做什么:
char header[] = {'M','S','C','F'};
LPSTR exeName;
GetModuleFileNameA(NULL, exeName, sizeof(exeName));
if (exeName != NULL)
{
FILE *input;
fopen_s(&input,exeName,"rb");
if(input)
{
int i = fscanf_s(input,header);
char start_of_record[3];
do
{
fscanf_s(input, "%c", &start_of_record);
} while (!feof(input) && (start_of_record != header));
fpos_t *pos;
fgetpos(input,pos);
FILE *cab;
fopen_s(&cab,"setup.cab","wb");
if (cab)
{
/*TODO Write stream*/
}
}
}
我不确定这些线路是否正确,我不知道如何在机柜流上写入剩余的输入缓冲区大小
任何人都可以给我一个帮助吗?