◀ANSI版開発トップへ
  • 3710 コンパイルエラーの報告(参考)
    • 3711 Re: コンパイルエラーの報告(参考)
      • 3712 Re2: コンパイルエラーの報告(参考)
        • 3713 Re3: コンパイルエラーの報告(参考)
    • 3720 Win64バイナリ
      • 3721 Re:Win64バイナリ
      • 3722 Re:Win64バイナリ アップロードしました。
        • 3724 Re2:Win64バイナリ アップロードしました。
          • 3725 Re3:Win64バイナリ アップロードしました。
            • 3726 Re4:Win64バイナリ アップロードしました。
      • 3723 Win64環境(OS,CPU,コンパイラ)<参考>
  • [3710] コンパイルエラーの報告(参考) KEITA 2004年08月16日 17:43

     ご無沙汰してます。

     現在Microsoftが提供している最新VS2005(Beta1)でコンパイル
    しますと、"return DlgProc( ..." の行で必ずエラーが発生して
    しまいます。

    例:
    error C4867: 'CPropCommon::DispatchEvent_PROP_BACKUP'
    :
    function call missing argument list;
    use '&CPropCommon::DispatchEvent_PROP_BACKUP
    '
     to create a pointer to member

     例えばCPropComBackup.cpp 内では、
    return DlgProc( DispatchEvent_PROP_BACKUP,
    の行ですが、じっくりソースは見ていませんが、ひとまず第一引数に
    以下のように&を挿入しますと
    return DlgProc( &DispatchEvent_PROP_BACKUP,
    正常にコンパイルできます。

     現在の最新ソースの中には15箇所ほど"return DlgProc"の行が
    ありますが、全て同様でした。

     本来どうあるべきなのでしょうか?

     もうひとつ、
    CLayoutMgr_New.cpp の中で_mbsstr関数が使われていますが、
    AMD64モードでは、undefinedになってしまいました。
    ここは strstr の利用に変更できないでしょうか?
    • [3711] Re: コンパイルエラーの報告(参考) げんた 2004年08月16日 21:26

      > &CPropCommon::DispatchEvent_PROP_BACKUP
      同様のエラーを見たことあります.行の折り返し方法を制御するCLayoutMgr::SetLayoutInfo()で,処理メンバ関数を変数に入れていますが,getIndentOffset_Tx2xとメンバ名だけ書かれているとVisual Cでない何かでコンパイルエラーになるとのことで&CLayoutMgr::getIndentOffset_Tx2x;と書き直しました.

      てなわけで要修正だと思います.
      しかしなぜこっちはそのまま残ってしまったのでしょうね.

      >_mbsstr
      うーん,AMD64だけでundefinedというのは謎な仕様ですが...
      その他のインデント対象文字に記述されている全角の連続の途中にヒットしないように_mbsstr()を使っているわけですから,帰るとすれば独自実装しかないと思います.
      • [3712] Re2: コンパイルエラーの報告(参考) もか 2004年08月17日 00:09

        >>_mbsstr
        #include <mbstring.h> してないからとかでは?
        • [3713] Re3: コンパイルエラーの報告(参考) KEITA 2004年08月17日 06:48

          > >>_mbsstr
          > #include <mbstring.h> してないからとかでは?

          そうでした。

          なぜか32bitはなくてもOKでしたが、AMD64もIA64もないとNGのようです。
          頭の方で、
          #include <mbstring.h>
          を挿入しておいていただければと...
    • [3720] Win64バイナリ げんた 2004年08月24日 09:53

      そういえば最近Win64バイナリ更新していませんが,コンパイル済みのバイナリを提供して頂ければホームページの方を更新します.
      でも今頃Win64使っているのって開発者の人だけだからソース提供で問題ないのかなぁ.
      • [3721] Re:Win64バイナリ KEITA 2004年08月24日 17:55

        おっと、そうでしたね。了解いたしました。
        整理してアップロードさせていただきます。
        数日お待ち下さい。
      • [3722] Re:Win64バイナリ アップロードしました。 KEITA 2004年08月25日 13:48

        Yahoo! Group
        http://groups.yahoo.co.jp/group/sakura-editor/files/

        Developer/Source に以下の修正版ソースをアップロードしました。
        ssrc_2004-07-12_for_win64.zip (IA64/AMD64版向け修正ソース)
        これに伴い以前の
        ssrc_2003-10-24_dev64.zip は削除いたしました。

        また、
        実行モジュールは、Junk側にアップロードしておきました。
        sakura_2004-07-12_amd64.zip
        sakura_2004-07-12_ia64.zip
        同時に以下のファイルは削除いたしました。
        sakura64_diff_core.lzh

        実行モジュールの方は掲載されましたら削除しておきます。

        IA64/AMD64版ともに単純な動作テストは行っています。
        • [3724] Re2:Win64バイナリ アップロードしました。 げんた 2004年08月25日 23:48

          ありがとうございました.ホームページの方に転載させて頂きました.

          >Developer/Source に以下の修正版ソースをアップロードしました。
          >ssrc_2004-07-12_for_win64.zip (IA64/AMD64版向け修正ソース)

          >1.return DlgProc
          >2.#include <mbstring.h>
          上記2点は最新ソースで反映済みです.

          >3.以下のようなワーニング
          比較してみましたが本当にスペースの有無しか違いがないですね.
          Unicodeで0082のコードって一体...(@_@)??

          >5.WIN64用コンパイラ名称
          これはメインソースにも反映したいと思います.忘れなければ(^^ゞ

          > IA64のコンパイル時のみ以下のようなワーニングが連発
          >WinNT.h(2998) : warning C4163: '_interlockedbittestandset' : not available as an intrinsic function
          intrinsic functionてのはアセンブラ固有の命令を使った関数ということらしいので,_interlockedbittestandsetに相当する命令はIA64に無いから直接は展開されない(関数コールになる?)ってことではないでしょうか.
          x86でLOCK prefixとXCHG命令でアトミックにデータを入れ替えらるといったことがIA64は出来ないのかな.
          • [3725] Re3:Win64バイナリ アップロードしました。 KEITA 2004年08月26日 09:35

            > ありがとうございました.ホームページの方に転載させて頂きました.

            あれれ、リンクが切れているような?
            以前のものはダウンロードできるみたいですが...
            junkから削除してしまったのですが大丈夫ですか?
            • [3726] Re4:Win64バイナリ アップロードしました。 げんた 2004年08月26日 23:48

              >あれれ、リンクが切れているような?
              失礼しました.アップロードするディレクトリを間違えていました.
      • [3723] Win64環境(OS,CPU,コンパイラ)<参考> KEITA 2004年08月25日 14:19

        OSについて

        現在64bitWindowsは、マイクロソフトから無償配布されています。
        以下のものはAMD64版ですが、最近ではIntelがAMD64互換のEM64T版を
        リリースし始めたので総称してx64版とか64bit拡張版とか言われて
        いるようです。マイクロソフトのIntelへの気使いだと思われます。
        http://www.microsoft.com/windowsxp/64bit/evaluation/upgrade.mspx

        上記ページのものをダウンロード(iso形式)してCDに焼けばインス
        トールCDが出来ます。インストール時の注意としては、英語版です
        ので、インストール中の言語設定で"East Asian"をチェックして
        日本語モードにしておくことと、インストール後にKeyboardのドラ
        イバーをjapanese106/109に変更しておく必要があります。


        CPUについて

         上記OSのSupported processorsは以下です。
        AMD Athlon 64
        AMD Opteron
        Intel Xeon including Intel EM64T
        Intel Pentium 4 including Intel EM64T

        最新Xeon(Nocona)や新しいPentium4はEM64T対応されはじめました
        ので、今後は普通にPCを購入しても、中身は64bitマシンになって
        いる場合が多いかと思います。


        コンパイラについて

         64bit Windows向けのコンパイラですが、以下のページにあるよう
        に配布されはじめました。
        http://www.microsoft.com/japan/msdn/vstudio/2005/beta/
        このVisual Studio 2005 日本語ベータ 1 をインストールする時に、
        インストール項目の選択画面が表示されますが、この中のC++の項目
        の中に64bit環境のチェック項目がありますので、そこにチェックを
        入れてからインストールして下さい。この状態でインストールすれば、
        WIN32,IA64,AMD64の環境のモジュールが作成できます。
         sakuraの現行プロジェクトファイルも不可逆変換ながらも一応は
        読み込めるようです。

        -----------------
         参考までに当方の環境は、
        Athlon64 3200+マシンに、マルチブートで上記OSをインストールし、
        このOS上にVisual Studio 2005 日本語ベータ 1をインストールして
        コンパイル・リンクしました。(※AMD64版はその場でテスト可能)