尝试使用CString时遇到问题。
我有一个使用VS2010Express编写的控制台应用程序。我有一段我想要使用的代码,但它使用CString。当我尝试包含适当的头文件atlstr.h(据我所知)我得到了一个着名的错误:无法打开源文件。 在Goggling一段时间之后,似乎一般情况下它应该是可能的,但是Express用户无法使用atlstr.h。 问题:
1)是吗? 2)我可以以某种方式避免这个问题吗?
以下是代码,(来源:http://www.cprogramming.com/tutorial/ado_c++_wrapper_classes.html)
如果有人知道如何继续使用此代码,无论是否使用CString,请给我一个帮助....
#import "C:\Program\Delade filer\System\ado\msado15.dll" rename ("EOF","adoEOF") no_namespace
#include <atlstr.h>
class CADOConnection
{ private:
_ConnectionPtr pConnection;
CString m_szConnectionString;
BOOL Initialize();
public:
void SetConnectionString(CString& szConnectionString);
TCHAR *GetConnectionString(){return m_szConnectionString);
BOOL IsClosed();
BOOL IsOpen();
BOOL Open();
BOOL Open(CString& szConnectionString, CString szUser=_T(""), CString szPassword=_T(""));
BOOL Close();
CADOConnection(CString& szConnectionString);
CADOConnection(void);
~CADOConnection(void);
};
谢谢,复活节快乐!
答案 0 :(得分:1)
是的,它是正确的(CString实际上是现在结合的MFC和ATL的一部分)。
在几乎所有情况下,我发现在其他字符串类中转换CString的使用是微不足道的(想到std :: string)
我不确定是否在VSExpress中完全支持导入类型库( #import )。它可能是 - 因为COM是二进制标准,MIDL可以生成纯C头文件......但仍然:)
答案 1 :(得分:0)
您可以使用CStdString
替换CString