WINREG.H 编译出错

发布于 2020-05-05  48 次阅读


#include <rpcsal.h>

#include <specstrings.h>

在#include <windows.h>前面包含上述头文件

1. 打开工程设置界面,选择C/C++属性页,将“常规(General) -> 调试信息格式(Debug Information Format)” 改为“禁用(Disabled)”。

如果不进行此处修改,VC6在链接时将出现如下错误:

fatal error LNK1103: debugging information corrupt; recompile module

2. 将“代码生成(Code Generation) -> 基本运行时检查(Basic Runtime Checks)”改为“默认(Default)”。

如果不进行此处修改,VC6在链接时将出现如下错误:

error LNK2001: unresolved external symbol __RTC_Shutdown

error LNK2001: unresolved external symbol __RTC_InitBase

error LNK2001: unresolved external symbol __RTC_CheckEsp

error LNK2001: unresolved external symbol @_RTC_CheckStackVars@8

error LNK2001: unresolved external symbol __RTC_UninitUse

3. 将“缓冲区安全检查(Buffer Cecurity Check No)”改为“否(No)”。

如果不进行此处修改,VC6在链接时将出现如下错误:

error LNK2001: unresolved external symbol ___security_cookie

error LNK2001: unresolved external symbol @__security_check_cookie@4

经过上述修改后,实际上生成的Debug版本已经不含调试信息了,因此我们也可以让VC6下的Debug版直接使用VC7/VC8编译的Release版,不过要注意修改Release版的运行期库类型,使其与VC6一致。


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。