トップページ⇒tech
60コメント19KB

Donut開発情報交換スレ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
オープンソースのタブブラウザDonutの開発情報交換スレです。

ソースの入手先はこちら。
Donut(本家)
http://hp.vector.co.jp/authors/VA016589/index_japanese.htm
Donut RAPT、L
http://www.atmark.gr.jp/~s2000/r/
Donut P
http://donutp.com/
0002デフォルトの名無しさんNGNG
ビルド環境

Donut:
 VC++ 6.0, ATL3.0/WTL3.1

Donut RAPT:
 VC++ 6.0, ATL3.0/WTL7.0, IE6.0 Header files
Donut P:
 VC++ 6.0, ATL3.0/WTL3.1, IE5.5 Header files(?)
0003デフォルトの名無しさんNGNG
関連リンク

Donut2.52のビルド+ソースファイルの簡単な解説
http://hp.vector.co.jp/authors/VA016589/software/build_donut/build_donut.html
Donut RAPT/Lのビルド
http://www.atmark.gr.jp/~s2000/r/help/build.html
ATL/WTLの解説のあるページ (日本語)
http://home.att.ne.jp/banana/akatsuki/top/main.html
The Code ProjectのATL, WTLのページ (英語)
http://www.codeproject.com/atl/
http://www.codeproject.com/wtl/

Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
WTL (7.5〜)
http://sourceforge.net/projects/wtl/
WTL (7.1)
http://www.microsoft.com/downloads/details.aspx?familyid=1BE1EB52-AA96-4685-99A5-4256737781C5&displaylang=en
IE6 Headers & Libraries
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/libraries/ie6_lib/default.asp
0004デフォルトの名無しさんNGNG
関連スレ

Donut Vol.14
http://pc5.2ch.net/test/read.cgi/win/1082762662/
ATL/WTL Part3
http://pc5.2ch.net/test/read.cgi/tech/1095442366/
class ATL/WTL : public 2chlt;ATL/WTL, Part3gt;
http://pc5.2ch.net/test/read.cgi/tech/1095185498/
0005デフォルトの名無しさんNGNG
>>1
こういうのはソフト板でやるべきなんじゃないかと思ったりしちゃうわけですよ

ソフトウェア板
http://pc5.2ch.net/software/
0006デフォルトの名無しさんNGNG
>5
内容的にはム板の方が適当と思ったのですが板違いでしょうか?
特定のソフトウェアに関するものはダメ、というのは特にないと思ったのですが・・・。
0007デフォルトの名無しさんNGNG
プログラムの開発・技術に関すること
ローカルルールにも「この板はプログラムを作る人のための板です。」
って書いてあるし良いと思うんだけどな
0008デフォルトの名無しさんNGNG
まずはwin板からの流れですが、
VC++.NET 2003, ATL7/WTL7.5でコンパイルできるようにしましょう。

http://hp.vector.co.jp/authors/VA016589/software/build_donut/build_donut.html
によると、
AtlhostEx.h
AtlifaceEx.h
AtlifaceEx.idl
AtlifaceEx_i.c
が「ATLのバグフィックス及びput_DLControlFlagsインターフェイスを追加したもの。」
ということなので、これらをATL7に対応したものに置き換える必要があります。
0009デフォルトの名無しさんNGNG
で、元のATL3.0版ではIAxWinAmbientDispatchExを作って
put_DLControlFlagsが定義してあるんだけど、ATL7.0では
最初からIAxWinAmbientDispatchExが存在しているので、
とりあえずIAxWinAmbientDispatchEx2に変更してみました。

AtlifaceEx_i.c
< const IID IID_IAxWinAmbientDispatchEx = {0x359E0200,0x54D2,0x11d4,{0x8A,0x9C,0xAB,0xAE,0xC7,0x3C,0x4C,0x73}};
---
> const IID IID_IAxWinAmbientDispatchEx2 = {0x359E0200,0x54D2,0x11d4,{0x8A,0x9C,0xAB,0xAE,0xC7,0x3C,0x4C,0x73}};
0010デフォルトの名無しさんNGNG
あと、
using WTL::wtlTraceFlags; がエラーになるのでコメントアウト。
ATL7.0以降では定義されないらしい。

