我试图让我的dll更小,因为它更大一些。 我用了dumpbin.Here的结果。 总结
19000 .data
195000 .rdata
21000 .reloc
2C3000 .text
我认为这是一个问题,因为我认为.rdata部分包含dll文件的资源。但我没有为我的dll添加任何资源。
答案 0 :(得分:1)
.rdata
不仅适用于资源(如果您使用资源,则表示Windows资源,如字符串,图标,清单等)。 .rdata
还包含任何常量数据。考虑一个只有这个的dll:
static const int j[2000];
__declspec(dllexport) const int* foo()
{
return j;
}
j
实际上会被放置在.rdata
中(如果您调整大小,您会注意到size of raw data
行中dumpbin /SECTION:.rdata
行中的更改如何显示因此,检查你的程序是否还有大的常量变量。
答案 1 :(得分:0)
除了Rudolfs'关于源检查的建议,您可以使用ResourceHacker或类似实用程序反汇编DLL,并验证.rdata
大小是否合理。