1read 100read
2011年11月2期プログラム8: ATL/WTL Part6 (879) TOP カテ一覧 スレ一覧 2ch元 削除依頼

ATL/WTL Part6


1 :07/12/27 〜 最終レス :11/11/24
ATLとWTLについて語り合って下さい。
WTL配布元
http://wtl.sourceforge.net/
過去ログ
■(Part1) ATL/WTL
http://piza.2ch.net/test/read.cgi/tech/978029639/l50
■(Part2-1) ATL 相談室
http://pc5.2ch.net/test/read.cgi/tech/1029029882/l50
■(Part2-2) WTLお勉強スレッド
http://pc5.2ch.net/test/read.cgi/tech/1078150663/l50
■ATL/WTL Part3
http://pc8.2ch.net/test/read.cgi/tech/1095442366/l50
■ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/l50
■ATL/WTL Part5
http://pc11.2ch.net/test/read.cgi/tech/1155951708/

2 :
関連サイトなど
■The So-Software Studio
ttp://home.att.ne.jp/banana/akatsuki/
■WTL研究所
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
■WTL support list
ttp://tech.groups.yahoo.com/group/wtl/
■The Code Project - ATL, WTL
ttp://www.codeproject.com/KB/atl/
ttp://www.codeproject.com/KB/wtl/
■viksoe
ttp://www.viksoe.dk/code/
■MSDN
ttp://msdn2.microsoft.com/ja-jp/library/t9adwcde.aspx
ttp://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/ATLwindowing/
ttp://www.microsoft.com/japan/msdn/library/ja/vccore/html/_atl_ATL_Window_Classes.asp
■Virtual Truth Lab.
ttp://lamoo.s53.xrea.com/develop/
■日曜プログラマの仕事べや
ttp://hp.vector.co.jp/authors/VA022575/c/

3 :
O2

4 :
おつ

5 :
>>1

テンプレ細かいところがさりげなく整理されてるね

6 :
今まさにWTLのリポジトリがbviksoeたんによって更新されてるな。
atldlgs.hをいじってる模様。
CDialogBaseUnitsというクラスが追加されてる。

7 :
CStringがあるんだから
CWにみしらてにもせりとかもWTL側で作ってしまえば。
EEとかでもヘッダ持ってくるだけで使えるんじゃないの?

