2011-07-04 60 views
2

我正在使用VS 6.0和VS2008。但问题是VS2008 SDK不兼容VS(VC++)vC++兼容性问题

6.0 SDK。为了解决这个问题,我使用了Windows®Server 2003 SP1 Platform SDK Web Install。如果我 建立在释放模式其工作的代码,但如果在调试模式下做那么它给了一个错误 这样

WbemUuid.Lib(wbemcli_i.obj):致命错误LNK1103:调试信息损坏;重新编译模块 执行link.exe时出错。

我该怎么办才能解决这个问题?

回答

1

与VC6兼容的Windows SDK的最后一个版本是2003年2月版,它至少在一年前就已经超过了Win Server 2003 SP1 SDK。

我不确定它是否可以下载,除了MSDN(它在那里可用)。

您可能想考虑是否值得继续做任何事情,而不是使用VC6维护遗留代码。

事实证明,你仍然可以(截至2011年7月3日),责令2003年2月SDK的CD/DVD版本的 “运费和手续费” 来源:

请注意,我还没有确认该订单页面实际上仍然有效,我不知道该优惠是否在全球范围内销售,我不知道运费/处理费用是多少。

(使用this link查看所有可用的SDK光盘)。

1

我仍然经常使用VC6,它并没有那么糟糕。

要消除链接错误,请不要在项目设置中添加wbemuuid.lib。 如果你错过了任何符号,只要定义它。 如果你真的需要从这个DLL的任何功能,使用LoadLibraryGetProcAddress来代替。

例如,如果你需要CLSID_WbemLocatorIID_IWbemLocator,只是自己定义它们:

GUID MY_CLSID_WbemLocator = {0x4590f811, 0x1d3a, 0x11d0, {0x89, 0x1f, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24}}; 
GUID MY_IID_IWbemLocator = {0xdc12a687, 0x737f, 0x11cf, {0x88, 0x4d, 0x00, 0xaa, 0x00, 0x4b, 0x2e, 0x24}}; 

然后在你的代码中使用MY_XXXX