我有一个可以在VS 2005中正确构建的dll。该dll包含默认位置(C:\ Program Files \ Microsoft Visual Studio 8 \ VC \ atlmfc \ include)中存在的“ afxdisp.h”头文件。

//一段代码

ifndef _AFX_NO_OLE_SUPPORT

#include“ afxdisp.h”

万一

//结束

在Visual Studio 2008中未构建相同的dll。它给出了很多编译时错误,表明没有定义许多变量。

在Visual Studio 2008中还有afxdisp.h吗?

PS:我使用了afxdisp.h(VS 2005)中定义的COleVariant类。

最佳答案

我的猜测是您的VS安装中使用的是Windows Platform SDK(http://msdn.microsoft.com/en-us/windows/bb980924.aspx)的某个版本,该版本随附了自己的ATL版本(ATL 7),并且您的代码要么依赖于该版本,要么依赖于较早的ATL 3 。

在两个VS安装的首选项中比较标准包含路径(即不是特定于项目的包含路径)。

09-27 20:52