atlapp.h
#if (_ATL_VER >= 0x0700)
 DECLARE_TRACE_CATEGORY(atlTraceUI);
 #ifdef _DEBUG
  __declspec(selectany) ATL::CTraceCategory atlTraceUI(_T("atlTraceUI"));
 #endif // _DEBUG
#else //!(_ATL_VER >= 0x0700)
 enum wtlTraceFlags
 {
  atlTraceUI = 0x10000000
 };
#endif //!(_ATL_VER >= 0x0700)
0011デフォルトの名無しさんNGNG
何この情報交換と見せかけて実は作ってくださいスレ
0012デフォルトの名無しさんNGNG
ATLスレ使っても良かったんじゃない?
で、>>8は完動させられたのか?
0013デフォルトの名無しさんNGNG
>12
いやところがエラーつぶしてビルドするまではいったんだけど
ちゃんと動くとはいえないものができてしまってそのまま放置してました。

win板でビルドに挑戦しようとしてる人がいたので
とりあえず自分がやったところは書いておこうかと。

これからちょっとづつ調べていこうと思ってるけど
その前にdat落ちしそうな予感。
0014デフォルトの名無しさんNGNG
要するに誰かなんとかしてくださいスレだろ
0015デフォルトの名無しさんNGNG
>14
あんまりそういう人もいないだろうからしかたなく。
でも誰かなんとかしてくれるのが一番ありがたいんですけどね。

そういうわけで、誰かATL3.0を持ってる人
Atlhost.hとAtlhostEx.h、Atliface.h, idlとAtlifaceEx.h, idlの
diffをとってくれませんか?
0016デフォルトの名無しさんNGNG
ATL3.1じゃだめぽなの?
ググれば普通にあるけど
0017デフォルトの名無しさんNGNG
>16
ATLも3.1ってあったんですか。
もしかしてATL3.1拾ってきてビルドすればいいじゃん、って話?
ちょっと探してきます。
0018デフォルトの名無しさんNGNG
>16
なかなか見つからないです。
っていうかATL3.1でした?WTLじゃなくて?
VC++.NETのドキュメントではATLのバージョンは
1.0 -> 1.1 -> 2.0 -> 2.1 -> 3.0 -> 7.0
となっているんですが・・・。
0019デフォルトの名無しさんNGNG
あ、WTLと勘違いしてた。スマソ
0020デフォルトの名無しさんNGNG
てかdiffって7.0のと取るんでしょ?うーん
0021デフォルトの名無しさんNGNG
>20
3.0を元にしたソースなので、3.0のとdiffがわかれば
7.0版を作るのも楽になるでしょ?
0022デフォルトの名無しさんNGNG
古いAtlifaceEx.hとAtlifaceEx.idlも
IAxWinAmbientExをIAxWinAmbientEx2に置換するだけで使えました。
この2つは新しい定義しかないからOKなのかな。
0023デフォルトの名無しさんNGNG
AtlhostEx.hはatlhost.hと置き換えになるから
ちゃんとATL7.0のatlhost.hから書き直したほうがいいでしょう。
古いAtlhostEx.hから、
///////////////////////////////////////////////////////////////////////////
で囲まれたget_DLControlFlagsとかのある部分をコピペ。
その下の
BEGIN_COM_MAP(CAxHostWindow)
と
END_COM_MAP()
の間に
COM_INTERFACE_ENTRY2(IDispatch, IAxWinAmbientDispatchEx2)
COM_INTERFACE_ENTRY(IAxWinAmbientDispatchEx2)
を追加。内容はまだよくわかってないので
この辺が不具合の原因かも、とにらみつつとりあえず先へ進みます。
0024デフォルトの名無しさんNGNG
ATLTRYの中で宣言したCChildFrame* pChildが未定義といわれるので
とりあえずATLTRYの外に宣言を移しておく。

