◀ANSI版開発トップへ
  • 2568 バグ修正
    • 2569 gcc(MinGW)ビルド
      • 2571 RE: gcc(MinGW)ビルド
      • 2572 RE: gcc(MinGW)ビルド
        • 2573 RE2: gcc(MinGW)ビルド
        • 2578 RE2: gcc(MinGW)ビルド
          • 2580 RE3: gcc(MinGW)ビルド
            • 2584 RE4: gcc(MinGW)ビルド
    • 2570 MinGWビルドツール
    • 2579 バグ
      • 2581 Re: バグ
    • 2616 MinGWビルドツール(完)
      • 2619 RE: MinGWビルドツール(完)
        • 2639 RE2: MinGWビルドツール
          • 2641 Re3: MinGWビルドツール
      • 3062 RE: MinGW3ビルドツール
  • [2568] バグ修正 みく 2003年02月14日 17:52


    以下はgcc(MinGW)のための修正です。
    ファイルを昇順にコンパイルしてCPropComBackup.cppまでの情報です。
    (warningは除く)


    make時に付加する定義
    DEFS=-DWINVER=0x0400 -D_WIN32_WINNT=0 -D_WIN32_IE=0x0400
    DEFS2=-D__forceinline=inline -DSAKURA_NO_DLL -D__max=max

    なんで、__maxなのか?maxじゃ駄目なのか?

    すべてのファイルの全角2バイト目に0x5cがあるものを\x??\x5cに変換
    →ツールで

    afxres.hを作成
    #include <windows.h>
    #include <winnt.h>
    #define IDC_STATIC 101

    sakura_rc.rc:1038,1493,2111-2117
    "Static",SS_BITMAPの"Static",を削除
    BEGIN-END間の行末に","追加
    →ツールで

    CDlgCtrlCode.cpp:96行目
    static const long p_ctrl_list_num = ...
    型が抜けている

    CMenuDrawer.cpp:
    #include <ctype.h> //for gcc(mingw) toupper
    追加

    CDocLineMgr.cpp:50行目
    //#include "my_icmp.h" // Nov. 29, 2002 genta/moca <-- 2個定義しているので削除
    #include <ctype.h> //for gcc(mingw) toupper
    追加

    CEditDoc_New.cpp:
    #include <ctype.h> //for gcc(mingw) iscsym

    CEditView_Command.cpp:
    #define _mbsstr(a,b) strstr((char*)(a),(char*)(b))
    なんで_mbsstrなのか?

    CEditView_New2.cpp:893行目
    (*mode) |= 4; //(int)(*mode) |= 4;
    複合代入の場合に左辺をキャストするとlvalueがない旨のエラーが出る。

    CMempry.cpp:404行目
    pszWork[j] = (unsigned char)pszWork[j] - (unsigned char)0x80;
    複合代入の場合に左辺をキャストするとlvalueがない旨のエラーが出る。

    sakura_rc.rcでIDC_STATICを使っているが定義がどこにもない。

    CPropComBackup.cpp:82行目
    DlgProcとDispatchEvent_PROP_BACKUP関数あたりのプロトタイプ不整合?でエラー
    #解決方法がよくわからないので止まってます。


    MinGW/include/imm.h に追加
    #define SCS_CAP_SETRECONVERTSTRING 0x00000004
    #define SCS_SETRECONVERTSTRING 0x00010000
    #define SCS_QUERYRECONVERTSTRING 0x00020000


    MinGW/include/commctrl.h に追加
    typedef struct tagNMKEY
    {
    NMHDR hdr;
    UINT nVKey;
    UINT uFlags;
    } NMKEY,*LPNMKEY;
    #if (_WIN32_IE >= 0x0300)
    #define TB_SETIMAGELIST (WM_USER + 48)
    #define TB_GETIMAGELIST (WM_USER + 49)
    #endif
    typedef int (CALLBACK *PFNTVCOMPARE)(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
    #if (_WIN32_IE >= 0x0300)
    typedef struct tagTVSORTCB
    {
    HTREEITEM hParent;
    PFNTVCOMPARE lpfnCompare;
    LPARAM lParam;
    } TVSORTCB,*LPTVSORTCB;
    #endif
    #if (_WIN32_IE >= 0x0300)
    #define TBN_DROPDOWN (TBN_FIRST - 10)
    #endif
    • [2569] gcc(MinGW)ビルド みく 2003年02月15日 11:26


      htmlhelp.h
      activescp.h
      PlatformSDKなどから持ってくる。


      ・MY_SP.c
      160,244,300,319,323,326,332,353行目
      型が違う。
      unsigned char* と char* を明確にキャスト指定


      以下の2種類のエラーは不明。誰か助けてください。

      ・CWSH.cppでエラー
      In file included from ../sakura_core_mingw/CWSH.cpp:14:
      ../sakura_core_mingw/CWSH.h:40: ISO C++ forbids declaration of `operator=' with
      no type
      In file included from ../sakura_core_mingw/CWSH.cpp:16:
      ../sakura_core_mingw/CMacroFactory.h:84:7: warning: no newline at end of file
      mingw32-make: *** [..\sakura_core_mingw\CWSH.o] Error 1

      ・CPropCom*.cppでエラー
      ../sakura_core_mingw/CPropComBackup.cpp: In static member function `static int
      CPropCommon::DlgProc_PROP_BACKUP(HWND__*
      , unsigned int, unsigned int, long
      int)':
      ../sakura_core_mingw/CPropComBackup.cpp:82: no matching function for call to `
      CPropCommon::DlgProc(<unknown type>, HWND__*&, UINT&, WPARAM&, LPARAM&)'
      ../sakura_core_mingw/CPropCommon.h:129: candidates are: static int
      CPropCommon::DlgProc(int (CPropCommon::*)(HWND__*, unsigned int, unsigned
      int, long int), HWND__*, unsigned int, unsigned int, long int)
      mingw32-make: *** [..\sakura_core_mingw\CPropComBackup.o] Error 1
      • [2571] RE: gcc(MinGW)ビルド みく 2003年02月15日 11:49


        >・CWSH.cppでエラー

        CWSH.h:40
        ImplementsIUnknown& operator = (const ImplementsIUnknown &);
        でいいんでしょうか?
      • [2572] RE: gcc(MinGW)ビルド みく 2003年02月15日 19:51


        >・CPropCom*.cppでエラー
        CPropTypesと同じように、DlgProc処理を展開して回避

        ・MY_SP.C
        MY_SP.cppに変更
        MY_SP.hのextern "C"を削除
        SAKURA_CORE_APIを適当に付ける。

        ・CPropComMacro.cpp:243,438
        (LPSTR)でキャストする。

        ・ライブラリは適当に指定する。
        -lmingw32 -lmingwex -lshell32 -luser32 -lgdi32 \
        -lcrtdll -luuid \
        -lkernel32 -lwin32k -lwin32spl -lwinspool -lnetapi32 \
        -lcomctl32 -lcomdlg32 -lmpr -lole32 -loleaut32 -limm32 \
        -lstdc++ -lsupc++
        リンク時にCWSH.cppでundeclared ... basic_string... 関係のエラー
        よくわかりません。
        • [2573] RE2: gcc(MinGW)ビルド みく 2003年02月15日 23:28


          >リンク時にCWSH.cppでundeclared ... basic_string... 関係のエラー

          とりあえず CWSH.cppをはずす。
          CSMacroMgr.cppからWSH関係の処理をコメントアウトする。

          ビルドは成功してsakura.exeができたが、
          全く駄目ですな。

          まともに動かん。。。
        • [2578] RE2: gcc(MinGW)ビルド みく 2003年02月17日 19:14


          >・MY_SP.C
          >MY_SP.cppに変更
          >MY_SP.hのextern "C"を削除
          >SAKURA_CORE_APIを適当に付ける。

          MY_SP.C が MY_SP.h をインクルードしてないのが原因です。


          結果報告:
          ビルドに成功はしましたが、sakura_rc.rcで定義している
          ダイアログ系が全滅です。
          windresは、
          rcファイルのDLGINITという定義に対応していません。
          rcファイルの日本語文字列の後ろに日本語文字数だけ\000
          が付いてしまいます。
          • [2580] RE3: gcc(MinGW)ビルド みく 2003年02月17日 20:23


            とりあえず、junk/mingw-build-20030217.zip に
            MinGW用のビルド環境とソース修正diffを置きました。

            #ビルドしても動きませんので、念のため。
            • [2584] RE4: gcc(MinGW)ビルド みく 2003年02月18日 19:46


              >#ビルドしても動きませんので、念のため。

              windresが悪いようで、
              VisualC++のrc.exeを使ってsakura_rc.rc --> sakura_rc.res をし、
              windres.exe で sakura_rc.res --> sakura_rc.o をし、リンクし
              たら正常にダイアログが出るようになりました。

              > rc.exe /l 0x411 /fo sakura_rc.res sakura_rc.rc
              > windres.exe --language=0x411 -i sakura_rc.rc -o sakura_rc.o

              ちなみに、できたsakura.exeはFDに入りません。

              あと、終了時に必ずアプリケーションエラーになるようです。
    • [2570] MinGWビルドツール みく 2003年02月15日 11:26


      まだエラーが取れてませんが、とりあえず
      MinGWでのビルドツールをおきました。

      →junk/mingw-build-20030215.zip
    • [2579] バグ みく 2003年02月17日 20:23


      CDocLineMgr_new.cpp:632
      ローカル変数を戻り値にしている。
      • [2581] Re: バグ げんた 2003年02月18日 01:50

        >CDocLineMgr_new.cpp:632
        >ローカル変数を戻り値にしている。
        それ以前に
        return ((char*)"%s",szText);
        って何? ...意図が読めん。正気か?

        とりあえずは
        char szText[MAX_MARKLINES_LEN + 1]; //2002.01.17
        return szText;
        で大丈夫かしら。
    • [2616] MinGWビルドツール(完) みく 2003年03月10日 19:21


      MinGWのビルドツールをアップしました。

      junk/mingw-build-2003-03-10.zip

      ビルド方法:
      (MinGWをインストールした後、)
      ssrc_2003-03-09/ 配下に展開したあと、
      mingwtool/junk/mingw-2003-03-09.diff パッチを当てます。
      sakura/フォルダで
      mingw32-make -f ..\mingwtool\mingw.mak
      とすればビルドできるはずです。

      パッチは既存のバグ修正もいくつか含んでいます。
      その他は MINGW で ifdef してますので他のコンパイラでは
      問題が出ないはずです。

      リソースコンパイラは VC のものを使いました。
      他のリソースコンパイラを使う場合はメークファイルを修正
      してください。

      Boarland C++ Compiler
      Digital Mars Basic Utilities
      GoRC
      など
      • [2619] RE: MinGWビルドツール(完) みく 2003年03月12日 18:48


        完のつもりが、mingw.mak に

        OleTypes.h
        my_tchar.h

        が抜けてました。


        メモ:
        ちょっと試したんですが、Digital MARS C++ Compiler ではビルドできませんでした。
        • [2639] RE2: MinGWビルドツール みく 2003年03月30日 13:40


          ssrc_2003-03-30版からの差分に変えました。→junk/

          なお、添付の mingw.mak ではダイアログ等の
          0x5cを含む文字以降が表示されません。


          以下はバグなのでマスタ側の修正をお願いしたいと思います:

          CDlgCtrlCode.cpp:96行目(longが抜けている)
          static const long p_ctrl_list_num = sizeof(p_ctrl_list) / sizeof(struct ctrl_info_t);

          MY_CP.C:72行目
          #include "MY_SP.h"
          が抜けている。
          • [2641] Re3: MinGWビルドツール げんた 2003年03月30日 13:57

            >以下はバグなのでマスタ側の修正をお願いしたいと思います:
            了解しました。
      • [3062] RE: MinGW3ビルドツール みく 2003年08月31日 22:19


        MinGW3.0.0-rc4 + SJIS版windres でのビルドツールをアップしておきました。

        junk/mingwtool20030831.lzh

        SJIS版windresは以下から取得してください。

        http://jp1.freemy.homeip.net/noire/sjis.html
        にある
        http://jp1.freemy.homeip.net/noire/archives/windres-2.14.90-sjis.zip