如果您的目標是Windows,最簡單的方法是將myfile.exe
作爲資源,然後在運行時加載資源並創建一個文件並將資源的內容寫入新文件。
如果您不能使用資源,那麼您需要創建一個源文件(.c或.h),用於初始化一個字節數組,其內容爲myfile.exe
,並將其作爲構建的一部分。看看這個答案一種可能的方法:
https://stackoverflow.com/a/73653/333127
編輯:經過進一步審查,我不認爲在我上面提到會爲二進制程序輸入文件鏈接的源代碼。這裏有一個快速的替代我只是扔在一起:
#include <stdio.h>
#include <stdlib.h>
#define BYTES_PER_LINE 70
int main(int argc, char* argv[])
{
FILE* fp;
int ch;
int numBytes = 0;
if (argc < 2) {
printf("Usage: tobytes <file>\n");
exit(1);
}
fp = fopen(argv[1], "rb");
if (fp == NULL) {
printf("Cannot open file %s\n", argv[1]);
exit(1);
}
printf("char fileContents[] = {\n");
while ((ch = fgetc(fp)) != EOF) {
if (numBytes > 0)
printf(",");
++numBytes;
if (numBytes % BYTES_PER_LINE == 0)
printf("\n");
printf("0x%x", ch);
}
printf("\n};\n");
fclose(fp);
return 0;
}
顯式複製文件有什麼問題?是否有一個原因你試圖手動移動字節? – 2012-08-17 05:31:08
你的意思是在設計時複製文件?我怎麼做? – 2012-08-17 05:36:39
「設計時間」是什麼意思? – 2012-08-17 05:48:57