gpt4 book ai didi

c++ - 项目仅在特定版本的 Visual Studio 中编译

转载 作者:行者123 更新时间:2023-11-28 07:07:45 26 4
gpt4 key购买 nike

我有一个使用 MFC 和标准 C++ 的项目。我不知道它最初是在哪个 VS 中制作的。在仅安装 VS2012 的机器上和仅安装 VS2010 的机器上打开时 - 它不会构建,显示错误,主要是关于类型不匹配。例如:

CListBox &ltbx
CString s;
ltbx.AddString(s);

这显示错误,表示 AddString 不采用 CString 类型的参数。

CListBox &ltbx
std::string str;
ltbx.AddString(str.c_str());

此代码也显示错误:

string str;
CString CInputID;
str = static_cast<string> (CInputID);

它表示没有用户定义的从 CString 到 std::string 的转换。

毫无疑问,我应该对字符串和所有字符串使用不同的类型,但是在安装了 VS2010 和 VS2008 的机器上打开的完全相同的项目工作得很好,所有类型都匹配。所以我的问题是这是如何工作的?我在想,也许 VS2008 有一些定义所有必要转换的库,而 VS2010 只是利用它们。如果是这样,那些库是什么?我如何才能使这个项目在没有安装 2008 studio 的机器上运行?

最佳答案

AddString 采用 LPCTSTRconst char*const wchar_t* 取决于 _UNICODE 是定义。

不同之处可能在于 _UNICODE 是在您的 VS2012 项目中定义的。

关于c++ - 项目仅在特定版本的 Visual Studio 中编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21510002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com