Boost文件阻止使用SHGetKnownFolderPath

时间:2014-06-30 14:15:22

标签: c++ boost header-files

我遇到的问题是我正在尝试创建一个函数来动态检索桌面的文件路径并将其作为字符串返回,该函数可以工作,因为我在另一个程序中使用它。然而,我尝试使用它的新程序也使用&#34; boost / asio.hpp&#34;,当我包含此文件时,VisualStudio告诉我SHGetKnownFolderPath未定义但是如果我采取在#include<boost/asio.hpp>之外,由于需要它的代码,它会抛出错误。

我完全不确定要添加减法或更改以使其发挥作用,我找不到直接的答案,谢谢。

编辑:这是源文件包含

#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <boost/date_time.hpp>
#include "INSData.pb.h"
#include "Header.h"
#include "shellapi.h"
#include "SQLHeader.h"

这是Header.h包含

#include <shlobj.h>//for knownFolder
#include <winerror.h> //for HRESULT
#include <comutil.h> //for _bstr_t (used in the string conversion)
#include "fstream"
#include <regex>
#include "MGS/GoogleEarth/KmlNodes.h"
#pragma comment(lib, "comsuppw")

1 个答案:

答案 0 :(得分:0)

结束了另一条路线。只需将需要冲突文件的函数的定义移动到另一个.cpp文件,并在.h文件中将它们声明为两个.cpp文件都可以访问。