MSVC将从已编译的可执行文件中删除未使用的char*
字符串:
#include <stdio.h>
char* test = "Hey, I'm a string.";
char* test2 = "I'm yet another string.";
int main(int argc, char* argv[])
{
puts("test123");
puts(test2);
getchar();
return 0;
}
IDA字符串列表:
如何强制MSVC将这些字符串保留在.exe
?
答案 0 :(得分:3)
来自linker /OPT option documentation:
/ OPT:NOREF 保留从未引用过的函数和数据。
如果您只想保留特定数据,请使用/INCLUDE:/INCLUDE:test
。