2

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

谢谢你,复活节快乐!

4

2 回答 2

1

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

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

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

于 2011-04-22T21:28:38.530 回答
0

你可以用CStdString替换 CString

于 2011-04-22T21:26:40.730 回答