?? linuxkernelcfg.c
字號:
#include <windows.h>
#include <STDIO.H>
#include <EXE_optimize.h>
#include "./res/resource.h"
#define ABOUT_MENU 20000
#define SOFTWARE_TITLE " linux內核配置文件處理 V0.1 開發者:胡循鋒"
#define ABOUT_STRING "linux內核配置文件處理 V0.1\r\n\n 技術支持:\r\n\tQQ:122108210\r\n\tE-Mail:huxiao2005@163.com\r\n\t開發者:胡循鋒"
BOOL CALLBACK DialogProc(HWND hDlg,UINT Msgid, WPARAM wParam,LPARAM lParam);
int ProcLinuxKernelCfg(int flag,const char *readfile,const char *savefile);
void EntryPoint()
{
DialogBoxParam(GetModuleHandle(0),MAKEINTRESOURCE(IDD_FORMVIEW),0,DialogProc,0);
}
BOOL CALLBACK DialogProc(HWND hDlg,UINT Msgid, WPARAM wParam,LPARAM lParam)
{
static HMENU hSysMenu;
switch(Msgid){
case WM_INITDIALOG:
{
SetWindowText(hDlg,SOFTWARE_TITLE);
hSysMenu = GetSystemMenu(hDlg,FALSE);
AppendMenu(hSysMenu,MF_SEPARATOR,ABOUT_MENU+1,NULL);
AppendMenu(hSysMenu,MF_STRING,ABOUT_MENU,"關于"SOFTWARE_TITLE);
}
return FALSE;
case WM_SYSCOMMAND:
{
if(LOWORD(wParam)==ABOUT_MENU){
MessageBox(hDlg,TEXT(ABOUT_STRING"\r\n\t日期:" __DATE__ " " __TIME__),TEXT(SOFTWARE_TITLE),MB_OK|MB_ICONINFORMATION);
}
}
break;
case WM_COMMAND:
{
switch(LOWORD(wParam)) {
case IDB_PROC:
{
char filesrc[260]="",filedst[260]="";
int flag ;
GetDlgItemText(hDlg,IDE_SOURCEFILE,filesrc,260);
GetDlgItemText(hDlg,IDE_DESTFILE,filedst,260);
flag = (SendMessage(GetDlgItem(hDlg,IDC_FLAG0x0a) , BM_GETCHECK,0,0)==BST_CHECKED);
if(ProcLinuxKernelCfg(flag,filesrc,filedst)){
//
MessageBox(hDlg,"成功處理完畢","Okay",MB_OK|MB_ICONINFORMATION);
}else
MessageBox(hDlg,"處理失敗 文件不存在","err",MB_OK|MB_ICONSTOP);
}
break;
default:
break;
}
}
break;
case WM_CLOSE:
case WM_QUIT:
EndDialog(hDlg,0);
PostQuitMessage(0);
break;
default:
break;
}
return FALSE;
}
int ProcLinuxKernelCfg(int flag, const char *readfile,const char *savefile)
{
FILE *pf,*pf_write;
char ch,write_flag;
int ret=0;
pf = fopen(readfile,"rb");
if(!pf)
return 0;
pf_write = fopen(savefile,"wb+");
if(!pf_write){
fclose(pf);
return 0;
}
while(!feof(pf)){
if(!fread(&ch,1,1,pf))break;
if(ch==0x0a)continue;
if(ch=='#')
write_flag = 0;
else
write_flag = 1;
do{
if(!fread(&ch,1,1,pf))break;
if(write_flag)
fwrite(&ch,1,1,pf_write);
}while(ch!=0x0a);
ret ++;
if(write_flag&&flag){
ch = 0x0a;
fwrite(&ch,1,1,pf_write);
}
}
fclose(pf_write);
fclose(pf);
return ret;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -