none
C2143 C4430 エラーで困っています。 RRS feed

  • 質問

  • はじめまして、tDGと申します。まったくの若輩者ですが、よろしくご教授ください。

    http://msdn.microsoft.com/ja-jp/library/51y8h3tk(VS.80).aspx
    WORDPAD サンプル : Windows アプリケーション

    Microsoft Platform SDKをインストールし、Visual C++2008 Express Editionでコンパイルしています。
    何とか、エラーがひとつのファイル内に収まるところまで来ました。しかし、今一歩で、

    ---
    stdafx.cpp
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxtempl.h(776) : warning C4346: 'CList::CNode' : 依存名は型ではありません。
            'typename' を持つプレフィックスは型を示します。
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxtempl.h(776) : error C2143: 構文エラー : ';' が '*' の
    前にありません。
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxtempl.h(776) : error C4430: 型指定子がありません - int
    と仮定しました。メモ: C++ は int を既定値としてサポートしていません
    C:\Program Files\Microsoft Platform SDK\Include\mfc\afxtempl.h(776) : fatal error C1903: 直前のエラーを修復
    できません。コンパイルを中止します。
    ---
    というErrorが出てコンパイルできません。よろしくお願いいたします。
    afxtempl.h (776)
    
    template<class TYPE, class ARG_TYPE>
    CList<TYPE, ARG_TYPE>::CNode*
    CList<TYPE, ARG_TYPE>::NewNode(CList::CNode* pPrev, CList::CNode* pNext)
    {
        if (m_pNodeFree == NULL)
        {
            // add another block
            CPlex* pNewBlock = CPlex::Create(m_pBlocks, m_nBlockSize,
                     sizeof(CNode));
    
            // chain them into free list
            CNode* pNode = (CNode*) pNewBlock->data();
            // free in reverse order to make it easier to debug
            pNode += m_nBlockSize -1;
            for (int i = m_nBlockSize-1; i >= 0; i--, pNode--)
            {
                pNode->pNext = m_pNodeFree;
                m_pNodeFree = pNode;
            }
        }
        ASSERT(m_pNodeFree != NULL);  // we must have something
    
        CList::CNode* pNode = m_pNodeFree;
        m_pNodeFree = m_pNodeFree->pNext;
        pNode->pPrev = pPrev;
        pNode->pNext = pNext;
        m_nCount++;
        ASSERT(m_nCount > 0);  // make sure we don't overflow
    
        ConstructElements<TYPE>(&pNode->data, 1);
        return pNode;
    }
    
    一応、Visual Studio 2005 Standard Upgrade版は持っています・・
    2009年7月14日 15:16

回答

  • このサンプルには「このサンプルは、MFC を使用して作成された完全なワード プロセッシング アプリケーションの例です。」とあります。
    しかし、Express Edition にはそもそもMFCがありません。
    2009年7月15日 0:37
  • Microsoft Platform SDKをインストールし、Visual C++2008 Express Editionでコンパイルしています。
    何とか、エラーがひとつのファイル内に収まるところまで来ました。しかし、今一歩で、

    <中略>

    一応、Visual Studio 2005 Standard Upgrade版は持っています・・
    どーも、PATIOです。

    まず、Visual C++ Express Editionのフォーラムは別にあるのでそちらで質問した方が話が通りやすいと
    思います。向こうだと最初からExpress Editionのつもりで読んでいますのでピンと来る人も多いでしょう。

    内容的には既に佐祐理さんが書かれている通りでExpress EditionではMFCは提供されていないので
    MFCを使用するようなサンプルは最初から使えません。SDKオンリーでいける物にするしかないかなと
    思います。

    あと、Visual Studio 2005 StandardのMFCを使うのは駄目だと思います。
    Visual C++ Express Editionに関してはMFCがない等の制約があるから無料で使えるわけですし、
    そもそもコンパイラやらランタイムのバージョンが違うので使えないでしょう。
    ライセンス的にもどうかなと思います。Microsoftの人では無いので断言はしませんけれど。

    解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。
    2009年7月15日 2:43

すべての返信

  • このサンプルには「このサンプルは、MFC を使用して作成された完全なワード プロセッシング アプリケーションの例です。」とあります。
    しかし、Express Edition にはそもそもMFCがありません。
    2009年7月15日 0:37
  • Microsoft Platform SDKをインストールし、Visual C++2008 Express Editionでコンパイルしています。
    何とか、エラーがひとつのファイル内に収まるところまで来ました。しかし、今一歩で、

    <中略>

    一応、Visual Studio 2005 Standard Upgrade版は持っています・・
    どーも、PATIOです。

    まず、Visual C++ Express Editionのフォーラムは別にあるのでそちらで質問した方が話が通りやすいと
    思います。向こうだと最初からExpress Editionのつもりで読んでいますのでピンと来る人も多いでしょう。

    内容的には既に佐祐理さんが書かれている通りでExpress EditionではMFCは提供されていないので
    MFCを使用するようなサンプルは最初から使えません。SDKオンリーでいける物にするしかないかなと
    思います。

    あと、Visual Studio 2005 StandardのMFCを使うのは駄目だと思います。
    Visual C++ Express Editionに関してはMFCがない等の制約があるから無料で使えるわけですし、
    そもそもコンパイラやらランタイムのバージョンが違うので使えないでしょう。
    ライセンス的にもどうかなと思います。Microsoftの人では無いので断言はしませんけれど。

    解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。
    2009年7月15日 2:43