【发布时间】:2011-09-01 07:34:45
【问题描述】:
在 MFC 中使用 C++。来自 C# 背景,我通常只对所有字符串使用字符串。我将它们用于类成员、方法参数和方法返回值。
现在在 C++ 中,我有 std::string、CString、char *、LPCTSTR 等。当我设计我的数据成员、方法参数和方法返回值时,我应该使用哪种类型?易用性很重要,CString 似乎提供了这一点,但我的直觉是倾向于可移植标准,尽管可移植性在我的优先级列表中非常低(现在)。另外,我不喜欢创建字符串缓冲区并将它们传递给方法和函数的 c 语义。
我认为从直接易于编码的角度来看,CStrings 可能具有优势。但是,总体而言,“高代码质量”的方法是什么?
编辑:
我特别关心代码中的接口点(即方法参数和返回值)。例如:
Shape::SetCaption(const char *caption) {...}
Shape::SetCaption(CString caption) {...}
Shape::SetCaption(std::string caption) {...}
Shape::SetCaption(std::wstring caption) {...}
【问题讨论】:
-
@Christian:为在 MFC 中实现且必须与其紧密集成的平台编写插件。我试图走 Qt 的道路,但 Qt/MFC 集成是一场艰苦的战斗。如果是一个选项,我会选择 C#。
-
同意 Christian Rau 的评论。 MFC 不是对开发人员友好的框架。 QT 是一种让 GUI 变得更简单的方法。
标签: c++ string mfc cstring stdstring