MSG_WM_TIMERがWTL7.0から変更になったらしい。(readme参照)
void OnTimer(UINT, TIMERPROC*)は
void OnTimer(UINT, TIMERPROC)に変更(2箇所)

MtlRefreshBandIdealSizeで型が違うといわれるので
GetParentをCReBarCtrlにキャスト。
何が変わったせいかは未調査です。

これでとりあえずビルド成功。Donut2.52です。
0025デフォルトの名無しさんNGNG
このままだと起動時にいきなりエラーが出るので、
Donut.cppで
hRes = _Module.Init(NULL, hInstance);を
hRes = _Module.Init(NULL, hInstance, &LIBID_ATLLib);に変更。
これもATLの変更のせい、とどこかで見た気がします。
0026デフォルトの名無しさんNGNG
まんどくせーからさっさとdiffをうぷしてくれたまへ
0027デフォルトの名無しさんNGNG
DonutRapt#51 を VC++.NET 2003 でコンパイルできるようにしました。
なんとなくちゃんと動く感じです。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1096708308_1/donutRapt_diff.zip
0028デフォルトの名無しさんNGNG
ちょっと突っ込んでおくと
IAxWinAmbientDispatchEx→ IAxWinAmbientDispatchEx2
みたいなありがちな名前変更は将来的な衝突を起こしかねんから止めといたほうがいいと思う。
ださいけどIAxWinAmbientDispatchEx200とか・・・
002928NGNG
//MtlRefreshBandIdealSize(GetParent(), m_hWnd); よくわからん
これはダメ
MtlRefreshBandIdealSize((HWND)GetParent(), m_hWnd);

あとC4005は#undefで対応した方が良いかもしれない。
0030デフォルトの名無しさんNGNG
>27
乙です。ちゃんと動くっぽいですね。
RAPTは途中からWTL7.0に変更されているから
そのあたりでdiffを取れば本家やPも対応できるかな。
003127NGNG
>>28
とりあえず、指摘の部分は直しました。
まあ、あえてdiffをあげるほどの物ではないでしょう。

>>30
現段階ではかなり無理やりですので...
まず、wtlfixedのなかを何とかしたいですね。
0032デフォルトの名無しさんNGNG
タブ閉じるときにたまに落ちる・・・
003327NGNG
>>32
自分はあれをベースにさらにunicode対応させたものを使っていますが、
そう言った現象は発生していません。
まあ、そんなに使いこんでいるわけではないのでこれから起こるかもしれませんが。
0034デフォルトの名無しさんNGNG
>30
RAPT新しいソースしかなかったorz
>32
上に書いたやり方でやった場合ですか?
あれはとりあえずビルドできた程度のものなので不具合ありです。
子ウィンドウのスクロールバーが出ないとこから何とかしたい。
0035デフォルトの名無しさんNGNG
うちではスクロールバーは出てるけど?
0036デフォルトの名無しさんNGNG
>35
AtlhostEx.hのマージミスのせいだったようです。
>27のdiffのとおりにすれば本家も大体ちゃんと動きました。
でも新規タブを開くとMDI子ウィンドウの最大化が解除されてしまうみたい。
DonutPでもやってみましたがMDI子ウィンドウが最大化されてないと
スクロールバーが出ないというよくわからない状態に。
もうちょっと調べてみます。
0037デフォルトの名無しさんNGNG
>36
DonutPでMDI子ウィンドウが最大化されてないとスクロールバーが出ないのは
基にしてたバージョン4.3がもともとそうだったみたいで、
5.0のソースを基にしたらちゃんとスクロールバーでました。
なのでPも>27と同じようにしてビルドできそうです。
0038デフォルトの名無しさんNGNG
漏れ用リンク