8 :
最近流行りなの?わざとかな入力にするの。
オジサン、ついていけないよ(´・ω・`)

9 :
>>7
upよろ

10 :
atl/wtlスレもついに6か
遅ればせながら
>>1


11 :
あけましておめでとう〜

12 :
全然あけてねーよ

13 :
ネタくらいしか話題がないんだから仕方ないだろう

14 :
なんで過疎なんだよ

15 :
viksoeたんが頑張ってくれないから

16 :
もうやだ

17 :
江戸時代の触手プレイ漫画
ttp://www.geocities.co.jp/Playtown-Dice/6771/hokusai.jpg
江戸時代のオナホ・ディルド
ttp://hugo-sb.way-nifty.com/hugo_sb/imgs0411/adult_toys.jpg

18 :
みんなどうやってWTL覚えたの?
覚えようにも本とか出てないんだよなぁ

19 :
テンプレのサイトを読み書きすりゃそのうち手になじむよ。
とりあえずSo-SoとCodeProjectあたりをどぞー。

20 :
本はいいからまずは整理されたドキュメントが欲しいな

21 :
So-Soがあればドキュメントなんかほしいと思ったことはないな

22 :
WTLってなぜMFC(のスタティックリンク)と比べて圧倒的に
バイナリサイズが小さくなるんでしょうか?
似たクラスが多いんで、そんなに変わらないような気がするのと、
ヘッダに全て記述することや、インライン・テンプレート化に
そこまでの効果があるようには思えないですし…。

23 :
MFCはフローティングバーの実装だけで
WTLの全てのコード量を超えると思われる

24 :
>>22
本当にMFCのコードなりクラスツリーなり見たか?
あれを見れば「WTLとそんなに変わらない」なんて言えないと思うんだが。

25 :
>>23
>>24
すいません。MFCはコードを深く読んだことないです。
でも、クラスツリーというレベルでいうと、MSDNでざっとは目を
通してはいます。
ちなみに、スタティックリンクって、"アプリ側で使用していない
オブジェクトコード(未使用クラス等)はリンク時に除かれて、
バイナリコードに含まれない"と認識してるんですが、
合ってますでしょうか?

26 :
−−−−−−−−−−−−−−−−−−−−−−−−−−
俺様用・しおり
∧_∧   
( ・∀・)< 今日はここまで読んだ      
−−−−−−−−−−−−−−−−−−−−−−−−−−

27 :
>>25
そんなに変わらない気がするだの効果があるように思えないだの、ごたごた言うまえに
自分で試せば一発で分かる話じゃないの?
WTLのウィザードでスケルトンをビルドしてexeのファイルサイズを比較するなり
mapファイル出力して覗いてみるなりすればいいだけだと思うが。

28 :
>>27
なるほど、mapファイルを見れば何か分かりそうですね。
ちょっと試してみます。ありがとうございます。

29 :
>>28
テンプレートの仕組みさえわかれば、なんてことないと思うけどなあ

30 :
手持ちのVC6でSDIスケルトンで比較してみたところ、
MFCの場合、mapファイル内で大量の依存クラス(Array・
Exception・Thread・CmdTarget等)の呼び出し(nafxcw:*.obj)
が行われるのがサイズが肥大する原因のようです。
対してWTLはウィザードで生成された*.objからしか呼び出しが
行われていないので、圧倒的にサイズが小さくなると…。
>>28
テンプレートの仕組み(コンパイル時に展開)は、頭では
理解してたつもりだったのに…orz。

31 :
よかったね!

32 :
Windows Desktop Manager API用のヘッダが追加されてる。
http://wtl.svn.sourceforge.net/viewvc/wtl/trunk/wtl/include/atldwm.h?revision=356&view=markup

33 :
viksoe超がんばれ

34 :
WTLのCDialogImplを使ったダイアログクラスをモーダルダイアログとして開いた場合に、
OnIdleイベントハンドラを使う方法ってあります?

35 :
モーダルで......あり得ねえだろ。

36 :
質問です。
モーダルダイアログってありますが、アプリケーション全体でモーダルなダイアログが
作れなくて困ってます。
イメージとしては、タスクトレイから複数のウィンドウが開けるんだけど、
設定ダイアログを開くと、どのウィンドウをクリックしても、
タスクトレイを右クリックしても警告音?がして、
設定ダイアログがTopにくる感じです。
なんかいい方法があったら教えてください。

37 :
ウィンドウをディスエーブルして自力でエミュレートするしかないんじゃね?

38 :
atlfile.hってATLの3.0にはないの?
3.0以降をてにいれるにはVSを買うしかないのかなぁ

39 :
古いDDKに入ってなかったか?

40 :
>>39
それは3.0

41 :
>>40
思わずインストールして確認しちまったじゃねぇか
build 6001.17121にちゃんとatlfile.hも入ってたわ

42 :
CAppModule _Module;なくても動くけど何か弊害はないの

43 :
>>42
分かりやすい例をあげると、_ModuleなしでSplitterWindowとか使ってみ?落ちるから。
詳しくはヘッダ参照。

44 :
>>43
>詳しくはヘッダ参照。
WTLを使う時はこれが冗談じゃなくなるから困るw

45 :
いや別に冗談ではないだろ

46 :
WTL9.0っていつ出るの?

47 :
TCHAR用だけじゃなくてascii用とUnicode用、両方用意して欲しかったなあ・・・

48 :
std::basic_string<TCHAR>

49 :
CStringA → ATL
CStringW → WTL

50 :
おー、これだ。翼の入ったやつ。これが、一番好きなんだ。ウイングガンダムだ。格好いいだろ。翼、がーっと広げてな。格好いいぞ

51 :
WTL8ってVS2008で動くの?
前試したら動かなかったんだが。

52 :
うご

53 :


54 :


55 :


56 :
CStringS → STL

57 :
class CMainWindow : public CWindowImpl<CMainWindow>
こんなかんじで
MSG_WM_SYSCOMMAND(OnSysCommand);
void OnSysCommand(UINT nID, CPoint point);
なんですけど
void CMainWindow::OnSysCommand(UINT nID, CPoint point)
{
 if(nID == SC_MAXIMIZE)
 {
  // 最大化ボタンなら無視する。
  return;
 }
}
と書くと最大化ボタン以外も無視されるわけです。
ほかのボタンの場合通常の処理へ戻すにはどう書けばいいんでしょうか?

58 :
SetMsgHandled(FALSE)
so-soあたりで CWindowImplのメッセージ処理の基本を勉強した方が良いと思う

59 :
あー思い出した。しばらくC#のにはまってたから。
ありがとん。

60 :
嘘だな

61 :
 早     /::::l:::l::、:::::、:::::ヽ::、::::::::::::\:::\::::::::ヽヽ::::::ヽ   駄
 .く      /:::!::::i:::!:::ヽ:::ヽ::::::ヽ::ヽ、::::::::::\:::ヽ:::::::ヽヽ::::::',   目 
 な.     /:l::::!::::ヽ!::ヽ:::::::ヽ:::::::\:::ヽ、::::::::ヽ:::ヽ::::::::!::i:::::::!  だ 
 ん   ハ:::l:::::、::::ヽ::::\:::::\:::::::\:::`ヽ、:::ヽ::ヽ:::::!:::!:::::l
 と   /:::::::l::::::!ヽ:ヽ::::、:::::ヽ:::、:\::::: \::::::\::::!::::ヽ:!:::i:::l:l  こ
 か  !:/!:::::!::::::!::ヽ:ヽ{:::\:::ヽ::::\:::\::ヽ:::::::ヽ!:::::::}!::::l::li|   い
 し  j/:::l:::::!:、:::!::ト、:、:ヽ:::::`ヽ{、::::::\::::\{、::::::::::::::::i::!::l:l !   つ
 な    l:i:l::::i::i:、:l::lテ=-、:ヽ、_、::\_,≧ェュ、_、\:::::::::i::li::!::リ   :
 い   !ハト:{:!:i:トN{、ヒ_ラヘ、{ >、{ 'イ ヒ_ラ 》\::l::!:ト!!:l::l!     :
 と     ヽ i、ヽ:ト{、ヾ ̄"´ l!\   `" ̄"´  |::!:l::! j:ll:!
  :      !::、::::i      l             u |:::/lj/l:!リ
  :        ヾト、:!u                 j!/ j|:::リ
          ヾ!    ヽ  ‐       u /イ´lハ/
            }ト.、  -、ー-- 、__      /' !:://
             リl::l゛、  `二¨´    /  |/:/
         rー''"´ト!::i{\       /  / !:/
        / ^ヽ  ヾ!  ヽ _,,、'´    /  j/

62 :
証明不可能なことは書かないことだな。

63 :
おまえもな

64 :
if((nID & 0xfff0) == SC_MAXIMIZE)じゃね

65 :
もう答え出てるだろうが

66 :
C#でのGUI作成すげー楽だな…
なんかいろいろショック受けた

67 :
C#が、じゃなくてWinFormsが、だろ

68 :
気持ちはわかる。

69 :
俺も初めて触ったときはびっくりしたな
もう6年前になるのか

70 :
前から思ってたけど、ここの住人って.NETも使ってるって奴が意外と多いよな。

71 :
そりゃ、何を使うかは、時と場合によって選択するもの。
常にネイティブC++一本で行けば万事解決な訳ない。

72 :
>>70
C#でもperlでもjavaでもアセンブラでも
何でも使うよ、要求があれば
一度も使ったことなかったけどそれで覚えた言語とか結構あるしpythonとかphpとか
でも、一番泣けたのは2003年にvb5で作って欲しいといわれた事・・・

73 :
>>72
その案件はこのスレはともかく、VBスレの住人ですら泣きそうだな

74 :
>>73
開発環境が自社になくて、客から開発環境インストール済みPCを借りて開発した
ベースをこっちで作ってメンテはお客さんがやるという形だったから
担当者が使える言語という事でVB5が選ばれたんだけどね
せめてVB6だったら良かったが・・・

75 :
嫌がらせとしか思えないな。

76 :
CAtlExceptionは勝手に飛んでくることかあ゛るの?

77 :
マク゛ロで切り替えられるよ

78 :
むむ。絶滅危惧種?

79 :
throw()が付いた関数なのにAtlThrowを呼び出してるのって
_ATL_CUSTOM_THROWで独自の例外をthrowする処理に入れ替えると
m9(^Д^)プギャーーーッでは。

80 :
古いコンパイラだと例外指定はできても実装されてなくて
普通に例外投げれたりする。

81 :
>>79
6箇所くらいあるよな。

82 :
VC6のATLなプロジェクトを2005でコンパイルすると
エラーでまくりで、ためしにVC2005でATLプロジェクト作ってみたら
作成されるソースがまったく違ったんですが
古いプロジェクトをコンパイルするのに何か言い方法は
ありませんでしょうか?

83 :
1カ所変な所を見つけたら、それと同じ箇所を一括して変更。

84 :
Microsoft、データ実行防止技術を推進する新APIを提供 : セキュリティ - Computerworld.jp
http://www.computerworld.jp/news/sec/97289.html
> Howard氏によると、新しいAPIは多くの開発者、なかでもATL(Active Template Library)の旧バージョンを使っている開発者向けのもので、アプリケーションからDEPを呼び出すことを可能にするという。
>
> より具体的には、同APIを用いることで、アプリケーションが起動中であってもDEPを有効にすることが可能になるという。従来は、DEPを使ってアプリケーションを保護するかどうかを前もって決めておく必要があった。
>
> 「開発者がATLの旧バージョンを使っている場合でも、DEPによるアプリケーション保護が可能になる。DEPは、脆弱性を突く攻撃を防ぐ優れた技術であるため、われわれは開発者がこの技術をより簡単に使えるようにした」(Howard氏)

85 :
旧ATLで何故DEPが問題になるか良く分からないんですが、
Window制御にマシン語(thunk?)を使ってるからですか?

86 :
そういうこと。
動的に確保したメモリ上に、クラスの各オブジェクトへのメンバ関数に飛ぶコードを構築して、それをウインドウプロシージャにしている。
メモリを実行可能に設定してなかったんじゃない。
WindowsはDEPの例外をトラップして、ATLによって構築されたっぽいコードを検地した場合は、特別に処理している。
速度を考えた設計が、今は逆に遅くなっているわけだよね。
そんなことするぐらいだったら、mapでも使ったほうがどれほど早いか。

87 :
新ATLはthunk使わなくなる?

88 :
VC8にいてるATLのthunkはDEP対応だから、
いまさら使わなくなる事はないんじゃない。

89 :
>86
というか、旧ATLはふつーにLocalAllocだからねぇ。

90 :
>>86
ってことはATLで構築されたっぽい○ウェアを書けばおけ?

91 :
それは違うだろw

92 :
そういうことに関しては徹底的にやるからね、MSは。
http://www.radiumsoftware.com/0406.html#040625
Compatibility (2)

93 :
WTL9マダー?

94 :
1日前にまたちょっとだけ更新されてるけどまだかねぇ。

95 :
VS2008に合わせて開発して欲しいよな
そうじゃないと日本語化されないし
まあ個人でしてくれてる人いるけど

96 :
CDoubleBufferWindowImpl
を継承して
DoPaintで描画しているのですが、
ウィンドウが最初に表示されるときに
描画がされないのですが、なぜなのでしょうか?

97 :
だめだ、テンプレの解説サイト見てるが難しい、C++やりなおそう

98 :
ATL/WTL始めようと思ったけど良さそうな入門書見当たらねえ
まずWinAPIやってからATL/WTL行こう…

99 :
soはかなりわかりやすいと思うけんども。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