使用VS Express时,在控制台应用程序中使用CString

时间:2011-04-22 21:21:13

标签: c++ atl wtl

尝试使用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);
};

谢谢,复活节快乐!

2 个答案:

答案 0 :(得分:1)

是的,它是正确的(CString实际上是现在结合的MFC和ATL的一部分)。

在几乎所有情况下,我发现在其他字符串类中转换CString的使用是微不足道的(想到std :: string)

我不确定是否在VSExpress中完全支持导入类型库( #import )。它可能是 - 因为COM是二进制标准,MIDL可以生成纯C头文件......但仍然:)

答案 1 :(得分:0)

您可以使用CStdString

替换CString