0
今天我遇到了一個很奇怪的問題,我不完全確定是什麼導致它。這裏是我用來獲得當前工作目錄的功能:
#ifdef _WIN32
#include <direct.h>
#define GetCurrentDir _getcwd
#else
#error "There is currently no support for non windows based systems!"
#endif
const std::string getCurrentPath()
{
char CurrentPath{_MAX_PATH];
GetCurrentDir(CurrentPath, _MAX_PATH);
CurrentPath[_MAX_PATH - 1] = '/0';
return std::string(CurrentPath);
}
該功能可以很好地作爲獨立功能使用。但是如果我把它聲明爲一個類中的靜態函數:
static __declspec(dllexport) const std::string getCurrentPath(void);
和一個.dll我得到「調試斷言失敗的錯誤」,當我嘗試做
std::cout<<CUtilities::getCurrentPath()<<std::endl;
如果我不是寫:
std::string dir = CUtilities::getCurrentPath();
std::cout<<"Dir is : "<<dir<<std::endl;
它工作正常。我對我做錯了什麼感到困惑。有任何想法嗎?