« 指定のフォルダ以下のフルコントロールを得るソフト | トップページ | Premature end of script headers »

2006年3月20日 (月)

Donut RAPT 69 をVC8でビルドする。

  • Boost.RegExが必要。
    boost自体についてはLet's boostを参照のこと。
    Donutのビルドにはインクルードパスの設定のほかに
    bjam -sTOOLS=vc-8_0
    としてlibboost_regex_*.libとかを作って、そこにライブラリパスの設定が必要。
    このときsTOOLSの大文字小文字は間違えないこと。

    インクルードパス・ライブラリパスはツール→オプション→プロジェクトおよびソリューション→VC++ディレクトリ→ディレクトリを表示するプロジェクト→インクルードファイル・ライブラリファイルに設定してもいいし、
    プロジェクト→プロパティ→構成→すべての構成→構成プロパティ→C/C++→全般→追加のインクルードディレクトリ
    リンカ→全般→追加のライブラリディレクトリ
    リソース→全般→追加のライブラリディレクトリ
    に設定してもいい。
  • プロジェクト→プロパティ→構成→すべての構成→構成プロパティ→C/C++→詳細→指定の警告を無効にする→4996;4005;4995;4927;4244;4018;4346;4482;4454;4348;4554
  • プロジェクト→プロパティ→構成→すべての構成→構成プロパティ→C/C++→言語→forループスコープの強制準拠→いいえ
  • AtlifaceEx.idl
    右クリック→プロパティ→構成→全ての構成
    ビルドから除外→いいえ
    MIDL→MkTypLib互換→いいえ

    さらに以下の行を修正
     helpstring("IAxWinAmbientDispatchEx2 Interface"),
    interface IAxWinAmbientDispatchEx2 : IDispatch
  • DonutView.h
     CComQIPtr<IAxWinAmbientDispatchEx2> m_spAxAmbient;
  • stdafx.cpp
    //#include <atlimpl.cpp>
    MtlProfile.h
    //using WTL::wtlTraceFlags;
    DeskBandHost.h
    //AtlDumpIID(riid, _T(""), S_OK);
  • RtlMatch.h
    REG_EXPRESSION expression = REG_EXPRESSION( static_cast<LPCTSTR>(strPattern) );
  • MtlWeb.h
    inline void MtlShowInternetOptions()
     const int s_unknownOffset = 12;
    ExplorerTreeViewCtrl.h
     static void _TreeItemMask(TVITEM& item, ULONG dwAttributes)
  • RtlList.h
     typedef typename tyRtlList::iterator tyRtlListItr;
  • IDocHostUIHandlerDispatchImpl.h
       ATL::InlineIsEqualGUID(riid, IID_IDocHostUIHandlerDispatch))
    MtlDragDrop.h
       ATL::InlineIsEqualGUID(riid, IID_IDropTarget)
  • AboutDlg.h, mainfrm.h
       #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
       hCursor = CopyCursor(LoadCursor(hInstHelp, MAKEINTRESOURCE(106)));
  • ChildFrm.h
    /*ATLTRY(*/CChildFrame* pChild = NEW CChildFrame(tabMDI, adBar, bNewWindow2, dwDLFlags)/*)*/;
  • LanguageOption.h
    g_hDllInst = _Module.m_hInstResource = g_hModuleInst;
    g_hDllInst = _Module.m_hInstResource;
  • mainfrm.h
         const UINT uDiff = (UINT)sqrt(pow(static_cast<double>(ptUp.x - ptDown.x), 2) + pow(static_cast<double>(ptUp.y - ptDown.y), 2));
        nDiff = sqrt(pow(static_cast<double>(ptBefor.x - ptUp.x), 2) + pow(static_cast<double>(ptBefor.y - ptUp.y), 2));
  • DonutLinksBarCtrl.h, ExplorerToolBarCtrl.h
      MtlRefreshBandIdealSize(CReBarCtrl(GetParent()), m_hWnd);
  • SearchBar.h, ExplorerToolBarCtrl.h
      MTL::CLogFont lf;
  • Donut.cpp
        GUID guid;
        hRes = _Module.Init(NULL, hInstance, &guid);
  • TreeOptiopnDialogT.h : CTreeOptionPageImpl, CDonutOptionDlg
    MtlCtrlw.h : CCommandBarCtrl2Impl
    FavTreeViewCtrl.h : CDonutFavoritesBarImpl
    ExplorerToolBarCtrl.h : CExpBarMenu
    DonutLinksBarCtrl.h : CDonutLinksBarCtrl
    SearchBarOption.h : CSearchBarPropertyPage
    FavoriteMenu.h : CFavoriteGroupMenu, CChildFavoriteMenu
    TabCtrl.h : CTabCtrl2Impl
    RemoveLogs.h : CRemoveLogsDlg

    以上のクラスの基底クラスに出てくる自分のクラス名にテンプレート引数をつける
    例)
    template<class T, WORD w_tDlgTemplateID>
    class ATL_NO_VTABLE CTreeOptionPageImpl : public CDialogImpl<CTreeOptionPageImpl>
     , public CWinDataExchange<CTreeOptionPageImpl>, public CMessageFilter
    template<class T, WORD w_tDlgTemplateID>
    class ATL_NO_VTABLE CTreeOptionPageImpl : public CDialogImpl<CTreeOptionPageImpl<T, w_tDlgTemplateID> >
     , public CWinDataExchange<CTreeOptionPageImpl<T, w_tDlgTemplateID> >, public CMessageFilter
    とする。

|

« 指定のフォルダ以下のフルコントロールを得るソフト | トップページ | Premature end of script headers »

コメント

この記事へのコメントは終了しました。