2

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);
};

ありがとう、そしてハッピーイースター!

4

2 に答える 2

1

はい、その通りです(CStringは、実際には、現在は結合されているMFCおよびATLの一部です)。

ほとんどすべての状況で、他の文字列クラスでCStringの使用を変換するのは簡単だと思いました(std :: stringが思い浮かびます)

ただし、タイプライブラリのインポート( #import)がVSExpressで完全にサポートされているかどうかはわかりません。COMはバイナリ標準であり、MIDLは純粋なCヘッダーファイルを生成できるためです...しかしそれでも:)

于 2011-04-22T21:28:38.530 に答える
0

CStringをCStdStringに置き換えることができます

于 2011-04-22T21:26:40.730 に答える