我已經創建了一個簡單的應用程序,並且想要最小化大小。更改x64應用程序的入口點不會產生reloc表
該應用程序是這樣的:
#include "stdafx.h"
#include <Windows.h>
#pragma comment(linker, "/ENTRY:testfc")
#pragma check_stack(off)
#pragma runtime_checks("su",off)
int testfc()
{
MessageBoxA(0, "test", "test", 0);
return 0;
}
int main()
{
MessageBoxA(0, "main", "main", 0);
return 0;
}
隨着#pragma comment(linker, "/ENTRY:testfc")
我可以看到,連接器不產生任何relocs,選擇/DYNAMICBASE
在連接啓用,所以這是奇怪的。 Hovewer,如果我刪除#pragma comment(linker, "/ENTRY:testfc")
並返回到原始入口點,則會生成relocs。我如何更改入口點但保留重定位表?這隻發生在x64構建中,x86我沒有這樣的問題。