Используйте CString в консольном приложении при использовании VS Express - PullRequest
2 голосов
/ 23 апреля 2011

У меня проблема при попытке использовать CString.

У меня есть консольное приложение, написанное с использованием VS2010Express.У меня есть кусок кода, который я хотел бы использовать, но он использует CString.Когда я пытаюсь включить соответствующий заголовок 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);
};

Спасибо, и счастливой Пасхи!

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

Да, это правильно (CString на самом деле является частью уже встроенных MFC и ATL).

Почти во всех обстоятельствах я счел тривиальным перевод использования CString в сом другой класс строки (std ::в голову приходит строка)

Я не совсем уверен, полностью ли поддерживается импорт библиотек типов ( # import ) в VSExpress.Это может быть - поскольку COM является двоичным стандартом, а MIDL может генерировать чистые заголовочные файлы C ... но все же:)

0 голосов
/ 23 апреля 2011

Вы можете заменить CString на CStdString

...