tmi*_*hty 4 c++ windows visual-studio-2010
我试图使用反编译器"破解"我自己的应用程序.我可以清楚地看到函数名称和许多参数名称.
因此,我认为我以某种方式使用我的代码编译调试信息,尽管它已设置为Release.
此外,编译器告诉我类似的事情
mylib.lib(vq.obj):警告LNK4099:在"mylib.lib(vq.obj)"或"M:\ myapp\Release\vc100.pdb"中找不到PDB"vc100.pdb"; 将链接对象,就好像没有可用的调试信息一样.
这是VC尝试包含一些调试信息的提示吗?
此外,我的解决方案包含3个项目,以编译形式生成3个dll.
当我"破解"3个dll中的一个时,我可以看到其中2个dll的函数名称.我不知道为什么.
有人可以告诉我如何使dll更少调试,以及如何"使用"dll中的dll函数而不是1 dll中的所有函数.我希望我能解释清楚.
这是VC尝试包含一些调试信息的提示吗?
是的,它实际上意味着你将你的dll与调试信息联系起来.您可以通过将链接器 - >调试 - >生成调试信息设置为否来禁用它.但是,请注意,此选项不会(大致)影响您的dll文件,但它将切换pdb文件的生成.
有两种类型的实体,这些名称将显式存储在dll文件中:
你无法摆脱第一个.任何使用dll的人都必须知道如何命名接口函数.
但是,您可以禁用第二个.只有在启用RTTI时才需要多态类名称.这就是你如何做的dynamic_cast和typeid.如果您不需要这些功能,可以通过转到C/C++ - >语言 - >启用运行时类型信息并将其设置为否来禁用RTTI.请参阅从二进制dll文件中删除C++类名.
所有其他实体的名称将被编译器剥离.