我在尝试使用 CString 时遇到问题。
我有一个使用 VS2010Express 编写的控制台应用程序。我有一段代码我想使用,但它使用 CString。当我尝试包含适当的 header atlstr.h(据我所知)时,我得到了著名的错误:无法打开源文件。 在浏览了一段时间之后,似乎一般来说应该是可能的,但是 atlstr.h 对 Express 用户不可用。 问题:
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);
};
谢谢,复活节快乐!
最佳答案
是的,它是正确的(CString 实际上是现在结合的 MFC 和 ATL 的一部分)。
在几乎所有情况下,我发现在其他字符串类(想到 std::string)中转换 CString 的使用是微不足道的
不过,我不太确定 VSExpress 是否完全支持导入类型库 (#import)。可能是——因为 COM 是一个二进制标准,而 MIDL 可以生成纯 C 头文件……但仍然 :)
关于c++ - 使用 VS Express 时在控制台应用程序中使用 CString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760186/