如何防止 MSVC 删除未使用的字符串?
How can I prevent MSVC from deleting unused strings?
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
中?
来自linker /OPT option documentation:
/OPT:NOREF keeps functions and data that are never referenced.
如果你只想保留特定的数据,那么使用/INCLUDE:/INCLUDE:test
.
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
中?
来自linker /OPT option documentation:
/OPT:NOREF keeps functions and data that are never referenced.
如果你只想保留特定的数据,那么使用/INCLUDE:/INCLUDE:test
.