int main(int argc, _TCHAR* argv[]) { HWND hwnd=GetForegroundWindow();//直接获得前景窗口的句柄 SendMessage(hwnd,WM_SETICON,ICON_BIG,(LPARAM)LoadIcon(NULL,IDI_QUESTION)); FILE * fbmp; if(!(fbmp=fopen("sys_g_base022.bmp", "rb"))) { cout<<"No Such File!"<<endl; return -1; } bmp_header_t bmp_header = GetBmpInfo(fbmp); BYTE* data = new BYTE[bmp_header.datasize]; BYTE* rawdata = new BYTE[bmp_header.datasize]; GetBmpData(fbmp, data, bmp_header); RecoverData(rawdata, data, bmp_header); unsigned int extra_size = bmp_header.datasize / 0x0f; unsigned int extra = bmp_header.datasize % 0x0f; DWORD size; if(extra != 0) size = bmp_header.datasize + extra_size + 1; else size = bmp_header.datasize + extra_size; BYTE* epadata = new BYTE[size]; Epa_Encompress(epadata, rawdata, bmp_header.datasize); FILE* fepa; if(!(fepa=fopen("sys_g_base022.epa", "wb"))) { cout<<"Can not Create File!"<<endl; return -1; } fwrite(epadata, 1, size, fepa); cout<<"OK!"<<endl; delete[]data; delete[]rawdata; delete[]epadata; fclose(fbmp); fclose(fepa); system("pause"); return 0; }
int main(int argc, char *argv[]) { if (argc != 4) { printf("usage: %s in.epa out.bmp out.epa\n", argv[0]); return -1; } FILE * fbmp; if (!(fbmp = fopen(argv[2], "rb"))) { printf("No Such File!\n"); return -1; } bmp_header_t bmp_header = GetBmpInfo(fbmp); BYTE* data = new BYTE[bmp_header.datasize]; BYTE* rawdata = new BYTE[bmp_header.datasize]; GetBmpData(fbmp, data, bmp_header); RecoverData(rawdata, data, bmp_header); unsigned int extra_size = bmp_header.datasize / 0x0f; unsigned int extra = bmp_header.datasize % 0x0f; DWORD size; if (extra != 0) size = bmp_header.datasize + extra_size + 1; else size = bmp_header.datasize + extra_size; BYTE* epadata = new BYTE[size]; Epa_Encompress(epadata, rawdata, bmp_header.datasize); FILE *fepa_in; FILE *fepa_out; if (!(fepa_out = fopen(argv[3], "wb"))) { printf("Can not Create File!\n"); return -1; } if (!(fepa_in = fopen(argv[1], "rb"))) { printf("No Such File!\n"); return -1; } epa_header_t epa_in; fread(&epa_in, sizeof(epa_header_t), 1, fepa_in); if (epa_in.epa1.mode == 1) { fwrite(&epa_in.epa1, sizeof(epa1_header_t), 1, fepa_out); } else { fwrite(&epa_in.epa2, sizeof(epa2_header_t), 1, fepa_out); } fwrite(epadata, size, 1, fepa_out); printf("Finished!\n"); delete[]data; delete[]rawdata; delete[]epadata; fclose(fepa_in); fclose(fbmp); fclose(fepa_out); return 0; }