DonutP unDonut スレッド Vol.23
http://pc5.2ch.net/test/read.cgi/software/1099166727/l50
unDonut Part1
http://pc5.2ch.net/test/read.cgi/software/1099122910/l50
DonutP スレッド Vol.23
http://pc5.2ch.net/test/read.cgi/software/1099121708/l50
Donut Vol.14
http://pc5.2ch.net/test/read.cgi/win/1082762662/l50
ドーナツ
http://pc5.2ch.net/test/read.cgi/software/1099398734/l50


85 :名無しさん@お腹いっぱい。 :04/11/06 14:14:19 ID:0OkCSmH+
Donut開発情報交換スレ
http://pc5.2ch.net/test/read.cgi/tech/1096194187/
【Sleipnir】タブブラウザ@pc2nanmin【DonutP】
http://pc5.2ch.net/test/read.cgi/pc2nanmin/1080314174/
0039デフォルトの名無しさんNGNG
>>34
> RAPT新しいソースしかなかったorz
公開されてる
0040デフォルトの名無しさんNGNG
今までの全ソース出てるね。
0041デフォルトの名無しさんNGNG
Rapt #52出たけどソースコードはまだみたい。
0042デフォルトの名無しさんNGNG
こんなページもあったり
ttp://www.atmark.gr.jp/~s2000/r/rtl/TreeOption.html
0043デフォルトの名無しさんNGNG
上げ保守ついでにRAPT #56のソース来てました
0044デフォルトの名無しさんNGNG
Diff Diff Diff
0045デフォルトの名無しさん05/02/28 15:03:47
保守ついでに
WTL 7.5出てます
0046デフォルトの名無しさん05/02/28 20:29:57
いつの話やねん
0047デフォルトの名無しさん2005/06/01(水) 19:20:57
age
0048デフォルトの名無しさん2005/06/16(木) 23:57:30
ソースと実行ファイルを入手したいのですが
>>1
のサイトにアクセスできません…
ミラーサイトとかってありますか?
0049デフォルトの名無しさん2005/06/17(金) 20:58:39
RAPT氏のサイトいってごらん
0050デフォルトの名無しさん2005/06/18(土) 18:44:42
>>49
情報ありがとうございます
さっそく覗いてみました

そこからダウンロードできた
donut251_r0c-2_src01.zip
が最も新しいソ−スなのでしょうか?

InternetArchiveで検索すると
donut252_src02.lzh
が存在しているようです

InternetArchiveに残っていたページに
そう書いてあったのですが、残念ながら、
そのlzhはInternetArchiveに
残っていなかったようでした…
0051デフォルトの名無しさん2005/06/24(金) 21:14:40
>>50
あるかと思ってたら無かったですかorz..

とりあえずdonut252_src02.lzh、うpした。
http://para-site.net/up/data/2877.lzh
0052デフォルトの名無しさん2005/07/02(土) 00:16:20
>>51
めちゃくちゃ遅くなりましたが
いただきました
どうもありがとう
0053デフォルトの名無しさん2005/07/21(木) 22:57:21
 
0054デフォルトの名無しさん2005/07/24(日) 13:58:52
#63age
Qのソースも遂に公開か
0055デフォルトの名無しさん2005/07/24(日) 18:06:54
どこ?
0056デフォルトの名無しさん2005/07/24(日) 19:00:00
倉庫2
0057デフォルトの名無しさん2005/07/24(日) 20:49:24
QとLを間違ってるだけでは・・・
0058デフォルトの名無しさん2005/07/24(日) 23:32:35
確かに間違ってた
スマヌ;;

QとLとは間違えてない
0059デフォルトの名無しさん2005/09/17(土) 17:57:59
VC++ .Netでビルドしようとあれこれしたが、CDonutViewのOnCreateがうまくいかない。
m_spAxAmbientが0のまま。こいつに向けてQueryInterfaceを行うとE_NOINTERFACEが返ってくることはわかった。
で、どうしたらいいかわからん。
○| ̄|_
0060デフォルトの名無しさん2005/09/18(日) 17:58:18
>>59
unDonutのソースがVC7.1みたいだから参考にすれば?
■ このスレッドは過去ログ倉庫に格納されています