复制文件自身至windows\system32\ 想当然是很简单的一段代码 但是由于对宽字符的不太了解 一波三折 最终还是弄好了
程序代码:
#include <stdio.h> #include <windows.h> int main() { WCHAR DestFileName[]=L"c:\\\\windows\\\\system32\\\\wscmp.exe"; WCHAR szLongPathName[256]; WCHAR fullpath[256*2]; GetModuleFileName(NULL, szLongPathName, 256); int i=0; int j=0; while(szLongPathName[i]!='\0') { if(szLongPathName[i]==0x5c) { fullpath[j]=0x5c; j++; fullpath[j]=0x5c; j++; fullpath[j]=0x5c; j++; fullpath[j]=0x5c; } else fullpath[j]=szLongPathName[i]; i++; j++; } fullpath[j]='\0'; fullpath[j++]='\0'; BOOL Success=CopyFile(fullpath,DestFileName,FALSE); if(Success!=0) printf("文件复制成功\n"); return 0; }