2004/8/16 (月) 17:43:20 KEITA  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
[3710] コンパイルエラーの報告(参考)
 ご無沙汰してます。

 現在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 の利用に変更できないでしょうか?

2004/8/16 (月) 21:26:42 げんた  
INCM1.23c
[3711] Re: コンパイルエラーの報告(参考)
> &CPropCommon::DispatchEvent_PROP_BACKUP
同様のエラーを見たことあります.行の折り返し方法を制御するCLayoutMgr::SetLayoutInfo()で,処理メンバ関数を変数に入れていますが,getIndentOffset_Tx2xとメンバ名だけ書かれているとVisual Cでない何かでコンパイルエラーになるとのことで&CLayoutMgr::getIndentOffset_Tx2x;と書き直しました.

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

>_mbsstr
うーん,AMD64だけでundefinedというのは謎な仕様ですが...
その他のインデント対象文字に記述されている全角の連続の途中にヒットしないように_mbsstr()を使っているわけですから,帰るとすれば独自実装しかないと思います.

2004/8/17 (火) 00:09:05 もか  
INCM1.23a
[3712] Re2: コンパイルエラーの報告(参考)
>>_mbsstr
#include <mbstring.h> してないからとかでは?

2004/8/17 (火) 06:48:24 KEITA  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
[3713] Re3: コンパイルエラーの報告(参考)
> >>_mbsstr
> #include <mbstring.h> してないからとかでは?


そうでした。

なぜか32bitはなくてもOKでしたが、AMD64もIA64もないとNGのようです。
頭の方で、
#include <mbstring.h>
を挿入しておいていただければと...

2004/8/24 (火) 09:53:05 げんた  
INCM1.23c
[3720] Win64バイナリ
そういえば最近Win64バイナリ更新していませんが,コンパイル済みのバイナリを提供して頂ければホームページの方を更新します.
でも今頃Win64使っているのって開発者の人だけだからソース提供で問題ないのかなぁ.

2004/8/24 (火) 17:55:41 KEITA  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
[3721] Re:Win64バイナリ
おっと、そうでしたね。了解いたしました。
整理してアップロードさせていただきます。
数日お待ち下さい。

2004/8/25 (水) 13:48:34 KEITA  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
[3722] Re:Win64バイナリ アップロードしました。
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版ともに単純な動作テストは行っています。

2004/8/25 (水) 23:48:27 げんた  
INCM1.23c
[3724] Re2:Win64バイナリ アップロードしました。
ありがとうございました.ホームページの方に転載させて頂きました.

>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は出来ないのかな.

2004/8/26 (木) 09:35:54 KEITA  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
[3725] Re3:Win64バイナリ アップロードしました。
> ありがとうございました.ホームページの方に転載させて頂きました.

あれれ、リンクが切れているような?
以前のものはダウンロードできるみたいですが...
junkから削除してしまったのですが大丈夫ですか?

2004/8/26 (木) 23:48:19 げんた  
INCM1.23c
[3726] Re4:Win64バイナリ アップロードしました。
>あれれ、リンクが切れているような?
失礼しました.アップロードするディレクトリを間違えていました.

2004/8/25 (水) 14:19:35 KEITA  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
[3723] Win64環境(OS,CPU,コンパイラ)<参考>
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版はその場でテスト可能)

INCM/CMT
Cyclamen v3.81
[ut:0.020][st:0.010]