打开二进制文件并扫描指定数据

时间:2012-07-23 21:01:29

标签: c++ visual-c++

我正在尝试创建一个自解压的可执行文件+文件柜,用于分发小工具。 为此,我正在使用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*/  
        }  
    }  
}  

我不确定这些线路是否正确,我不知道如何在机柜流上写入剩余的输入缓冲区大小

任何人都可以给我一个帮助吗?

0 个答案:

没有答案