ATL/WTL Part3

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ATLやWTLについて語り合って下さい。

(Part1)ATL/WTL
http://piza.2ch.net/test/read.cgi/tech/978029639/

この後なぜか分離
(Part2-1)ATL 相談室
http://pc5.2ch.net/test/read.cgi/tech/1029029882/

(Part2-2)WTLお勉強スレッド
http://pc5.2ch.net/test/read.cgi/tech/1078150663/

WTLの最新版↓
http://sourceforge.net/projects/wtl/
2デフォルトの名無しさん:04/09/18 02:34:31
ATLやWTLが何かしらないけど、とにかく2ゲット
3デフォルトの名無しさん:04/09/18 02:38:03
>>1
ついでにあっちの削除依頼出してこい
4デフォルトの名無しさん:04/09/18 02:42:00
重複乙
5デフォルトの名無しさん:04/09/18 02:44:28
akatsuki氏によるATL/WTLの解説。日本語ドキュメントなのでかなり貴重。

The So-Software Stdio
ttp://home.att.ne.jp/banana/akatsuki/top/main.html
6デフォルトの名無しさん:04/09/18 02:47:28
#include <Stdio.h>
75:04/09/18 02:51:27
>>6
いきなり意味不明な荒らしが来たと思ったが、
自分がstudioをstdioと誤記したことを、ほのめかしてたわけだな。
そんなわけで訂正。

The So-Software Stdio

The So-Software Studio
8デフォルトの名無しさん:04/09/18 02:52:45
ついでに訂正するとトップはこっちだな
ttp://home.att.ne.jp/banana/akatsuki/
9デフォルトの名無しさん:04/09/18 03:38:11
どうせなら動くプロジェクトつけてほしい
10デフォルトの名無しさん:04/09/18 03:41:58
いまだにこんなの使ってるヴァカっているの?
11デフォルトの名無しさん:04/09/18 04:00:35
前に使ってみたけど理解できなかったのか。よちよち。
12デフォルトの名無しさん:04/09/18 13:51:49
>>10
わからなかったからってムキになるなよ
13デフォルトの名無しさん:04/09/18 14:01:59
.NETでも使えるの?
14デフォルトの名無しさん:04/09/18 14:04:17
変なのが釣れるから上げるな
15関連サイト:04/09/18 16:32:07
16デフォルトの名無しさん:04/09/18 16:32:32
頻出はこんなもんかな
17デフォルトの名無しさん:04/09/18 16:36:22
18デフォルトの名無しさん:04/09/18 17:36:39
>>17
なんつーかソース公開されてるならともかくそれだけ見せられても・・・
19デフォルトの名無しさん:04/09/18 17:57:24
追加。

Virtual Truth Lab.
ttp://lamoo.s53.xrea.com/
20デフォルトの名無しさん:04/09/18 18:48:43
どうして未だにDonutの名が出ないんだ!
21デフォルトの名無しさん:04/09/18 21:38:05
Donut ぉるんだ!
22デフォルトの名無しさん:04/09/18 23:14:11
23デフォルトの名無しさん:04/09/19 09:23:47
>>19
ここは知らなかった!
24デフォルトの名無しさん:04/09/19 15:53:03
そこは常識だよぅ。サイト名変わってて一瞬新しいところかと思ったけど。
25デフォルトの名無しさん:04/09/19 18:05:59
>>19
URLがエロサイトっぽいから敬遠してたよ。
26デフォルトの名無しさん:04/09/19 18:10:20
>>25
ワロタ
漏れもそう思った。
27デフォルトの名無しさん:04/09/19 18:14:17
ラムーといえば伝説の…
28デフォルトの名無しさん:04/09/19 21:48:06
>>22
ここも知らなかった!
29デフォルトの名無しさん:04/09/19 23:14:37
知らなくてよし!
30デフォルトの名無しさん:04/09/20 04:41:46
ヴァカだ
ヴァカがいっぱいおる
31デフォルトの名無しさん:04/09/20 04:51:55
ももちんらぶ
32デフォルトの名無しさん:04/09/20 07:40:05
結局微妙に荒れるのか・・・
33デフォルトの名無しさん:04/09/21 23:17:38
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtla-01/index.html

これってさあ、あからさまに>>19の中の
ttp://lamoo.s53.xrea.com/develop/wtl/wtl.html
のパクリだよな・・・
34デフォルトの名無しさん:04/09/22 00:07:18
そりゃどっちもatlcrack.hを元にしてるからな
35デフォルトの名無しさん:04/09/22 00:11:31
そういや今は無きwikiでも作ろうとしてたけどほとんど放置されたまま消えたな・・・
36デフォルトの名無しさん:04/09/22 00:15:41
WTLは誰も使ってないしな
37デフォルトの名無しさん:04/09/22 07:52:09
>>36
自分が挫折しただけだろ w
38デフォルトの名無しさん:04/09/22 10:32:10
・「APIに慣れていてMFCは使いたくないけど、今さら基礎クラスを作ってられるかよ。」
・「MFCに慣れていてAPIあまり知らないけど、MFCから離脱してみたい。」

WTL使いは、この2つのグループに分けられます。
あなたはどっち?
39デフォルトの名無しさん:04/09/22 11:02:17
>>38
・「MFCもAPIも慣れてるけど、APIより楽できてMFCより軽量なのが欲しい。」
40デフォルトの名無しさん:04/09/22 12:42:28
>>39
オレオレ
41デフォルトの名無しさん:04/09/22 16:19:39
前者かな
42デフォルトの名無しさん:04/09/22 20:11:31
・「自分のツールキットにいいところをパクりたい」、、、けど、なんだかWTLクローンっぽくなって(ry
43デフォルトの名無しさん:04/09/22 21:09:00
ATLクローンできないかな。sopport listで話してたWTLのATL非依存化の件ってどうなったんだろ。
44デフォルトの名無しさん:04/09/22 22:13:10
仕事でMFCのコードメンテするほど無意味で悲しい事はないからな
45デフォルトの名無しさん:04/09/23 03:40:22
>>44
変な人だね
46デフォルトの名無しさん:04/09/23 06:07:27
>>44
ぶっちゃけ、メンテじゃない。

不具合箇所を発見しても手が入れられない。実に虚しい。
プログラマが止むに止まれずMFCコードをAPIラッパへと移植する哀しい作業が待っているのである。
47デフォルトの名無しさん:04/09/23 10:18:03
そんなにMFCに不具合箇所がたくさんあるかね?
48デフォルトの名無しさん:04/09/23 15:00:35
MS謹製のライブラリだからとりあえずそんな発言しとけばいいし。
49デフォルトの名無しさん:04/09/23 15:15:54
>>47
たくさんあったらそもそも使ってない。極、稀に見かけるだけだよ。
WinInetとか。こういう場合、使わないという解決策しかない。
50デフォルトの名無しさん:04/09/23 15:17:10
結局WTLの話題はさっぱり出てこないな。
誰も使ってないんだろうな。
51デフォルトの名無しさん:04/09/23 15:29:05
あぁ、WinInetとかSocket周りのクラスは確かに使えないな。
でもATLのHttp系クラス(名前忘れた)にもバグがあったんじゃなかったっけ?

とWTL方向に話を戻してみる。
52デフォルトの名無しさん:04/09/23 17:42:24
UNICODEビルドではCSocketAddrが2000やXPでエラーを起こす。
原因はGetAddrInfoW()を呼び出すから。
これが原因でCSocketAddrを使用するCSocket等もエラーを起こす。

MSに文句を言ったら修正版を送ってきた。VC7.1の話。
53デフォルトの名無しさん:04/09/23 21:08:41
おい、猛者ども!ちょっと教えていただけませんでしょうか?

http://www.viksoe.dk/code/imagelistbox.htm
ここにあるImageListBoxコントロールをダイアログに貼り付けて
みました。表示までできたけどもクリックしたときの
メッセージハンドラのつけかたがわからんのです。

BEGIN_MSG_MAP_EX( CMainDlg )
 NOTIFY_HANDLER( IDC_MENU_LIST, LBN_SETFOCUS, OnMenuSelect)
・・
ではだめなのかなぁ?





5453:04/09/23 21:11:27
あ、あとイメージの下のテキストに日本語使うと化けるんだけど
どうすれば直せるのかわからんです・・。orz
すまん、知恵くれ。たのむ。
55デフォルトの名無しさん:04/09/23 21:16:33
ひとつ自己解決。
COMMAND_HANDLER_EX( IDC_MENU_LIST, LBN_SELCHANGE, OnMenuSelect)
ってことでした。
56デフォルトの名無しさん:04/09/23 21:57:35
>>54
日本語フォントをSetFontすればいいんでねーか?
57デフォルトの名無しさん:04/09/23 22:43:07
SHIFTJIS_CHARSET
5854:04/09/24 01:06:00
DrawTextしてるCDCHandleでSelectFontかましたら
うまくいった。thanx

59デフォルトの名無しさん:04/09/24 04:33:03
>>52
修正版が送られてきたってことは、
VC開発陣が不具合を既に知ってて修正コードも作ってたってことだね。
6052:04/09/24 10:11:33
>>59
いや。ウィザードが吐いたWebサービスにアクセスするためのクラスを使うと
エラーを起こすから俺がMSに文句を言ったんだけど、
最初はなかなか原因が判明せず、何回かやりとりしてやっと原因が明らかになった。
だから修正コードを作ってくれたのはその後。
61デフォルトの名無しさん:04/09/24 13:05:01
WTLの新規プロジェクトを作るとき、Generate .CPP filesにデフォルトでチェックが入っていません。
実装は全てヘッダに書いて、インライン展開するかどうかコンパイラに任せるのが
ナウなヤングにバカウケなのでしょうか?
62デフォルトの名無しさん:04/09/24 13:24:36
sonotouri
63デフォルトの名無しさん:04/09/24 21:49:36
ヤングにバカウケなのは、. N E T 。
64デフォルトの名無しさん:04/09/25 17:20:07
>>61

それくらい自分で判断すれば?
65デフォルトの名無しさん:04/09/25 19:58:41
別に判断を聞いてるんじゃなくて
ナウなヤングにバカウケなのかを聞いてるだけだろ。
66デフォルトの名無しさん:04/09/25 20:49:12
>>64 バカジャネーノ
67デフォルトの名無しさん:04/09/25 21:00:17
>>66

それぐらい自分で判断すれば?
68デフォルトの名無しさん:04/09/25 23:38:58
>>67 バカジャネーノ
69デフォルトの名無しさん:04/09/26 00:41:18
イタリアーノ
70デフォルトの名無しさん:04/09/26 01:49:06
ポルサリーノ
71デフォルトの名無しさん:04/09/26 04:11:07
あらかじめ信頼できるソースコードなら、
即座にヘッダーにコピペしてプロジェクトに導入できると思うが、
試行錯誤して頻繁に内容を変更するコードの場合、
ヘッダーで全部済ますのはかなり不便だね。
72デフォルトの名無しさん:04/09/26 04:13:18
>>71はペペロンチーノ
73デフォルトの名無しさん:04/09/26 04:14:48
サンマリーノで愛し合ってた二人って誰だっけ?
74デフォルトの名無しさん:04/09/26 04:26:42
これは漏れの想像だが、デフォルトで .cpp を作らないようになってるのは
ちょろっと試す時のお気楽さのためなんじゃないかと思う。
ちょっとしたテストではない規模のプログラムでは、
末端のクラスまですべてがヘッダだけから出来ているとどんなメリットがあるのだろう。
75デフォルトの名無しさん:04/09/26 05:14:26
>これは漏れの想像だが、デフォルトで .cpp を作らないようになってるのは
>ちょろっと試す時のお気楽さのためなんじゃないかと思う。

馬鹿再来だな。
76デフォルトの名無しさん:04/09/26 06:07:14
ちょろっと「試す」のにヘッダー記述は向いてないと思うが、まぁ人それぞれかな。
77デフォルトの名無しさん:04/09/26 06:19:32
ヘッダで全部済ませるなんて正気の沙汰じゃない。
78デフォルトの名無しさん:04/09/26 08:16:26
クラス定義と実装を分けると修正が二度出間になるから
ちょっと試すのにヘッダだけで完結してる方がよさそうに見えるけど。
コンパイル負荷が問題になるほど大きなプログラムを
ちょっと試す程度で書けるの?
79デフォルトの名無しさん:04/09/26 09:01:51
仮にもtemplateだからちゃいますのん
80デフォルトの名無しさん:04/09/26 13:15:45
1番leafのクラスまで全部テンプレートにしないと気がすまないの?
81デフォルトの名無しさん:04/09/26 13:39:14
なんか文句ありますか?
82デフォルトの名無しさん:04/09/26 13:49:06
いやいや、愛してる。
83デフォルトの名無しさん:04/09/27 19:50:02
俺も愛してるけどアホだと思う。
84デフォルトの名無しさん:04/09/30 19:47:48
細かいところの質問なんだけど、WTLサンプルについてくるWTLExplorerのShellMgr.cppの30行目付近。

UINT cb1 = 0;
if (pidl1 != NULL) // May be NULL
 cb1 = GetSize(pidl1) - sizeof(pidl1->mkid.cb);

で、ITEMIDLISTの最後の2バイトNULLを引くためなら単純に2を引けばいいと思うんだけど、
わざわざsizeof(pidl1->mkid.cb)としてるのはなぜ?
85デフォルトの名無しさん:04/09/30 19:56:21
>>84
マジックナンバーを使いたくない
86デフォルトの名無しさん:04/09/30 20:04:46
>>85
それはわかるんだけど、なぜcbを指定してるの?
ITEMIDLISTの最後はcbのサイズ分だけNULLで埋める、って決まりある?
それともたまたまcbがUSHORTで2バイトだってだけの理由で使ってるの?
87デフォルトの名無しさん:04/09/30 20:17:31
88デフォルトの名無しさん:04/09/30 23:18:19
ソース良く読め。

ITEMIDLISTはmkid.cbが0のデータがあればそれを終端子とみなしてる。
つまり、ITEMIDLISTの最後のデータはmkid.cbの2byteだけかつ0の値。
で、pidl1とpidl2両方GetSizeしてるが、GetSizeは終端子2byteのサイズを含めて計算する。
pidl1とpidl2二つ分の終端子は必要ないから、前者の終端子分サイズを詰めてる。

つまり、

cb1 = GetSize(pidl1) - sizeof(pidl1->mkid.cb); // ( pidl1のサイズ + 終端子サイズ ) - 終端子サイズ
cb2 = GetSize(pidl2); // ( pidl2のサイズ + 終端子サイズ )
::CoTaskMemAlloc(cb1 + cb2); // (pidl1のサイズ + pidl2のサイズ + 終端子サイズ

89デフォルトの名無しさん:04/10/01 00:27:18
>>86, 87

MSDN の The Shell Namespace ていうやつを読んでみてください。
真ん中くらいに図があるんだけど、それが「2Byte-NULL」で終わってる

その下の辺りに2 Byte の NULL で埋めろって書いてあるよ

以下引用

PIDLs

For the Shell application programming interface (API),
namespace objects are usually identified by a pointer to their
ITEMIDLIST structure, or pointer to an item identifier list (PIDL).
For convenience, the term PIDL will generally refer in this
documentation to the structure itself rather than the pointer to it.

The PIDL shown in the preceding illustration is referred to as a full,
or absolute, PIDL. A full PIDL starts from the desktop, and contains
the item IDs of all intermediate folders in the path. It ends with
the object's item ID followed by a terminating two-byte NULL. A full
PIDL is similar to a fully qualified path and uniquely identifies
the object in the Shell namespace.

90デフォルトの名無しさん:04/10/01 00:37:33
ITEMIDLISTが連続してるところに突然2byte-NULLが出てくる
ってのも変な気がする。
cb==0でabIDが無い(サイズ0)のITEMIDLISTで終わる
というのが素直な考え方だと思う。
91デフォルトの名無しさん:04/10/01 01:09:17
>>88-89
いや、ITEMIDLISTの終端は2バイトのNULLだってのもわかってるし、
>>84がその2バイト(cb=USHORT=2バイト)のNULLを省くコードだってのもわかってる。

>つまり、ITEMIDLISTの最後のデータはmkid.cbの2byteだけかつ0の値。

MSDNに書いてるのは「2バイトNULL」であって、「cbの分」とは書いてないと思うんだけど?
MSDNに「cbと同じサイズのNULL」とでも書いてあればわかるんだけど、
読む限り終端の2バイトNULLとcbの関係については書いてないと思う。

で、改めてソース見てると
while (pidl->mkid.cb != NULL){
 cbTotal += pidl->mkid.cb;
 pidl = Next(pidl);
}
とかあるので、ポインタが終端の2バイトNULLの部分にいっても
SHITEMIDと同じように扱うためかなと思った。
つまり>>90が書いてるように
 ITEMIDLISTの終端NULL = abIDがないSHITEMID
として扱うために終端はcbと同じサイズなのかなと。
これ正式にMSDNには書いてないよね?ただのtwo-byte NULLだけで。
92デフォルトの名無しさん:04/10/01 01:16:00
仕様策定時に突然謎の2バイト0が出てくるわけもないし。
cb のサイズが2バイトだったからというほうが自然だろうな。
93デフォルトの名無しさん:04/10/01 01:58:49
>>87の二番目のページにUnicodeだから2バイト?みたいなことが書いてあるけど、答えはcbを判定するためってことだね。
94デフォルトの名無しさん:04/10/03 16:17:35
>>52
いままさに、それにはまってます。
http://support.microsoft.com/default.aspx?scid=kb;JA;822334
unicodeビルドでWS2_32.dll内にFreeAddrInfoWがみつからんと言われてしまう。
どこかにアップデータとかあるのでしょか?
何か情報あればご教授いただきたく思います。
よろしくお願いいたします。
95デフォルトの名無しさん:04/10/03 17:10:23
>>94
ここにアップしとくよ。
http://tmp.servequake.com/up/atlfix.zip

どっか適当なディレクトリを作ってそこに解凍して、
環境設定でそのパスを「インクルードファイル」ディレクトリの
高順位に設定しておけばOK。
96デフォルトの名無しさん:04/10/03 18:15:19
>>95さん
ありがとうございました。
試してみたいと思います。

他の人たちはこまってないのかな。
97デフォルトの名無しさん:04/10/03 18:16:30
犯罪者・・・
98デフォルトの名無しさん:04/10/03 18:44:04
>>95
ウィルスをアップしないでください。
99デフォルトの名無しさん:04/10/03 21:44:59
>>95
ありがとう。俺も悩んでいた。助かった。

>>97
目をつぶってね。

>>98
何か警告でもでたの?
100デフォルトの名無しさん:04/10/03 21:46:23
とうとうこの板からタイーホ者が・・・
101デフォルトの名無しさん:04/10/04 01:41:09
>>97
>>98
>>100
意味が分かりません
102デフォルトの名無しさん:04/10/04 19:15:49
ATLソースの頒布権が95にはない。
つまり、やってることは著作権保護法違反ってやつだ。

ま、自己責任で使う分にはMSも黙認してくれるだろーが。
103デフォルトの名無しさん:04/10/04 19:26:40
ニュー速から記念かきこ。

タイーホはまだですか?
104デフォルトの名無しさん:04/10/04 19:42:10
記念まきこ
105デフォルトの名無しさん:04/10/04 21:25:15
WTLからDirextXを使うサンプルはありませんか?
106デフォルトの名無しさん:04/10/04 21:40:10
>>102
どのような条件の下で>95がqfeを貰ったのにかによるし、その条件が
わからんので何とも言えんな。
ただ、ファイル名からすると、プライベートHotfixではないので、タイーホされることは
ないから、>95よ、安心しろ。
KBページからはダウンロードできないので、恐らく、必要時にMSに言えばすぐに貰えるものだろう。
結構、言語製品には、この手のものが多いからな。
10795:04/10/04 21:56:16
>>106
なるほど。
MSから貰ったときには頒布に関する制限は特に課されなかったように思うが
気分が悪いので引っ込めることにするよ。
108デフォルトの名無しさん:04/10/05 00:04:41
95氏、今日にもタイ━━━━||Φ|(|゚|∀|゚|)|Φ||━━━━ホ!!!!
109デフォルトの名無しさん:04/10/05 00:10:55
賞味期限の切れたネタでいつまで引っ張る気だ
110デフォルトの名無しさん:04/10/05 00:22:19
今月末くらいかな。
111デフォルトの名無しさん:04/10/05 00:47:12
>>110
どうせお前はWTLに挫折した奴だろ
112デフォルトの名無しさん:04/10/05 00:55:40
WTLに挫折なんてあるのか?
113デフォルトの名無しさん:04/10/05 00:56:15
WTL自体が挫折
114デフォルトの名無しさん:04/10/05 01:04:24
>>37は挫折って言いたいだけちゃうんかと
115デフォルトの名無しさん:04/10/05 02:11:38
>>114
そんなに「挫折」という言葉が珍しいかい? w
116デフォルトの名無しさん:04/10/05 03:11:21
↑本人登場
117デフォルトの名無しさん:04/10/05 03:14:09
賞味期限の切れたWTLでいつまで引っ張る気だ
118デフォルトの名無しさん:04/10/05 03:22:56
>>117
WTLを味わう前に挫折したくせにね。 ( ´,_ゝ`)プッ・・
119デフォルトの名無しさん:04/10/05 03:42:26
煽りにいちいち反応するな
120デフォルトの名無しさん:04/10/05 09:54:33
煽り位しか話題がないのかこのスレ
121デフォルトの名無しさん:04/10/05 22:11:20
ネ、ネタをくれぇ・・・
122デフォルトの名無しさん:04/10/06 08:44:22
やっぱATL/WTL使用者は上級者が多いから
質問は少ないよね。
123デフォルトの名無しさん:04/10/06 10:06:31
そういう見方もあるか。
活発なスレは裏を返せば自分で調べることもできない
薄らハゲの集まりということか……
124デフォルトの名無しさん:04/10/06 14:33:47
いや、単にWTLユーザーが少ないからだろ。

つーかWTL使ってるくらいで自分を上級者って言うの恥かしくないか・・・
125デフォルトの名無しさん:04/10/06 14:43:28
と、WTLを理解できない初心者の>>124が申しております。
126デフォルトの名無しさん:04/10/06 15:02:28
>>125
何かWTLにコンプレックスでもあるのか?
>>124はいたってマトモな意見だと思うが。
127デフォルトの名無しさん:04/10/06 15:03:31
また始まったよ。
まぁ、WTLは難しい=自分は上級者だからできる、と思い込んでるから挫折とか素人は手を出すなとか言ってるんだろうけど。

はっきり言ってWTLを使うだけなら難しくもないし上級者である必要もない。
見てるこっちが恥ずかしくなるから、WTL使ってるだけであんまり自分を上級者だと思わない方がいいぞ。

質問が少ないのはユーザーが少ないだけだ。WTLの前スレの>>1が作ったML見りゃわかるだろ。
14人て。しかも立てた>>1もやる気ねーし。やる気無いのが見てわかるから新規に参加する奴もほとんどいねーし。
本家のサポートリストのようにユーザーが多ければ普通に質問も話題も出てくるっつーの。
128127:04/10/06 15:04:37
>>127>>125へのレスね。
129デフォルトの名無しさん:04/10/06 15:09:18
馬鹿、あの1だから少なかったんだよ
130デフォルトの名無しさん:04/10/06 15:13:10
あの1はいつまで放置する気なのかな。
放置してればいつかは活発になると思ってるのかな。今でも。
131デフォルトの名無しさん:04/10/06 15:15:41
wikiも1が自分で閉めたというよりは、放置しすぎて削除されたという方が正しい?
132デフォルトの名無しさん:04/10/06 20:58:37
結局誰も使ってないから誰も1の跡を継げないんだけどな
133デフォルトの名無しさん:04/10/06 21:02:09
継ぐって何をだ。
134デフォルトの名無しさん:04/10/06 22:10:11
.NETが何だ。
135デフォルトの名無しさん:04/10/07 01:32:05
俺たちにはWTLしかないんだ。
136デフォルトの名無しさん:04/10/07 01:47:54
>>127
自分がヘタレだからって、他人も同じだと思うなよ。 w
137デフォルトの名無しさん:04/10/07 01:59:05
必死すぎ
138デフォルトの名無しさん:04/10/07 10:42:20
てかWTL使ってる香具師って空気が読めてないだけだろ。
どう考えてもMFC以上に先が無いのに。
139デフォルトの名無しさん:04/10/07 12:19:42
>>138
そのこころは?
140デフォルトの名無しさん:04/10/07 13:35:00
>>138は空気読めて無いだろ。すげー粘着。
141デフォルトの名無しさん:04/10/07 13:42:31
煽ってるのは叩かれまくってた前スレの>>1だよ。
142デフォルトの名無しさん:04/10/07 22:51:11
OLEDrag&Drop 楽にできなかったっけ?
143デフォルトの名無しさん:04/10/14 19:22:07
MySQLにMSのオープンソースプロジェクトが採用されるというニュース、
WTLかと思ったらWiXの方だった・・・
144デフォルトの名無しさん:04/10/16 02:49:34
久々に趣味でアプリケーションを作ろうかと思った。
CCmdBarを継承してクールなメニューを作ったんだが。
2Kだとメニューの枠が立体的でかっちょ悪い。
XPなら勝手にフラット&影になってくれるけど。

メニューウィンドウの作成をフックするんだっけ?
メンドクサイからいいや・・・。
145デフォルトの名無しさん:04/10/16 11:44:59
独り言なのかCodeProjectに誘導してほしいのかはっきりしる。
146デフォルトの名無しさん:04/10/16 13:30:01
ATLと分離してくれれば、MFCよりユーザ増えると思うんだけどなぁ
147デフォルトの名無しさん:04/10/16 13:42:55
ATL非依存化はサポートリストでもしばしば話題になるよな
148デフォルトの名無しさん:04/10/16 14:30:47
>MFCより
149デフォルトの名無しさん:04/10/16 16:38:35
ATLに依存していて、なにか困るか?
150デフォルトの名無しさん:04/10/16 16:56:09
誰も困るなんて話はしてないわけだが。
151デフォルトの名無しさん:04/10/16 17:21:49
うーんどっかで見たような文章だな
152デフォルトの名無しさん:04/10/16 17:50:15
>>150
困らないのに、何でATLと分離する需要があるの?
153デフォルトの名無しさん:04/10/16 19:42:40
>>149
WTL開発者がATLのバージョン毎にソースを用意する必要がある。
つまりVCのバージョン毎に用意しなければならなくなる。
もし、純粋なAPIラッパーであれば従来のSDKヘッダーと同様に、
Unicode/MBSCと_WIN32_WINNT、WINVER、_WIN32_IEあたりで
切り分ければ良かったはず。あと、_WIN32と_WIN64があるか。
これでも十分煩雑だけど・・・。
154デフォルトの名無しさん:04/10/16 19:48:13
atltypes が namespace に入ってなくて気持ち悪い・・・。
155デフォルトの名無しさん:04/10/16 20:43:00
>>152
ExpressEditionやVC++Toolkitユーザ<需要
156デフォルトの名無しさん:04/10/16 21:06:40
なんだ、厨房向けか
157デフォルトの名無しさん:04/10/16 22:39:01
そんな捨て台詞吐くくらいならレスしなきゃいいのに。
158デフォルトの名無しさん:04/10/16 22:47:43
support listでbccやgccも挙がってなかったっけ。
SDKが無償ならクラスライブラリも無償で欲しいと思っても別におかしくないわな。
俺はVC++Pro使ってるけど。
159デフォルトの名無しさん:04/10/16 23:04:31
>>157
なんだ、図星か。
160デフォルトの名無しさん:04/10/16 23:58:14
ATLと分離なんてほとんど不可能だろ。
ATLに依存しまくってんだから。
161デフォルトの名無しさん:04/10/16 23:59:47
ATLも配布してくれればいいんだよ
162デフォルトの名無しさん:04/10/17 00:04:48
>>160
あんまし依存してないけどな。
163デフォルトの名無しさん:04/10/17 00:31:45
WTLの根幹のCWindowがATLなんだからもうどうしようもない。
164デフォルトの名無しさん:04/10/17 00:38:21
ATLがオープンソースになるか、CWindowなどと同等のクラスをWTLに追加するか。
なんか必死な奴いるけど、単に非依存になればいいなって話だろ。
何ムキになってんだか。
165デフォルトの名無しさん:04/10/17 01:06:03
Visual Studio 買えないだけだろ
166デフォルトの名無しさん:04/10/17 01:30:05
>>165
おまえはそればっかりだな。
167デフォルトの名無しさん:04/10/17 04:28:56
ATLに非依存になっても、大してメリットはないって話だろ。
何ムキになってんだか。
168デフォルトの名無しさん:04/10/17 04:32:16
貧乏人はこんなスレ見てないで働け
169デフォルトの名無しさん:04/10/17 05:10:52
>>167-168
お前のレスはずっと説得力ないんだが、
非依存になったら何か困るのか?
ここでVC++持ってることをアピールして何か意味あんのか?
正直、このスレ見てる奴はみんな持ってると思うんだが。
170デフォルトの名無しさん:04/10/17 07:17:41
ATLに依存っていうより、VC依存症の奴がいるなw
離れられないんでちゅねー
171デフォルトの名無しさん:04/10/17 08:29:30
WTLスレで何を。
172デフォルトの名無しさん:04/10/17 09:03:06
MSのもっとも優れたアプリケーションは皮肉な事にVisualStudioであると思う。
173デフォルトの名無しさん:04/10/17 09:07:20
そうか?
WindowsとかDirectXとかWMPのほうがよっぽど。
174デフォルトの名無しさん:04/10/17 09:11:20
だれもVisualStudioを超える拡張性・利便性を持ったアプリを作っていない。
VSには相当な金・頭脳が投入されていると思われる。
175デフォルトの名無しさん:04/10/17 09:13:50
「だれも」が指す集合は具体的に何?
拡張性も利便性もたとえばemacsにすら劣っているように見えるけど、超えるの定義は何?
アプリとあるけど、開発環境に限定しないこの世に存在するすべてのソフトウェアをさしているの?
176デフォルトの名無しさん:04/10/17 10:34:33
MSの、ってあるのにemacsとか持ち出すなよw
まぁ、自社の開発者が自分の環境を整えるために機能拡張するんだから
凝った作りにもなるわな。社内での能力アピールにもなるし。
それが結果としてMSで一番安定したアプリケーションを生み出す原動力に
なっているのが皮肉なんだろ。

逆に言えば、WMPなんかどうせ開発者たちは凝った使い方せんから
聞けさえすればあとはどうでも(ry
177デフォルトの名無しさん:04/10/17 12:29:29
ぶっちゃけWTLがATL非依存になってもMSに何のメリットも無い。
178デフォルトの名無しさん:04/10/17 12:30:11
ユーザーにとってもメリットないな。
179169:04/10/17 13:02:01
>>177
>>178
ウルセーんだよ。
俺様が「メリットがある」って言ってんだから、大ありなんだよ!!
180デフォルトの名無しさん:04/10/17 13:09:34
>>178にとってはメリットないな。
MSのメリットは考えるだけ無駄。
181デフォルトの名無しさん:04/10/17 13:26:27
>>180
既存のユーザーはATLと切り離されても影響ないし、
いまから新たにWTLはじめようなんて言う物好きもいないだろう。

VCTKとか、まともなツールキットがないコンパイラを使ってる貧乏人がMS純正品を使いたい
とか言うすごーく特殊な需要しかないだろ。
普通の人はWxとか自作、はたまたDel等のRADに手を染めるほうがよっぽど建設的だ。
182デフォルトの名無しさん:04/10/17 13:46:08
>>181
だから非依存になったら困ることあるのかって。
特殊な需要だろうが、これからWTL始めようとする物好きだろうが、
メリットはメリットだろ。
そこまで非依存を拒絶する理由がわからん。
反論したけりゃまず説得力のあるデメリットの例を挙げてみ。

つーか本当にWTL使ってんの?
WTLユーザーを減らすような考え方しかできてないみたいだけど。
183デフォルトの名無しさん:04/10/17 13:56:57
切り離してくれって云ってるやつは、簡単に言うと古事記ってことだろ?
184デフォルトの名無しさん:04/10/17 13:58:53
俺は既存ユーザだがあのマクロだらけのソース(_ATL_VER >= 0x0700の嵐とか)よりは統一されてくれた方が嬉しい。
185デフォルトの名無しさん:04/10/17 14:00:49
>>183 シーッ
186デフォルトの名無しさん:04/10/17 14:04:27
>>183
おまえはそればっかりだな
187デフォルトの名無しさん:04/10/17 14:08:12
>>186
もしかして分離にメリットがないと感じているのは一人だけだと思ってる?
188デフォルトの名無しさん:04/10/17 14:08:47
つか依存するライブラリが別々に提供されてることに違和感ないのかね。
すぐ「貧乏人」を連呼して逃げる奴は。
189デフォルトの名無しさん:04/10/17 14:11:15
>>188
全然違和感がない。
なぜならWTLはATLを拡張するためのものだから。
190デフォルトの名無しさん:04/10/17 14:11:22
>>187
論点がずれてる。
そりゃメリットがないと感じてる奴はいるだろう。
ただメリットがあると感じてる奴もいるってこった。
VC++持ってる奴の中にもない奴の中にも。
それを「金が無いから」だのとひとくくりにして反論してるつもりになってるからウンザリしてんだよ。
191デフォルトの名無しさん:04/10/17 14:15:53
んでデメリットの例マダー?
192デフォルトの名無しさん:04/10/17 14:21:33
要はATLをフリーにしろって言うんだろ。
厚かましいんだよ。
193デフォルトの名無しさん:04/10/17 14:26:53
>>192
社員かおまえは。
てか過去ログ嫁。フリーでもいいがWTLをATL非依存化でもいいって書いてるだろ。
さらに言えばWTLをATLに吸収でもいい。
でもフリーorATL非依存化の方がユーザーが増えるからフリーor非依存化の方がいいなって流れだ。
要は使用やバージョンアップに二つのライブラリのバージョンを気にするのがめんどうってことだ。
194デフォルトの名無しさん:04/10/17 14:32:01
貧乏人はWin32 SDKだけで汗をながせ。
195デフォルトの名無しさん:04/10/17 14:35:41
以後貧乏人連呼厨は放置で。
貧乏人という仮想ターゲットを脳内で作りだして優越感に浸りたいだけの電波なので、レスしても電波レスしか返ってこない。
196デフォルトの名無しさん:04/10/17 14:39:23
ATL分離厨は放置で。

ATLやWTLに関する有意義な情報交換をやりましょう。
197デフォルトの名無しさん:04/10/17 14:42:49
>>196はまともな会話ができないのでこいつとは情報交換は無理げ。
198デフォルトの名無しさん:04/10/17 14:44:19
ひとつも反論できてないもんなぁ。困った時の貧乏人連呼だし。
199デフォルトの名無しさん:04/10/17 14:46:28
オープンソース関連のスレには必ず一匹はいる連呼厨か。
200デフォルトの名無しさん:04/10/17 14:53:45
連呼してもVC++を持って無い人間はおそらくこのスレには皆無だという現実が虚しい・・・
201デフォルトの名無しさん:04/10/17 15:02:48
連呼厨、新天地を求めVCTKスレへ
 ↓
202デフォルトの名無しさん:04/10/17 15:03:19
そして伝説へ・・・
203デフォルトの名無しさん:04/10/17 15:07:14
ハハハ。
所詮、オプソ厨の程度はこんなもんか。
204デフォルトの名無しさん:04/10/17 15:11:00
VC持ってない人を取り込む為にもATLから独立して欲しいな。
ユーザ数が増えれば情報量も増えるでしょ。
205デフォルトの名無しさん:04/10/17 15:26:18
Cマガってサイトで記事や要望を募集してるんだな。
要望だしたら扱ってくれるかな。
自分で記事を投稿する元気はないけど。
206デフォルトの名無しさん:04/10/17 15:30:01
雑誌で紹介されてるの見たことないなぁ。
俺がWTLを知ったのもこの板だし。
207デフォルトの名無しさん:04/10/17 15:32:06
普段はvc7を使っているけど、vc7にはプロファイラがついてないから
プロファイルしたいときはvc6でコンパイルしなきゃいけないから
結局古いATLのほうにあわせなきゃならんのがめんどくさい
208デフォルトの名無しさん:04/10/17 15:39:03
プロファイラだけならDevPartner入れればいい。
ロハで落とせるし。
209デフォルトの名無しさん:04/10/17 15:43:20
VC8には付いてるんだっけ?
たしかプロファイラ使用後に最適化するオプションついてるんだよな
210デフォルトの名無しさん:04/10/17 15:50:43
ATLだけでは使わないからなぁ、余計なのない方が嬉しいよ
分離反対派は海外のforumなんか覗いたこと無いんだろうな…
211デフォルトの名無しさん:04/10/17 16:14:48
分離は困る。
WTLがATLに依存しなくなるってことは、今WTLとATLが共有している部分は、別々の互換性が無いクラスに分かれるってこったろ?
ATL::CWindowとWTL::CWindowが混ざったプログラム俺は書きたくないね。
ATLとWTLを統合するほうがまだ建設的。
212デフォルトの名無しさん:04/10/17 16:17:04
support listすら見て無いんじゃないか。
というかここまでで反対の理由が一つも挙がってないよな。
メリットが少ないからしなくていいってだけで。
要するにどっちでもいいのとちゃうんかと。
やたら反対する理由が知りたい。
213デフォルトの名無しさん:04/10/17 16:21:14
>>211
互換性を残しつつ作ることも可能じゃないか。
逆に完全にATLから独立するように作るなら混ざりようがないし。
ATLと統合も良いと思うけど。
214デフォルトの名無しさん:04/10/17 17:28:37
ATLの属性付きプログラミングに公式対応させることの方が先決だな。
215デフォルトの名無しさん:04/10/17 17:33:15
属性付きだと_ATL_NO_AUTOMATIC_NAMESPACE使えないのちょっとつらいな・・・
216デフォルトの名無しさん:04/10/17 17:38:26
俺にとってはIDLをわざわざ作らなくていいメリットの方が大。
217デフォルトの名無しさん:04/10/17 17:55:41
属性付って毎回IDLコンパイルしなおされなかったっけ?
速度的にきつくてあきらめた記憶がある。
218デフォルトの名無しさん:04/10/17 18:02:05
日曜の昼間っからなんでこのスレがアツいの?
219デフォルトの名無しさん:04/10/17 20:05:13
>>208
インストールが終わんね
220デフォルトの名無しさん:04/10/19 07:48:58
WTLバージョンage
221デフォルトの名無しさん:04/10/19 19:53:08
Release Name: WTL 7.5.4291.0
Notes: Misc bug fixes, patches, and feature requests work.

変更点
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtla-03/index.html

222デフォルトの名無しさん:04/10/20 00:02:23
なんだよ7.5って・・・・
今までずっとMSの7.1が最新だと思ってた俺はアホか・・・
223デフォルトの名無しさん:04/10/20 00:36:06
アホ
224デフォルトの名無しさん:04/10/20 02:35:32
前回が二ヶ月ぶりで今回が三ヶ月ぶりか。
225デフォルトの名無しさん:04/10/20 02:55:34
間が1.5倍ずつになってるのか
226デフォルトの名無しさん:04/10/20 23:04:35
つーことは、4回後には6倍だな。
227デフォルトの名無しさん:04/10/20 23:49:17
いや、+1ヶ月ずつかもしれん。
228デフォルトの名無しさん:04/10/20 23:56:09
つーことは、4回後にはWTLは.NETに吸収合併だな。
229デフォルトの名無しさん:04/10/20 23:59:06
support listでも新バージョンについて投稿されたな
230デフォルトの名無しさん:04/10/21 00:14:43
新しくなった点を質問して、なんで自分で調べないんだ?と軽く怒られてるな。
231デフォルトの名無しさん:04/10/21 00:24:31
閉鎖的だな
232デフォルトの名無しさん:04/10/21 01:02:55
2chよりもたちが悪いな w
233デフォルトの名無しさん:04/10/21 14:37:45
せめてReadme.htmの「Changes Between WTL 7.5 And 7.1」は更新して欲しいな。

support list、今度は新バージョンが置いてある場所を知らない奴か・・・
新バージョンについてろくな投稿がないな・・・
234デフォルトの名無しさん:04/10/23 05:25:28
テンプレの神サイト The So-Software Studio でバージョン履歴が公開されてるね
235デフォルトの名無しさん:04/10/23 15:53:14
236デフォルトの名無しさん:04/10/25 20:59:15
BEGIN_MSG_MAP_EX(CTreeView)
 MSG_WM_CONTEXTMENU(OnContextMenu)
END_MSG_MAP()

LRESULT OnContextMenu(HWND hWnd, CPoint& ptClient)
{
 ATLTRACE("OnContextMenu\n");
 return 0;
}

ツリーコントロール内でコンテクストメニューを出したいのですがうまくイベントが発生しません。
右Wクリック又は、右ドラッグ->右ボタンアップの操作を行った場合はちゃんとイベントは飛んでくるみたいです。
そもそも他のメッセージを捕まえて行うんでしょうか?
(WTL固有の問題かもしれないのでこちらに書き込みました)
237デフォルトの名無しさん:04/10/25 21:25:50
SDIのビューにツリーコントロールを使ったってこと?
238236:04/10/25 21:44:57
>>237
今開発してるの(SDI)はもうちょっと複雑ですが、
先ほどSDIのビューとしてツリーを使ったもので試してみた所同じ現象が起きました。
ウィザードが生成したコードに>>236の部分のみ変更を加え、
MainFrameからツリーへノードをいくつか追加してます。
239236:04/10/25 22:10:55
同様にツリーコントロールをリストコントロールに変えて試したところ、
正常にWM_CONTEXTMENUが飛んできます。
ツリーコントロールは他に必要な手続きがあるんでしょうかね。
240質問:04/10/25 23:27:53
WTL って実際の開発で使われていることってあるんですか?
それとも、もの好きのためだけのライブラリですか?
241デフォルトの名無しさん:04/10/25 23:29:12
242デフォルトの名無しさん:04/10/26 01:02:50
>>239
MFCでも同じだね。NM_RCLICKしかないかも。
243236:04/10/26 02:29:38
>>242
ええ。MFCでも同じでした。
理由はわからないけどツリーコントロールはWM_CONTEXTMENUが飛んで来ない仕様だから
NM_RCLICKなんていう通知メッセージがあるんですかね。
エクスプローラでも同じみたいなのでNM_RCLICKで対処してみます。
ただNM_RCLICKだと項目が選択されてTVN_SELCHANGINGとかが発生しちゃうんだよなぁ。
244デフォルトの名無しさん:04/10/29 19:18:25
デバッグビルドでは問題ないのですがリリースビルドしたら
error LNK2005: __osplatform は既に atlmincrt.lib(atlinit.obj) で定義されています。
とか言われてコンパイル出来ないんですがどうすればいいんでしょう??
245デフォルトの名無しさん:04/10/29 20:04:03
_ATL_MIN_CRTだったかな?
246デフォルトの名無しさん:04/10/29 22:43:33
>>245
それをしゃべれば、それは
マルチスレット、C言語標準関数、そして、例外を使うことが出来ないとなります.
247デフォルトの名無しさん:04/10/30 00:14:51
変な人警報ですか?
248デフォルトの名無しさん:04/10/30 10:27:02
プロジェクトのプロパティで
「ATLでCRTをできるだけ使用しない」「いいえ」
としたらリンクできました。
デフォルトでMIN_CRTなのか(;´Д`)
249デフォルトの名無しさん:04/10/31 01:55:39
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl11-02/index.html

こんな感じでエディットコントロールをサブクラス化し、
WM_KEYDOWNを処理したく思っています。

しかしコントロールクラス側のMESSAGE_HANDLERでWM_KEYDOWNを取っただけで、
何故か矢印キーやDelete、Home、Endキー等が、エディットコントロール内で
効かなくなってしまいます(英数字キーやBSキー等は普通に動きます)。

何か原因に心当たりのある方、教えて頂けないでしょうか。
250デフォルトの名無しさん:04/10/31 03:27:14
>>249
あなたがメッセージを横取りしてしまったためにエディットコントロールがキー入力をハンドリングできなくなってしまったのです。
動いているキーはWM_KEYDOWNではなくWM_CHARなどで処理されているのでしょう。
251249:04/10/31 11:35:03
>>250
なるほどなるほど!そういえばすっかり忘れていましたが、
文字以外でも、スペースやBSだけはASCIIコードありますもんね。

SetMsgHandled(FALSE);が、普通のサブクラス化におけるCallWindowProcの役割を
果たしてくれるのかと思っていたのですが、違うみたいですねぇ。

しょうがないので、あまりスマートじゃ無さそうですが、自分でCallWindowProcを呼び
m_pfnSuperWindowProcというメンバを渡すことで解決しました。
レスありがとうございました。
252デフォルトの名無しさん:04/10/31 15:07:43
WTLでインテリセンスを有効にして快適環境を構築する方法を見つけました!
たったの一晩で今まで表示されていなかったCCommandBarCtrlImplのメンバなどが表示されるようになりました!

2億円、 3億円、 5億9千万円収入者続出しています(違
253デフォルトの名無しさん:04/10/31 16:19:37
日記は
254デフォルトの名無しさん:04/10/31 18:03:36
ジャポニカ学習帳
255デフォルトの名無しさん:04/10/31 21:53:28
WTLで作ったexeって、他に何かランタイムとか必要なんですか?
やたらコンパクトなんですが。。。
256デフォルトの名無しさん:04/10/31 22:03:09
釣りですか?
257デフォルトの名無しさん:04/10/31 22:04:14
いや、マジです。
MFCとATLしか使ったこと無いんで。
258デフォルトの名無しさん:04/10/31 22:05:38
いやATL使ってるならわかるだろ。_ATL_MIN_CRT
259デフォルトの名無しさん:04/10/31 22:14:32
atl.dllと_ATL_MIN_CRT って関係あったっけ。
Cランタイム無だったような。
260デフォルトの名無しさん:04/10/31 22:20:42
>>255はCRT無しだからコンパクトって話じゃないの?
261デフォルトの名無しさん:04/10/31 22:25:57
atl.dllとかmfc*.dllみたいなファイル、例えばwtl*.dllみたいなのが必要なんですか?って話。
Cランタイムは、ATLで開発を始めてから使わない習慣が出来てしまいますた。
262デフォルトの名無しさん:04/10/31 22:29:57
なんつーかwtlの中身見ればわかると思うんだけど必要ないよな。
263デフォルトの名無しさん:04/10/31 22:31:16
おおっそうなんですか。こりゃいいな。これでいこう。
264デフォルトの名無しさん:04/10/31 22:33:37
「あぁあぁんっ・・・はぁはぁ、あっあっ・・・んん・・い、いくっ!いくぅ!あぁん・・い、いっちゃうよぉ・・い、一緒にっ・・イクときは一緒にぃぃっ!」
265デフォルトの名無しさん:04/11/01 01:34:28
atlbase.hなんですが、
DEBUGモードだと内部でstdio.hも読み込まれて、sprintfとかの標準関数が使えるのですが、
RELEASEモードだと、stdio.hが読み込まれません。。

これはなんでこんな仕様になっているのでしょうか?
266デフォルトの名無しさん:04/11/01 02:56:14
そんな餌でクマー
267デフォルトの名無しさん:04/11/01 05:19:56
>>261
つーか、Dependency Walker で確かめりゃいいじゃん。
268デフォルトの名無しさん:04/11/01 19:36:57
Releaseだとデフォルトで_ATL_MIN_CRT
ふぁっきゅ〜だな。
269デフォルトの名無しさん:04/11/01 20:04:52
つーかこのところ_ATL_MIN_CRT関連の質問大杉
270デフォルトの名無しさん:04/11/01 21:53:16
Cライブラリを使わないアプリなんて現実的なのかねぇ・・・。
のちのちの移植性を考えてみても使わないメリットは小さい気がするのだけど。
271265:04/11/01 22:23:39
>268
>Releaseだとデフォルトで_ATL_MIN_CRT

そうなんですか。。
なんでビルドの種類によって違うんでしょうか。。変な仕様ですね。。

とりあえず、リリースモードの時だけ、atlbase.hのあとにstdio.hを読み込むようにしました。
272デフォルトの名無しさん:04/11/01 22:57:46
>>271
リリースから_ATL_MIN_CRTを外せば?
273デフォルトの名無しさん:04/11/02 00:37:49
>>270
ATL使ってる時点で
274デフォルトの名無しさん:04/11/03 17:50:05
WTLのCComboBoxでDROPDOWNLISTにして
AddStringで10個くらい項目を足しているのに
右側の▼を押してもリストが展開されません。
見た感じ項目数0のリストが表示されているようです。
この表示数を増やすにはどうすればいいんでしょうか。
275デフォルトの名無しさん:04/11/03 18:05:41
>>274
WTL関係なくて、CComboBoxのウィンドウが小さいだけ。
プログラムでウィンドウのサイズを変えるなり、
リソースをテキストで開いてサイズ書き換えるなりすればOK

或いは例えばVC6なら、リソースエディタでコンボボックスの▼の辺りを
クリックすれば、ドロップダウンのサイズを変えられるよ。
276274:04/11/03 20:17:59
>>275
ありがとうございます。すごく助かりました。
明日学校行ったら直してみます。
277デフォルトの名無しさん:04/11/04 16:50:49
AppWizardでHTMLビューを作ると、ビューのPreTranslateMessageで

if((pMsg->message < WM_KEYFIRST || pMsg->message > WM_KEYLAST) &&
(pMsg->message < WM_MOUSEFIRST || pMsg->message > WM_MOUSELAST))
return FALSE;

// give HTML page a chance to translate this message
return (BOOL)SendMessage(WM_FORWARDMSG, 0, (LPARAM)pMsg);

とあるのは何のため?
前者のif文は、IEのコンテキストメニューを表示したりするために
マウス関連メッセージを有効にするため?
後者のSendMessageは何のためだろう。
278デフォルトの名無しさん:04/11/04 17:24:38
>>277
give HTML page a chance to translate this message
279デフォルトの名無しさん:04/11/04 17:24:57
WTLのCComboBoxでリストが10個までしか表示されません。
これを増やすにはどうしたらいいですか?
280デフォルトの名無しさん:04/11/04 17:53:58
>>279
>>274へ戻る
281デフォルトの名無しさん:04/11/04 18:16:18
>>278
PreTranslateMessageがtranslateの場所では?
なぜWM_FORWARDMSGで転送してんの?
282デフォルトの名無しさん:04/11/04 18:19:30
>>281
コメントアウトして試してみろよ
283デフォルトの名無しさん:04/11/04 18:23:52
コメントアウトしても何も変わらんが。
284デフォルトの名無しさん:04/11/04 22:17:38
ATLにPreTranslateMessageなんてあったか?
285デフォルトの名無しさん:04/11/05 00:02:13
WTLだろ
286デフォルトの名無しさん:04/11/05 01:12:15
>>284はアフォだろ
287デフォルトの名無しさん:04/11/05 01:58:25
>>282==>>284
288デフォルトの名無しさん:04/11/05 03:37:23
質問に答えられない>>286よりもマシだけどな w
289デフォルトの名無しさん:04/11/05 04:24:25
>>288
負け犬の遠吠えにしか聞こえないからやめとけ
290デフォルトの名無しさん:04/11/05 08:54:57
>>289
正しく日本語使おうね。
291デフォルトの名無しさん:04/11/05 12:27:55
>>290
はぁ?
292デフォルトの名無しさん:04/11/05 12:59:04
相手に聞こえるところで言うのは負け犬の遠吠えとは呼ばない。
293デフォルトの名無しさん:04/11/05 13:19:22
なにこの284以降アホなスレ
294デフォルトの名無しさん:04/11/05 13:32:43
んでHTMLビューのPreTranslateMessageでWM_FORWARDMSGメッセージ送ると何が変わるの?
295デフォルトの名無しさん:04/11/05 13:34:14
そのアホに>>293も含まれている訳だが
296デフォルトの名無しさん:04/11/05 13:35:26
やった〜過疎スレなのに伸びてるよ〜
297デフォルトの名無しさん:04/11/05 15:57:40
>>292
いやいやいや、そんな定義はないよ
298デフォルトの名無しさん:04/11/05 17:12:28
>>277
前のほうの if 文で、web browser control に転送しないメッセージのとき単に false を返して終了し、
後ろの SendMessage で実際にWEB Browser control 側にメッセージを転送しています。

これは入力フォーカスがビューウィンドウにあって、BS やら ALT+矢印やら TAB やらが押下されたとき、
WEB Browser control 側にそれを処理する機会を与えるための処理です。

(WM_FORWARDMSG のハンドラはatlhost.hで実装されていて、 ole control の IOleInPlaceActiveObject::
TranslateAccelerator() を呼び出す)。

詳しくは IOleInPlaceActiveObject::TranslateAccelerator の説明を参照。
299デフォルトの名無しさん:04/11/09 23:33:24
VCTKをダウンロードしたもののWTLはATLがないと使えないと
諦めていたら、なぜかPlatformSDKではなくDDKにATL3.0が
付いてきてました。

WTL7.5はATL7前提とかいう話も見聞きしてますが、とりあえず
ATL3.0でも使えてるんで情報あげ。VCTKスレに書くべき?
300デフォルトの名無しさん:04/11/09 23:34:31
タイーホカウントダウン?
301デフォルトの名無しさん:04/11/09 23:49:25
タイーホて漏れ?VCTKもDDKもPSDKもWTLも全部ライセンスに
従ってほぼ無償でMSとかから入手できるが???

もしかして釣られた?
302デフォルトの名無しさん:04/11/09 23:51:53
>WTL7.5はATL7前提とかいう話

これってどっから出たデマ情報なんだろうな?
俺も聞いたことある。
303デフォルトの名無しさん:04/11/10 00:34:10
>>301
DDKって今は有償じゃなかったっけ?
304デフォルトの名無しさん:04/11/10 00:48:23
うん。でも実費+送料とかで$30とかしか請求されない。
はるばるアメリカから送ってくることを考えたらほぼ無償でしょ。

MS的には来年にはVSExpressも出すし、.NET もあるし、
もはやVCTK+ATL+WTL+MFCくらいは勝手に持ってけ状態なの
かも(今見るとMFC4.2もDDKにあるような…)。

VCTK見た時は最適化コンパイラでも素のコンパイラだけでは
Mingw/gccの方が〜と思ったもんだが、ATL/WTLが使えるなら
手軽なWindows/C++開発環境としては最強かも。
305デフォルトの名無しさん:04/11/10 00:48:59
>>299
おおー素晴らしい!

貧乏人の俺がVC6を窓から投げ捨てる日が来た?
306デフォルトの名無しさん:04/11/10 01:10:56
>>305
VC6もATL3.0じゃん。
307デフォルトの名無しさん:04/11/10 01:51:24
CAtlRegExp、CImage、など色々使いたいのだが、ATL3.0ではどうしようもないな・・・。orz
308デフォルトの名無しさん:04/11/10 11:08:03
VCTKって何?
309デフォルトの名無しさん:04/11/10 12:56:57
>>306
そうか、これ使い回せばいいのか
2005Express+VC6のATL+WTL+仕上げにVCTKでOK?
                              ゴメンヨ
まぁ2005Expressもうちじゃ重いんだよね…( ´・ω・)っ[VC6]ミ
310デフォルトの名無しさん:04/11/10 15:50:27
>>308
Violent and Crazy Team Killer もしくは、Visual C++ Tool Kit
311デフォルトの名無しさん:04/11/10 20:11:18
>>309は犯罪者
312デフォルトの名無しさん:04/11/10 20:21:26
313デフォルトの名無しさん:04/11/10 23:27:55
>>311
なぜに?
314デフォルトの名無しさん:04/11/10 23:52:01
>>313
VC6のATLはVC6でしか使っちゃ駄目とか?
315デフォルトの名無しさん:04/11/11 00:03:56
>>314
そ、そうなのか
今規約をざっと見てみたところ、そういう記述は無さそうだけど、どうなんだろ
316デフォルトの名無しさん:04/11/11 03:24:44
このスレには、やたらと他人を犯罪者にしたがる厨房がいるからな。
317デフォルトの名無しさん:04/11/11 07:10:54
自己弁護乙
318デフォルトの名無しさん:04/11/11 08:27:43
>>316
そういやWTLとATLの分離を頑なに反対してた奴に似てるな
319デフォルトの名無しさん:04/11/11 12:29:23
ベツニ
320デフォルトの名無しさん:04/11/11 20:44:17
自己弁護乙
321デフォルトの名無しさん:04/11/11 22:41:04
イミワカンネー
322デフォルトの名無しさん:04/11/12 01:21:27
WTL/ATL分離というよりは、ATL/COM分離を求めているわけだが。

「CWindowはCOMと無関係であるにも拘らず・・・」と永遠に続くのであった。
323デフォルトの名無しさん:04/11/12 12:59:41
>>322
COMサポートはATLの一部分に過ぎないんだから
別に分離しなくても使わなきゃいいだけの話だと思うが。
324デフォルトの名無しさん:04/11/12 13:44:37
ようするに、正規VisualC++.NETを持っていない人限定の要望。
C++BuilderユーザやCygwin・GCCユーザでも使えると嬉しいってこった。
325デフォルトの名無しさん:04/11/12 13:46:00
C++BuilderユーザはVCL使ってればいいし、
GCCユーザーやCygwinユーザーはwxWidgetsでも使ってればいいじゃん。
326デフォルトの名無しさん:04/11/12 14:00:59
ライブラリの選択肢が増えるのはいいことじゃないか。
327デフォルトの名無しさん:04/11/12 14:15:25
>>325
ワラタ
おまいの頭には汎用ライブラリの利点という文字は無いのか
328デフォルトの名無しさん:04/11/12 14:40:17
じゃあみんなwxWidgetsとかQTでいいじゃん
329デフォルトの名無しさん:04/11/12 15:29:26
たぶん>>325とは一生会話が成り立たないだろうな。
330デフォルトの名無しさん:04/11/12 15:36:33
VC7でATL3.0は使えないんじゃないか?
ビルドはできるのだけど、実行しようとするとエラーで異常終了するわけだが・・・。
さて、VC7の場合、どのATLヘッダーとリンクすればいいかね?
331330:04/11/12 15:37:28
リンクじゃなくてインクルード。まぁわかると思うけど。
332デフォルトの名無しさん:04/11/12 15:37:57
ヘッダーとリンク?
333デフォルトの名無しさん:04/11/12 15:45:34
>>330
VC7付属のATL。
334330:04/11/12 15:50:35
>>333
説明不足だった。VC7ではなくて、VCTK2003。
PSDKのWin64のヘッダではランタイム異常終了するし、
VC98のヘッダでは金毘羅さえ通らない。
さて、どうしたものか。
335デフォルトの名無しさん:04/11/12 15:57:28
コンパイラやリンカのオプションは間違ってない?
あとどんなソース書いたのか。
336デフォルトの名無しさん:04/11/12 16:54:49
>>335
リンカオプションが間違ってたらビルド完了さえできないはず。
ATLを使わずAPIだけを使っている他のプロジェクトはちゃんと動いてる。

というか、VCTK2003でATL使ってる人っているのか?
そもそもATL3.0はVCTK2003でちゃんと動くものなのか?
337デフォルトの名無しさん:04/11/12 17:10:49
>>334
Win64 用のヘッダか・・・ウィンドウプロシージャサンクしてるとこのコード読んだ?
atlbase.h の _stdcallthunk 。_M_IA64 とかが定義されてると当然落ちるけど。
338330:04/11/12 17:34:46
>>337
_M_IA64 はPSDKリファレンスの「The Tools」に書かれている内容では、直接定義してはならないとあるみたい。
自分はいつもどおり _WIN32のマクロ定義を使ってる。

PSDKにはatlbase.hが2種類ある。
<installdir>\Microsoft Platform SDK\include\Win64\atl\atlbase.h (2002/08/21 08:34:30)
<installdir>\Microsoft Platform SDK\src\mfc\atlbase.h (2001/08/15 15:05:30)
一応、両方のパスで試した。Win64版はビルドできるけど実行時に落ちる。
src\mfc版はコンパイルが通らない。ほぼV98版と同じエラー。

ちなみに、コンパイルオプションは、/arch:SSE2 /G7 /GS を追加してる。
せっかくある機能は使いたいのが人情でしょ。駄目・・・?
339デフォルトの名無しさん:04/11/12 18:06:04
Win64版はちゃんと64bit版windows上で実行してんのか?
340デフォルトの名無しさん:04/11/12 19:37:21
>>338
せめて落ちる場所くらい特定してから来い。
341デフォルトの名無しさん:04/11/12 20:10:09
ATL/WTLを分離して欲しいってやつは自分でやればいいんじゃないの?
せっかくソース公開されてんだし。
著作権にだけは気をつけて。
342デフォルトの名無しさん:04/11/12 20:30:38
どう気をつけるんだ。
343デフォルトの名無しさん:04/11/12 21:23:20
車輪を再開発しないためのライブラリ
344デフォルトの名無しさん:04/11/12 23:50:25
>>342
他人にバレないように気をつける。
345デフォルトの名無しさん:04/11/13 05:01:15
>>340
WTLで異常終了するのを確認。WTL7.5(wtl75_4291.zip)を使ってる。
異常発生位置は、atlframe.h の456行目
::CreateWindowEx()

VC6.0の"ATL/WTL AppWizard"で作ったSDIアプリのプロジェクトをメイクファイルエクスポートして
VCTK2003環境でビルドすれば他の人も異常終了を確認できると思う。
ATLヘッダーはPSDのWin64版を使っている。(_ATL_VER=0x0300)
346345:04/11/13 13:58:34
どうやら自分のVC6SPが古いのが原因だったみたい。
347345:04/11/13 14:24:51
ちなみに自己弁護っぽくなってしまうが、VC6SPのバージョンが低いことと、
PSDKWin64ヘッダを使ってTK(=VC7)でビルドした実行ファイルが異常終了することは、
全く関係がないと考えてよいと思う。

PSDKのWin64ヘッダファイルでWin32アプリをTKでビルドすると問題が起きるっぽい。
348デフォルトの名無しさん:04/11/13 15:06:17
そんな事も藻前くらいしかやらんだろうから問題無さそうだな
349デフォルトの名無しさん:04/11/13 17:08:16
こりゃ、スルーだな。次いこう。
350デフォルトの名無しさん:04/11/13 18:38:47
ATLがフリーにならないと、人々が望んでTStringを使うようにはならないだろう。
351デフォルトの名無しさん:04/11/14 00:31:12
TStringって何ですか?
352デフォルトの名無しさん:04/11/14 01:46:13
>>351
テツレファイ?
353デフォルトの名無しさん:04/11/14 05:21:14
354350:04/11/14 11:03:11
帝政する。
TStringをCStringTに文字列痴漢して読んで貰いたい。
355デフォルトの名無しさん:04/11/14 11:36:31
>>350=354
こいつアホだな。DelphiスレでATLラーメンでも食って死んでろ
356デフォルトの名無しさん:04/11/14 12:00:42
>ATLラーメン

どういう意味かわからない。なんか元ネタあるの?
357デフォルトの名無しさん:04/11/14 12:20:58
>>356
ATL + ラーメン。
358デフォルトの名無しさん:04/11/14 14:33:26
そのままやんけ〜
359デフォルトの名無しさん:04/11/14 16:48:50
最近とみにレベルがひくいな
360デフォルトの名無しさん:04/11/14 20:49:47
>>359
同意。
「低い」を漢字で書けないなんて、レベルが低すぎる。
361デフォルトの名無しさん:04/11/15 01:14:24
>>360
同意。
いちいち細かいところで嬉しそうに突っ込んでくるなんて、レベルが低すぎる。
362デフォルトの名無しさん:04/11/15 02:12:53
363デフォルトの名無しさん:04/11/15 04:16:20
おじさんつまんなーい。
364デフォルトの名無しさん:04/11/15 05:23:12
365デフォルトの名無しさん:04/11/15 06:00:26
366デフォルトの名無しさん:04/11/15 15:15:04
367デフォルトの名無しさん:04/11/15 16:33:45
>>366はものすごくかっこ悪いことをした。
368デフォルトの名無しさん:04/11/15 17:48:04
TWLじゃなくてWTLにしたのはこうやって紛れ込むやつを当て込んだのかな・・・。
369デフォルトの名無しさん:04/11/15 17:51:54
>>368
だとしたら非道く狭いシェアを当て込んだもんだな

つか真面目な話、こんなのが引っかかるのは邪魔だなぁ
370デフォルトの名無しさん:04/11/15 17:55:04
単にSTLに合わせたからとマジレスしちゃ駄目?
371デフォルトの名無しさん:04/11/15 18:15:25
>>370
ぜひTokachi Web LinkがSTLに合わせる理由をマジレスして頂きたい( ゚д゚)σ)´Д`)
372デフォルトの名無しさん:04/11/15 19:59:06
俺が知ってる限りWTLオープンソース化のニュースが流れる前は、
GoogleでWTLを検索すると十勝Webリンクが一番上にヒットしてた。
ニュース以降はWTLに関するニュース記事やブログが上位になっていったなぁ。
ま、未だに十勝Webリンクも上位にヒットするけどな。
373デフォルトの名無しさん:04/11/16 18:07:32
>>362-365
次スレテンプレート候補ということでFA?

話は変わるが、
yahooフォーラムで出てた通りサンクの構造体をユニオンにして
WIN64ヘッダでビルドしたDirectX使用のWTLアプリは不意にOS毎落ちる希ガス。
諦めてVC98でビルドしたバイナリだけつかうようにしてる。
原因は調べる気なし。つか、OS道連れなもんで原因特定方法わからんし。
374デフォルトの名無しさん:04/11/16 19:56:25
375デフォルトの名無しさん:04/11/16 20:08:06
かなり前に既出のような気がするけど忘れた。
まぁ2.0だし。
376デフォルトの名無しさん:04/11/22 16:26:21
377デフォルトの名無しさん:04/11/26 01:03:47
テンプレートーライブラリー(っていうんですかね?)を導入したいと思っています。
現在、WTL、BOOST、LOKIでどれにしようか迷っています。

互換性、プログラムの簡潔性を重視したいので、どれか一つに絞りたいと思います。
どれが良いんでしょうか?

よろしくおねがいいたします。
378デフォルトの名無しさん:04/11/26 01:11:07
>>377
ガッ
379デフォルトの名無しさん:04/11/26 01:15:13
>>377
用途が違うから絞るものじゃない。
それぞれの用途を調べて自分で決めれ。
380デフォルトの名無しさん:04/11/26 01:16:18
>>377
ウリャッ
381デフォルトの名無しさん:04/11/26 04:10:03
>>377
STLportっていうのもあるよ。これはSGI(注:創価学会ではありません)の技術がいっぱい詰まった、
未来のてんぷれーとーらいぶらりーさ。
382デフォルトの名無しさん:04/11/26 04:25:47
はぁ・・・
383デフォルトの名無しさん:04/11/26 04:43:06
あのさ、C++のテンプレートライブラリは専用のスレがあるからさ、ちょっとだけ空気読めよな
384デフォルトの名無しさん:04/11/26 06:20:09
>>377
別に一つに絞らなくても構わないと思うぞ。

例えば、お前の言うBoostとLokiとATLを組み合わせて、

boost::shared_ptr<Loki::SmartPtr<CComPtr<I***> > >

とすれば、最強の超スマートCOMポインタが作れたりする。
385デフォルトの名無しさん:04/11/26 11:36:38
ATL にも boost::shared_ptr 欲しいよね。
漏れ boost は shared_ptr と function の為にしか使ってないや・・・
386デフォルトの名無しさん:04/11/26 15:02:32
アイドルハンドラってとにかく暇な時に呼び出されるわけじゃないのね
387デフォルトの名無しさん:04/11/26 19:45:50
>>386
メッセージループで処理すべきメッセージが無いときに呼ばれるんじゃなかったっけ。
388デフォルトの名無しさん:04/11/26 20:05:29
>>386
CMessageLoopから派生したクラスを書けば、そのような挙動にすることも可能だよ。
漏れは、ゲームとかリアルタイム系のアプリ作るときには使ってる。
389デフォルトの名無しさん:04/11/26 20:46:20
>>385
boostはゲームソフトの抱き合わせ販売のようなものだ

                       ――ゲーテ
390デフォルトの名無しさん:04/11/26 21:03:27
他のライブラリの話はもういいから。
391デフォルトの名無しさん:04/11/26 21:07:05
>>387
常に連続して呼ばれるわけではないのだ

>>388
頭(・∀・)イイ
早速やってみるyo
392デフォルトの名無しさん:04/11/26 21:07:58
>>390
ゲーテかい?
393388:04/11/26 21:10:51
>>391
いや、そもそもCMessageLoopがそういう状況を考慮して作られているから。
ソース見てみれば分かるよ。
394デフォルトの名無しさん:04/11/26 21:23:36
デフォルトで
while(他にメッセージが無い){
 アイドル処理;
}
なメッセージループは嫌だなぁ。
どんなアプリもCPU100%
395388:04/11/27 00:06:15
>>394
そんなのは、CMessageLoopの派生の仕方によって好きなように制御できる。
396デフォルトの名無しさん:04/11/27 00:42:30
デフォルトで、なら嫌だなって話だろ
397デフォルトの名無しさん:04/11/27 01:26:59
そうだそうだ。
お兄ちゃんに謝れ。
398デフォルトの名無しさん:04/11/27 01:28:13
>>392
俺だよ。
399デフォルトの名無しさん:04/11/27 14:08:37
www.codeproject.com/wtl/wtldockingwindows.asp
ここにあるデモプロジェクトがコンパイル出来ません。
一番シンプルそうなDockSiteSampleとか。

同梱されているincludeフォルダにインクルードパスを通す。
プロジェクトにDockImpl.cppを追加。
stdafx.cppからDockImpl.cppをインクルード。
MainFrameでDockingWindow.hをインクルード。
_ATL_MIN_CRTを解除して/GXコンパイルオプションを設定。

…山のようにウォーニングやらエラーが出ます。
何か忘れてる事とかあるんでようかね。
助言ください!
400399:04/11/27 14:11:32
あぁ環境書くの忘れました。
VC++ 7.1
WTL 7.5.4291.0
401デフォルトの名無しさん:04/11/27 14:25:15
>>399
> ウォーニング
ワーニング、のほうがが正しい発音。
402デフォルトの名無しさん:04/11/27 14:27:42
というように面倒な事になるからwarningと書け。
403デフォルトの名無しさん:04/11/27 14:40:10
>>399
>>プロジェクトにDockImpl.cppを追加

これをビルドの対象からはずした?
404403:04/11/27 14:46:44
あ、思い出した。
.net からコンパイラのチェックが厳しくなったんで、C2501 とかを
直すには

Before:
typedef TDockingWinTraits::CCaptionCCaption;

After:
typedef typename TDockingWinTraits::CCaptionCCaption;

というように typename が必要だった気がする。
しかもかなりの箇所を修正する必要があったはず。
頑張れ
405399:04/11/27 15:37:35
>>404
なるほど参考になる情報ありがとう。
.netが出てからかなり経つのにソースが修正されてないんですね。
そうとわかれば勉強がてらに地道に修正してみます。
406デフォルトの名無しさん:04/11/27 16:19:39
>>402
ベツニ面倒じゃないよ
407デフォルトの名無しさん:04/11/27 17:51:34
>>401
[wɔ่:ɾniŋ] のほうが正しい発音。
408デフォルトの名無しさん:04/11/27 23:41:26
ぅうわゎーにんぐゅ
409デフォルトの名無しさん:04/11/28 00:37:25
ウォーニングがワーニングでも大差ないだろ。
エンジョイとかバケーションとかしまいにゃイギリスとかどうなのよ
410デフォルトの名無しさん:04/11/28 01:05:24
今更何やってんだかって感じだな。
Cスレやそこらで散々既出の話題。
411デフォルトの名無しさん:04/11/28 02:22:58
ジジイ ウゼー
412デフォルトの名無しさん:04/11/28 10:10:49
こういう見当違いのレスが続くから>>402なわけか
413デフォルトの名無しさん:04/11/28 11:32:28
カタカナで書いたときはウォーニングだとウォーキングと見間違えてしまうから、
カタカナ表記する場合はワーニングで統一して欲しいと思う吉宗であった(AA略)。
414デフォルトの名無しさん:04/11/28 13:18:55
ワーニングだとワーキングと間違えやすい。
415デフォルトの名無しさん:04/11/28 13:50:55
普通の人間ならウォーニングでもワーニングでも前後の文章から察してwarningの事だろうと理解出来るもんだ。
ただ自分は正しい発音を知っるって事をちょっとだけ誉めてもらいたかっただけなんだ。
許してやってくれ。
416デフォルトの名無しさん:04/11/28 18:51:35
内容は読んでないけどこんなの見つけた。
ttp://www.codeproject.com/macro/WTLHelper.asp

417デフォルトの名無しさん:04/11/28 19:43:47
>>416
あっそう、よかったね。
これからは厨房日記は自分のblogにつけてくれ、頼む。
418デフォルトの名無しさん:04/11/28 19:48:23
419デフォルトの名無しさん:04/11/28 21:47:52
てか激しくがいしゃつ
420デフォルトの名無しさん:04/11/28 22:01:20
421デフォルトの名無しさん:04/11/28 22:19:30
がいしゃつワロタ
422デフォルトの名無しさん:04/11/28 22:20:09
なんだこの厨臭いスレ
423デフォルトの名無しさん:04/11/28 22:23:23
部屋とガイシャツと私
424デフォルトの名無しさん:04/11/29 01:02:19
すみません。ここの皆さんには FAQ なんでしょうけど
私も _ATL_MIN_CRT にずっぽりはまってしまいました。
このスレの上の方を見るとマクロから消せば良いという
結論になってますよね?
それで確かに動くようにはなったのですが、このまま常に
「_ATL_MIN_CRT を消す」と思ってて良いのでしょうか?

一応このあたりの内容は目を通してみました。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vcconusing_atl_min_crtinyouratlproject.asp
http://hp.vector.co.jp/authors/VA022575/c/atlmincrt.html
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl08-03/
http://www.hi-ho.ne.jp/babaq/comprog2.html
425デフォルトの名無しさん:04/11/29 01:24:15
どうしてもサイズを小さくしたいなら別だけど、
そうじゃないなら消す。
426デフォルトの名無しさん:04/11/29 01:51:21
サイズの違いについては特に気にならないのですが、
mallocとかstr系とか使えない関数があるから危険みたいな、
そういうところにいまいち納得がいかなくて・・・
427& ◆sQw2IvQ8pg :04/11/29 02:01:11
そういうのが使えなくなるってのはどうでもいいんだけど。
リンク通らなくなるのが謎。
どうせ使えないのならそもそもある意味が分からない。
428デフォルトの名無しさん:04/11/29 02:06:13
>>425
私もなぜ Release の時だけデフォルトで
_ATL_MIN_CRT 付けてるのかなーと思います。
MS 的には何らかの意図があったのだと思いたいのですが。

「どうせ消すのに」という意見参考になりました。
アドバイスありがとうございます。
429デフォルトの名無しさん:04/11/29 03:05:06
>>426
どこに危険と書いてあった?

>>427
サイズを小さくする=Cライブラリ関数を使わないようにする=Cライブラリをリンクしない
だからリンク通らないのは当然。

>>428
MSの意図は知らないが、そもそもATLはプログラムサイズを小さくする設計だったので、
デフォルトで極力小さくするようにしたと思う。
じゃあなんでデバッグ版に_ATL_MIN_CRTが付いてないんだと言われたら知らん。
デバッグ時はCライブラリ関数を使うと思ったんじゃないかな。
430デフォルトの名無しさん:04/11/29 03:11:23
MIN_CRT環境って、C++の例外って使えるんだっけ?
431デフォルトの名無しさん:04/11/29 03:14:13
使えない
432デフォルトの名無しさん:04/11/29 16:59:31
CScrollWindowImpl使ってるんですが、
横と縦にスクロールバーが付くと、一番端までスクロール出来ないです。
端の部分が、スクロールバーの下に隠れてしまい、見えていない状態です。

これを防ぐにはどうしたらいいのでしょうか?
それとも、予めスクロールバー分サイズを大きくしておくしかないのでしょうか?
433432:04/11/29 17:36:47
スマソ
逝ってくる

スクロールバー使う時は、DoPaintとかOnPaintで、
スクロールバーのオフセットを考慮した描画しなくちゃいけないんだね。
そこら辺をやらずに悩んでたorz

434デフォルトの名無しさん:04/11/29 18:40:00
WTLって基本的にATLとセットで使うもの?
gcc使ってるんだけどWTLを導入するメリットってある?
435デフォルトの名無しさん:04/11/29 19:34:37
>>434
ATLが必要だよ
436デフォルトの名無しさん:04/12/02 23:40:12
>>434

ない
437デフォルトの名無しさん:04/12/04 09:41:37
WTL ってそんなにいいか?
438デフォルトの名無しさん:04/12/04 09:47:00
>>437
ClassWizardが使えない事を除けば、MFCと作業量に違いがない。
カスタマイズが容易なWTLに流れるのは自然なこと。
かといって、MFCが劣るわけでもない。
本格的なGUIアプリは今もMFCが現役。

一部のクラス機能だけを使いたいときにはWTL。
それ以外の場合はMFC。
439デフォルトの名無しさん:04/12/04 10:02:06
すごいいいっていう気は全然しないけど、まあMFCよりはWTLの方がマシ。
今更MFCはちょっと使う気になれない。

#本格的なGUIアプリってなんだろ?
#一部のクラス機能ってなんだろ?
#それ以外ってなんだろ?
440デフォルトの名無しさん:04/12/04 12:26:50
>>438 >>439
それで、MFC と WTL とどっちがいいのですか?
今勉強を始めるとしたらどちらがお奨めですか?
441デフォルトの名無しさん:04/12/04 12:33:18
そこでAPI。
442デフォルトの名無しさん:04/12/04 12:42:03
>>440
どっちでもいい。
443デフォルトの名無しさん:04/12/04 14:36:31
>>440
WTL
444デフォルトの名無しさん:04/12/04 15:37:45
WTLってMFCに比べて資料少なくないですか?
445デフォルトの名無しさん:04/12/04 16:01:52
うん
446デフォルトの名無しさん:04/12/04 16:08:50
これから増える。はず?
447デフォルトの名無しさん:04/12/04 16:13:39
Code Project がいいよ。
448デフォルトの名無しさん:04/12/04 16:31:53
>>446
常にそういわれ続けてるけど、未だに実現していない。
449デフォルトの名無しさん:04/12/04 16:46:18
言われつづけてるか?
450デフォルトの名無しさん:04/12/04 16:54:49
正直 WTL は上級者向け。
資料がないと開発できないやつには向いていない
君たちには WTL のコードがすべて開示されているじゃないか?
って誰かが言っていた気がする
451デフォルトの名無しさん:04/12/04 17:33:07
逆に、ソース読まずにWTLを使うのはつらいかも。
名に使うにしても、ヘッダくらいは目を通すでしょう。(w
452デフォルトの名無しさん:04/12/04 17:39:45
>>15でだいたいわかる。
あとはソース。
調べてわかったことはWebで公開。
こうして資料が増える。これ。
453デフォルトの名無しさん:04/12/04 18:33:26
WTLはバグだらけだから遊びじゃなければMFCのがマシだよ
454デフォルトの名無しさん:04/12/04 18:50:35
むしろATLがバグだらけ。。。
455デフォルトの名無しさん:04/12/04 19:44:36
そこで.NETですよ。
456デフォルトの名無しさん:04/12/04 21:18:28
C#でGenericsが実装されるみたいだけど、WTLもC#で書けるようになるのかなあ
457デフォルトの名無しさん:04/12/04 21:26:38
そこでWTL.NETですよ。

てか、>>456はネタじゃなかったらチンカス以下ですね
458デフォルトの名無しさん:04/12/04 22:39:34
C# と Generics って言いたかったんだろう。
察してやれ
459デフォルトの名無しさん:04/12/04 22:58:23
真剣?
460デフォルトの名無しさん:04/12/04 23:02:38
真剣ならもうちょいマシなこと書くだろ
461デフォルトの名無しさん:04/12/04 23:08:33
>>452
それ、かなり好きです。
462デフォルトの名無しさん:04/12/04 23:14:38
Comega
463デフォルトの名無しさん:04/12/04 23:47:15
>>458
意味不明なんだが
464デフォルトの名無しさん:04/12/05 00:14:22
C尻
465デフォルトの名無しさん:04/12/05 00:39:58
>>454
例えば?
466デフォルトの名無しさん:04/12/05 10:39:10
HTTPがらみ。
467デフォルトの名無しさん:04/12/05 14:53:18
あとは?
468デフォルトの名無しさん:04/12/05 19:52:03
まったく何を言ってるんだ。
天下のマイクロソフトが作るものにバグなんかあるはずがないだろう。
藻前らの使い方が悪いのだ。
469デフォルトの名無しさん:04/12/05 21:23:05
エントリーおめでとう
http://pc5.2ch.net/test/read.cgi/tech/1101931660/
470デフォルトの名無しさん:04/12/05 21:43:44
オナニーしたくなってきた
471デフォルトの名無しさん:04/12/06 06:07:09
純粋にATLの話題ではないのですが、まともに COM の質問ができるスレが見当たらないので・・・。
idl に適当にデュアルインターフェイスを書いて、
Url や LockType という名前のプロパティを定義してコンパイルすると
プロパティ名が勝手に小文字に変換されるんですが、
どなたか再現する方、原因・解決法をご存知の方はいらっしゃいませんか?
自動生成されるC++ヘッダの方は問題なくput_Url/get_Urlになっているのですが、
タイプライブラリの方が小文字になってしまいます。
ITypeInfo で確認できます。
VS.NET 2003です。
472デフォルトの名無しさん:04/12/09 00:50:28
WTL7.1とVC6でやってます。以下のようにするだけで例外が出てしまうのですが、
原因分かりますでしょうか。例外を無視すれば問題は無いのですが、あまり気持ちが良くなくて。

CFileDialog dlg_file_open(TRUE, _T("txt"), NULL, OFN_HIDEREADONLY | OFN_CREATEPROMPT,
_T("テキストファイル (*.txt)\0*.txt\0ビットマップファイル (*.bmp)\0*.bmp\0JPEGファイル (*.jpg)\0*.jpg\0\0") );

dlg_file_open.DoModal();

//実行結果(DoModal内でGetOpenFileNameが呼ばれたときに例外が出る)
例外処理 (初回) は Test.exe (KERNEL32.DLL) にあります: 0x000006B5: (名前がありません)。
例外処理 (初回) は Test.exe (KERNEL32.DLL) にあります: 0x000006B5: (名前がありません)。
473デフォルトの名無しさん:04/12/09 20:43:37
その例外は止まる例外か?
プログラムが止まらないなら問題なし。
474デフォルトの名無しさん:04/12/09 21:25:09
>>473
そんなもんですかー。
止まらないのでこのままやってしまいます。レスありがとうございました。
475デフォルトの名無しさん:04/12/09 22:27:08
えー
476デフォルトの名無しさん:04/12/09 22:52:57
>>475
だってその例外、ちゃんと内部でキャッチされてるじゃん。
MSの人も例外を使いたかったんだよ。
477デフォルトの名無しさん:04/12/09 23:50:24
つーかその例外ってATL/WTLに限った話じゃないよな
478デフォルトの名無しさん:04/12/10 07:57:01
>>476
キャッチされてても良くない(動作はするが意図したものとは違う)こともあるぞ。
479デフォルトの名無しさん:04/12/10 12:39:15
>>478
そういうときはエラーが返る、はずなんだけど、ググってみると同じ状況でこの例外が発生して
かつ期待した動作にならない、なんとかならんか、なんてことを言ってるロシア人がいるね。
480デフォルトの名無しさん:04/12/10 18:14:13
CFileDialogで開くと
右側にプレースバー?の無い旧式になるんだけど
どうすれば今の形式で表示出来るの?
481デフォルトの名無しさん:04/12/10 18:35:41
>>480
::GetOpenFileName()を直接呼び出し。

↓Windowsプログラマの常識
CFileDialogを使う人=厨房
482デフォルトの名無しさん:04/12/10 19:22:35
>>480
右側じゃなくて左側の「履歴」とかが入ってるボックスのこと?
Windows2000で追加されたものなので実行環境を限定してもよければ
#define _WIN32_WINNT 0x0500
(#define WINVER 0x500)も
とすれば、出てくるけど。
ついでに、OPENFILENAME構造体の拡張部分も見ておくといいよ
483482:04/12/10 19:36:25
補足。
出てくるってのは、CFileDialogを使った場合も。
あと、SDKが古すぎる場合はとうかわからない。
VC6で附属のSDKだとダメかも。
ヘッダーでOPENFILENAMEを確認してみて、
無ければ最新のSDKで。
484デフォルトの名無しさん:04/12/10 19:46:45
何この>>481が恥かしすぎる展開
485デフォルトの名無しさん:04/12/10 20:57:48
↓Windowsプログラマの常識
MFCを使う人=厨房
486デフォルトの名無しさん:04/12/10 21:58:07
↓プログラマの常識
Windowsプログラマ=厨房
487デフォルトの名無しさん:04/12/10 22:44:51
↓一般人の常識
プログラマ=厨房
488デフォルトの名無しさん:04/12/10 23:00:01
↓政治家の常識
一般人=厨房
489デフォルトの名無しさん:04/12/10 23:04:45
つまんね
490デフォルトの名無しさん:04/12/10 23:05:47
日本の常識
台所=厨房
491デフォルトの名無しさん:04/12/10 23:08:25
くだらん
492デフォルトの名無しさん:04/12/10 23:20:36
i am chiken from kichen.
493デフォルトの名無しさん:04/12/10 23:21:01
しょーもな
494デフォルトの名無しさん:04/12/11 13:58:36
ワラタ
495デフォルトの名無しさん:04/12/11 19:29:13
>>492
パラッパだろ
496デフォルトの名無しさん:04/12/11 20:51:02
パッパラパッパー?
497デフォルトの名無しさん:04/12/12 16:58:39
.o.o...o.o..
498デフォルトの名無しさん:04/12/14 00:07:43
ヤンガス
499デフォルトの名無しさん:04/12/14 03:44:21
なんだこの流れは・・・
500デフォルトの名無しさん:04/12/14 07:00:41
流れのことはよくわからんが、とにかくすごい500ゲット。
501デフォルトの名無しさん:04/12/14 22:23:50
おめこ
502デフォルトの名無しさん:04/12/14 23:00:59
飲食店に以前から興味がありまして。
503デフォルトの名無しさん:04/12/16 03:17:17
VC.netで、属性つきATLプロジェクトでATL ActiveXコントロールを
作成すると、例えばCFooってクラス名のコントロールだとすると、
必ず「CFoo Object」って名前でレジストリに登録されて、
どう頑張っても名前を変えられないのはバグですか?

属性なしのプロジェクトであれば、ATLコントロールウィザードの
「名前」ページの「種類」に設定した通りのコントロール名になるのに、
属性つきプロジェクトでは、全く同じ設定にしても
「CFoo object」という名前でしか登録されないです。

いくら調べても原因が分かりませんでした。
504デフォルトの名無しさん:04/12/16 06:10:40
アッシの脳みそは米つぶくらいでげす。

つまり。

難しいことはさーっぱり分からないでげすよ。
505デフォルトの名無しさん:04/12/17 15:01:20
helpstring?
506デフォルトの名無しさん:04/12/17 17:12:13
>>503
cocolassのクラスの属性のvi_progid、progid、helpstringとか、
リソースファイルの *rgs 内の記述なんかは何になってますか?
507デフォルトの名無しさん:04/12/18 13:42:00
>>503
[
coclass,
threading("apartment"),
vi_progid("Foo.Foo"),
progid("Foo.Foo.1"),
version(1.0),
uuid(<省略>),
helpstring("ネオむぎ茶"),
support_error_info(IFoo),
registration_script("control.rgs")
]

control.rgsの関連部分の抜粋

HKCR
{
NoRemove CLSID
{
ForceRemove {[!output CLSID_REGISTRY_FORMAT]} = s '[!output TYPE_NAME]'
508デフォルトの名無しさん:04/12/18 15:39:33
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
509デフォルトの名無しさん:04/12/18 20:29:29
WIN98SEのVC++6.0+SDKのWTL7.1で
やりはじめたものなんですけどもね、
あのですね、下のサイトからですね
http://www.codeproject.com/wtl/wtlbrowser.asp
WTL Browserのソースファイルをダウンロードしてですね
ビルドしたところ
以下のようなエラーがでてきたんですよ。
\code project\wtlbrowser_src\WTLBrowser\WTLBrowser.rc(355) :
fatal error RC4214: Codepage not valid: ignored
rc.exe の実行エラー
どうも
resource scriptの
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
#ifdef _WIN32
LANGUAGE 0xD, 0x1
#pragma code_page(1255)
#endif //_WIN32

という部分が引っかかっているようなんですが
これは一体なんなのかわかりますかね?
510デフォルトの名無しさん:04/12/19 02:50:39
WTL.NET 誰かつくって。
511デフォルトの名無しさん:04/12/19 08:09:46
>>510
System.Windows.Forms
512デフォルトの名無しさん:04/12/19 10:04:58
>>509
俺がダウンロードしたソースではその部分はこうなってるけど。

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
513509:04/12/19 18:10:13
あ、どうもです。
リソースファイルの
////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
(略)
#endif // English (U.S.) resources
/////////////////////////////////////

の直後に

///////////////////////////////////////
// Unknown language: 0xD, 0x1 resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
#ifdef _WIN32
LANGUAGE 0xD, 0x1
#pragma code_page(1255)
#endif //_WIN32
(略)
#endif // Unknown language: 0xD, 0x1 resources
/////////////////////////////////////////////////

の記述があってその部分を削ってコンパイルビルドしたらうまくいきますた。
言語設定かなんかの問題なんでしょうか。
なんか謎です。
514デフォルトの名無しさん:04/12/19 20:24:09

void Hoge() { Hoge(); }
515デフォルトの名無しさん:04/12/21 02:36:35
StackOverflowException
516デフォルトの名無しさん:04/12/24 02:53:56
CContainedWindow と ALS_MSG_MAP を自分自身に対して行うと、
状態の遷移に合わせて実行時の挙動を動的に変えるのにすごく便利なことに気づいた。
お前らも使え。
517デフォルトの名無しさん:04/12/24 08:28:33
ALS はドラクエの主人公なんだが、何の関係が?
518デフォルトの名無しさん:04/12/24 13:19:09
TとSをうちまちがえるとはなんということだ
519デフォルトの名無しさん:04/12/24 15:04:11
キーの位置的にありえない間違え方だ・・orz
俺の指にいったい何が・・
520デフォルトの名無しさん:04/12/25 01:10:53
>>519
ダジャレ書き込みでタイプミスは最低だな。
芸人として終わってる。
521デフォルトの名無しさん:04/12/25 01:17:53
520はどこにダジャレを見いだしたんだ
522デフォルトの名無しさん:04/12/25 01:23:03
WTLとドラクエ。
523デフォルトの名無しさん:04/12/25 01:58:52
>>522
間違ったのは518じゃなくて516だぞ
524デフォルトの名無しさん:04/12/25 02:00:10
>>523
意味がさっぱり分からんのだが。
525デフォルトの名無しさん:04/12/25 02:01:39
>>524
それはATLを理解してないからだよ
526デフォルトの名無しさん:04/12/25 02:14:12
>>525
ATLもWTLも、もちろんALT_MSG_MAP も普通に使っているが、
523の発言の意図がよー分からん、と言っただけ。
527デフォルトの名無しさん:04/12/25 02:19:39
たとえATLのマクロを知らなくても、518が間違ってるなんて思ってる奴はいないだろう
528デフォルトの名無しさん:04/12/25 03:17:17
つまり520がバカと言うことだ。
529デフォルトの名無しさん:04/12/25 03:24:24
そんなことないよ
530デフォルトの名無しさん:04/12/25 04:13:12
>>528は520の何気ないレスが相当にこたえたらしいなw
ミスした張本人ということか。マジ笑えるw
531デフォルトの名無しさん:04/12/25 11:09:36
つまり、あれだ。

>>516は、>>498を見て、ちょっとドラクエがやりたくなったところで、
ついうっかりWTLのことが頭をよぎったんでしょ
532デフォルトの名無しさん:04/12/25 11:38:19
追加:
CSortListViewCtrl
CZoomPrintPreviewWindow
CZoomScrollImpl
533デフォルトの名無しさん:04/12/25 15:31:55
>>520
いやだから「ダジャレ書き込みでタイプミス」したのは誰なのよ
534533:04/12/25 15:34:58
あ、おれ521ね
535デフォルトの名無しさん:04/12/27 00:21:51
>>532
なにに追加したんだ?
536デフォルトの名無しさん:04/12/28 15:21:57
ATLのマルチスレッドって具体的には何をすればいいの?
537デフォルトの名無しさん:04/12/28 15:43:18
>>536
FreethreadのCOMオブジェクトの実装方法?
普通にスレッドセーフに作るだけ。
クリティカルセクションやMutex、イベントで排他や待ち合わせを行い、
必要ならWindowメッセージ等でスレッド間のRPCを行う。
538デフォルトの名無しさん:05/01/01 16:34:41
あけましておめでとう!
539デフォルトの名無しさん:05/01/01 21:45:36
別におめでたくない
540デフォルトの名無しさん:05/01/01 23:39:38
今回の年末・年始はあまりめでたくなかったよな。
ま、こういうこともたまにはあるんだろうけどさ。
541デフォルトの名無しさん:05/01/01 23:41:47
2005年って特に何もなさそうな年だもんな
542デフォルトの名無しさん:05/01/02 01:35:09

俺が憶えてる限りでは、2005年は生きてきた中で一番何もない年だったな。
543デフォルトの名無しさん:05/01/02 12:49:04
ATLってなくなるの?
544デフォルトの名無しさん:05/01/02 18:36:13
ATL8.0
545デフォルトの名無しさん:05/01/04 02:17:02
WTL7.5.5002キタ━━━━━━━━━━━━━━━━━━━━━(゚∀゚)━━━━━━━━━━━━!!
546デフォルトの名無しさん:05/01/04 07:50:36
>>545
情報サンクス。
しっかし、相変わらずペめb(ry
547デフォルトの名無しさん:05/01/04 10:24:09
WTL7.5.5002イラネ━━━━━━━━━━━━━━━━━━━━━(゚听)━━━━━━━━━━━━!!
548デフォルトの名無しさん:05/01/04 11:58:21
>>546
意味不明
549デフォルトの名無しさん:05/01/04 11:59:19
何が変わったん?
550デフォルトの名無しさん:05/01/04 12:04:06
Diffとれ
551デフォルトの名無しさん:05/01/04 12:05:24
連書きスマン。
リリースノートにはこうある。

Release Name: WTL 7.5.5002.0
Notes: More bug fixes, new zoom scroll classes, zoom print preview, sort list view classes, new reflect notifications macros.
552デフォルトの名無しさん:05/01/04 12:38:30
VC6のウィザードつけてクレー
553デフォルトの名無しさん:05/01/04 13:11:16
WTL7.1の使えばいいじゃない
554デフォルトの名無しさん:05/01/04 19:36:20
>>532はなんで知ってたんだ?もしかして開発に参加してるの?
555デフォルトの名無しさん:05/01/04 19:53:57
CVSリポジトリ見てれば分かるんじゃ
556デフォルトの名無しさん:05/01/04 21:23:01
557デフォルトの名無しさん:05/01/04 21:42:48
558デフォルトの名無しさん:05/01/04 21:52:03
って>>1に書いてあった罠 スマソ
559デフォルトの名無しさん:05/01/10 19:34:38
なんか結構追加されてるね。
atlgdi.h に CLogFont とか。
560デフォルトの名無しさん:05/01/11 02:46:14
どうして昔から日陰モード炸裂なの?
561デフォルトの名無しさん:05/01/11 22:21:15
>>559
CLogFontもViksoe氏だっけ?
びくそえマンセー
562デフォルトの名無しさん:05/01/18 16:28:26
シェブロンが出ない。
563デフォルトの名無しさん:05/01/18 17:30:48
(´・∀・`)ヘー
564デフォルトの名無しさん:05/01/24 21:31:46
>>562
ドラゴンボール7つ集めたか?
565デフォルトの名無しさん:05/01/24 21:32:40
>>564
レーダーに写らない
566デフォルトの名無しさん:05/01/24 21:40:11
>>562
俺もジェブロン出すのにいろいろ試した記憶があるなー≫
たしか、stdafx.hにあるWindowsバージョン関係の定数を上げたら、表示されるようになった気がする。
567デフォルトの名無しさん:05/01/24 21:41:48
でOS古いと起動すらしなくなると
568デフォルトの名無しさん:05/02/01 08:21:17
初心者の俺がアドバイスしてやろうかと思ったけどやめた。
WTL楽だし楽しいね。
569デフォルトの名無しさん:05/02/01 19:55:54
え?
570デフォルトの名無しさん:05/02/01 22:13:51
日本語初心者ですか
571デフォルトの名無しさん:05/02/01 23:12:58
テステス
572デフォルトの名無しさん:05/02/07 20:24:40
下がりすぎage
573デフォルトの名無しさん:05/02/07 21:10:39
WTLのMDITabコンポーネントでお勧めはありますか?
574デフォルトの名無しさん:05/02/07 23:13:54
viksoe
575デフォルトの名無しさん:05/02/08 03:56:47
DirectXでフレームウィンドウはWTLでお手軽にと思ったら、
なにかイベントがあった時にしかOnIdleに飛んでこないよ・・・
バグ?仕様?
576デフォルトの名無しさん:05/02/08 07:44:31
仕様。常にCPU100%でループ回してるわけじゃないから。
577デフォルトの名無しさん:05/02/08 08:14:28
OnIdle()を理解していないヤシが定期的に現れるねw

キューが空になった時に一回づつ呼ばれるのであって、
アイドリング時に漫然と何度も呼ばれるわけではないと何度言えば(ry
そもそもアイドリング判定なぞ、誰がどうやるのかと小一時間(ry
578デフォルトの名無しさん:05/02/08 08:25:35
そもそもなんでソース見ないのかが不思議。
579デフォルトの名無しさん:05/02/08 11:49:56
WM_SIZEのハンドラOnSizeのなかで、GetClientRect呼び出すと
ステータスバーやツールバーの領域を除外していないサイズが返ってくるのですが。

どうすれば計算済みのクライアント領域を取得出来るの?
580デフォルトの名無しさん:05/02/08 11:54:08
ステータスバーもツールバーもクライアント領域に貼り付けられた子ウィンドウだろ。
581デフォルトの名無しさん:05/02/08 12:18:11
>どうすれば計算済みのクライアント領域を取得出来るの?

MFC使えば
582デフォルトの名無しさん:05/02/08 12:23:02
ステータスバーとツールバーのハンドルからRECTを取得して、
適宜クライアント領域を算出する手間を惜しむ人には、WTLは難しい。
583575:05/02/08 13:54:11
CMessageLoop::OnIdleが常にFALSEを返すようになってたので、
オーバーライドしてTRUEを返すようにしたらちゃんと動きました。
というか、DirectXならここでレンダー呼べばよさそう。

CMessageLoop::Run自体はOnIdleを継続して呼べるようになってました。
584デフォルトの名無しさん:05/02/08 14:07:34
何のためのWTLだよ
585デフォルトの名無しさん:05/02/08 14:23:37
何のためなんだ?
586デフォルトの名無しさん:05/02/08 15:09:31
もちろん自己満足。
587デフォルトの名無しさん:05/02/08 21:57:47
クライアントサイズやアイドルハンドラの質問はMFCもWTLも変わらないような。
MFCもフレームウィンドウでGetClientRectすればバーを含めたサイズを返すし、
MFCのアイドルハンドラもただループ回してるだけじゃないし。
WTLどうこう以前に、質問者はMFCやWin32APIもあまり知らないんじゃないかと。
588デフォルトの名無しさん:05/02/08 21:58:51
>>583

そのループなら、viksoeさんのライブラリに既にある。
CMessageLoopEx とか言う名前と、UI更新との相性が悪いので、俺は前から独自のを使ってるが。

つーか、ちょっと前にも同じようなこと書いた覚えがあるぞ
589デフォルトの名無しさん:05/02/08 22:17:10
まああれだ
.NETになれば計算なんてしないでも
プロパテ設定しておけば勝手に引っ付くわけで
590デフォルトの名無しさん:05/02/08 22:40:03
>>588
何言ってんだ?
日本語喋れ
591デフォルトの名無しさん:05/02/08 22:56:34
WTLでも特別何もしなくても勝手に引っ付いてるわけだが。
ATL/WTLAppWizardでビュー付きウィンドウ作って見れ。
592デフォルトの名無しさん:05/02/08 23:04:49
IVideoWindowなのでビューにするってわけにもいかんのです
593デフォルトの名無しさん:05/02/08 23:18:35
594デフォルトの名無しさん:05/02/09 00:07:33
CFrameWindowImplBase::UpdateBarsPosition(RECT& rect, BOOL bResizeBars = TRUE)
595デフォルトの名無しさん:05/02/09 00:24:11
>>594
残念。RECTを求める関数じゃなくて指定RECTにリサイズする関数じゃん。
つか、自分で計算しろと何度言えば(ry
596デフォルトの名無しさん:05/02/09 13:51:29
Yes,アメリカ王.
597デフォルトの名無しさん:05/02/09 21:57:56
Yes, you is.
598デフォルトの名無しさん:05/02/10 10:46:47
594の関数を先に呼べばGetClientRectから
ツールバーやステータスバーの領域が除外される
599デフォルトの名無しさん:05/02/10 11:27:18
rect に入ってるだろ
600デフォルトの名無しさん:05/02/10 12:19:26
ATL/WTLって専門書とかありますか?
601デフォルトの名無しさん:05/02/10 18:23:14
ATLにはあって、WTLにはない。
602デフォルトの名無しさん:05/02/10 20:08:57
マイクロソフトにあって、ボーランドにない。
603デフォルトの名無しさん:05/02/10 21:42:15
それがJ++。
604デフォルトの名無しさん:05/02/11 03:19:05
俺にあって、藻前らにない。
605デフォルトの名無しさん:05/02/11 03:57:28
それもJ++。
606デフォルトの名無しさん:05/02/11 22:05:21
 J++J
  ゚ 
  
ジャイコ
607デフォルトの名無しさん:05/02/19 15:00:27
だれもいないの?
608デフォルトの名無しさん:05/02/19 15:40:26
>>607
慰めてほしいのかい?
609デフォルトの名無しさん:05/02/19 16:44:54
いや、あんまり過疎ってるから心配になって。
610デフォルトの名無しさん:05/02/20 02:56:10
ATL8まだかなー
WTL8まだかなー
611デフォルトの名無しさん:05/02/21 20:34:05
その前にそろそろ標準搭載させてもらわないと
612デフォルトの名無しさん:05/02/22 00:51:54
mac用最強シェアの最強ブラウザ「 kabaddi」インドでシェアNo.1を誇るウェブブラウザ

http://www.studio-kura.com/index.html

・使用方法はSafariなどのウェブブラウザと全く同じです。
 ただし、データの読み込み時に右上のオジサンと一緒に
「カバディ!」と叫んでください。声が止まると読み込みが中止されてしまいます。
・読み込みが正しく終了するとオジサンが「カバディ!」というのをやめます。
 そうしたら声を出すのをやめましょう。
 いつまでも叫んでいるとバカみたいです。

613デフォルトの名無しさん:05/02/22 13:02:47
Win32APIスレから移動してきました。

自前アプリに埋め込んだウェブブラウザの画像読み込みを抑止する方法がわかりません
ざっと検索した範囲だと、ホストから実装して、Invokeをオーバーライドするみたいな事が書いてあるようなのですが、

CAxWindow::SetExternalDispatchで外部ディスパッチを指定すれば
そこでダウンロードコントロールをいじれるんじゃないかなという気がして試してみたいのですが、、
ここで必要なディスパッチインターフェイスをどうやって用意するべきか分かりません。

何か良いサンプルはありませんか?
614デフォルトの名無しさん:05/02/22 13:25:01
>>613
言ってることがよくわからないけど、web browser コントロールがインライン等で画像をダウンロードするのを
抑制したいっていう話なら、CAxHostだかなんだか忘れたけど MFC のホスト側にIServicePrivider を実装して
自前の IBindHost を提供してあげればよかったと思うけど・・・ググってみるといくつかヒットするな。
http://www.google.co.jp/search?hl=ja&q=web+browser+control+IBindHost&lr=
http://www.dotnet247.com/247reference/msgs/9/45332.aspx
実装例もあるけど仕事で書いた奴だから見せられません。
基本的には下のほうのURLで示されているのと同じ方針でOK。

「ダウンロードコントロール」ってのが何なのかわからないので外してたらゴメン。
615デフォルトの名無しさん:05/02/22 14:02:35
返信、ありがとうございました。 ダウンロードコントロールはこれの一番下にある奴です。
ttp://msdn.microsoft.com/library/default.asp?url=/workshop/browser/overview/Overview.asp
アンビエントプロパティから、簡単に設定できるように書いてあるので、
外部ディスパッチを指定できるCAxWindowを使用しながら簡単にアンビエントプロパティの設定が
出来るのではないかと思っているのです。

MFCは使っていないので、そのままの方法で出来るのか分かりませんが少し調べてみます。
Monikerとか分からないものが出てきているのでしり込みはしますが・・・。
616デフォルトの名無しさん:05/02/22 14:18:56
>>615
なるほど。それならアンビエントプロパティの設定で簡単に出来そうですね。
↓とか。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vclrfiaxwinambientdispatchex.asp
617デフォルトの名無しさん:05/02/22 20:04:56
質問です。
VC7.1を使ってATLの属性付きDLLプロジェクトを作成したのですが、
デフォルトで作成されるrgsファイルにエントリを追加しても
まったくレジストリに追加されません。
VC6では出来ていたのですが、このrgsファイルは使われていないんでしょうか?
618デフォルトの名無しさん:05/02/24 18:30:43
619デフォルトの名無しさん:05/02/25 23:26:00
is this thread alive?
620デフォルトの名無しさん:05/02/26 05:59:21
sorry, im not good at english.
621デフォルトの名無しさん:05/02/26 15:07:51
OK. me too.
622デフォルトの名無しさん:05/02/26 16:30:52
X too
O either

>>621
You are honest !!
623デフォルトの名無しさん:05/02/26 17:26:24
↑ a foo
624デフォルトの名無しさん:05/03/02 00:44:25
VC++6でWTL7.5なのですが、
(テキスト含めた)ファイル入出力、レジストリ読み書きはどうやるのが筋でしょうか?

VC++7であれば、なにやら便利そうなクラスが転がっているみたいなのですが・・・
625デフォルトの名無しさん:05/03/02 01:46:29
>>624
ATL3.0でもCRegKeyはあるよ
626デフォルトの名無しさん:05/03/02 12:33:43
>>624
漏れはWTLなら、ファイルIOは素のAPI呼び出しか
C++の標準ライブラリとか使うなぁ。

テキスト操作は std とか boost とか。
627デフォルトの名無しさん:05/03/09 00:28:37

ありがとうございました
628デフォルトの名無しさん:05/03/09 02:41:42
どういたしましほ
629デフォルトの名無しさん:05/03/10 00:38:34
あのねもしもきみがみちにまよっていたら
いっしょにまよってあげるね
630デフォルトの名無しさん:05/03/10 02:11:16
CRegKeyは、CStringとの連携が無いから糞
631デフォルトの名無しさん:05/03/10 03:19:31
>>630
CString::GetBuffer()の使い方を知らないの?
632デフォルトの名無しさん:05/03/10 19:37:36
>>631
知らんわけないだろう。

いちいちGetBuffer→ReleaseBufferするのはタイプ量も多いし
コードも見づらくなるし最大文字数も書かなきゃいけないし、面倒くさすぎって事。
633デフォルトの名無しさん:05/03/10 20:07:01
CStrBufもしらんのか
634デフォルトの名無しさん:05/03/10 22:32:29
>>632
センスねーな
635デフォルトの名無しさん:05/03/10 23:04:57
>>633
しらん
>>634
ない
636デフォルトの名無しさん:2005/03/25(金) 14:45:05
VCのクラスビューアにヘッダ突っ込めば
少しWin32知ってればドキュメント代わりになるなあ

とたまにage
637デフォルトの名無しさん:2005/03/25(金) 23:56:59
イソテリセソスは使えないの?
638デフォルトの名無しさん:2005/03/26(土) 06:27:03
なんか古代生物みたいだな(w
639デフォルトの名無しさん:2005/03/29(火) 09:45:38
ちょっと質問させてください。

スプリッタウィンドウを伴うMDIアプリケーションを
作成したいと考えています(VC++.NET、WTL7.5、Windows XP SP2)。

ttp://www.codeproject.com/wtl/mdisplit.asp
を参考に作っていたのですが、このサンプルには
バグがあるようで、それの解決方法がわかりません。

まずバグについて具体的に書かせていただきます。

このサンプルでは、スプリッタウィンドウの左ペインにAboutダイアログを表示させる
という口実で、本来あったであろうメニューリソースのHelp項目を無くしています。
この為、CMDIWindow::GetStandardWindowMenu関数は常にNULLを返しており※、
MDI子ウィンドウが新しく作成されても、メニューのWindow項目以下に
キャプションリストの追加が行われなくなっています。
※キャプションリストを追加するためのメニューアイテムは
 名称が_WTL_MDIWINDOWMENU_TEXTと一致し、かつ
 メニューバーの右から二番目になければならない。

これを解決するために、メニューバーの末尾に適当な項目を追加してやると、
キャプションリストの追加は行われるようになるのですが、
10個目のMDI子ウィンドウを作成しようとするとプログラムが異常終了してしまいます。
640639:2005/03/29(火) 09:46:23
どうやら、MDI子ウィンドウが10個以上になったときに現れる
その他のウィンドウという項目の追加処理に失敗しているようです。
※上記サンプルではキャプションリストの追加自体が行われていないので、
 10個以上作成してもこのバグは発現しません。

多分、MDIフレームの直下にあるべきMDIクライアントが、
スプリッタウィンドウをはさんで存在しているため、MDI関連のメッセージとかで
うまく処理されていないものがあるのでは?と想像しつつソースを眺めているのですが
どこが原因なのか皆目見当もつきません。

試しにWTLを使わずWin32API直書きでMDIフレームとMDIクライアントの間に
別ウィンドウをかましたテストプログラムを作ってみたりもしたのですが、
その場合、この現象は起きないのですが…

どなたか解決策(もしくは別の実装案)を御存知の方はいらっしゃらないでしょうか?
641デフォルトの名無しさん:2005/03/29(火) 11:48:35
ヒントでしかないけど...

m_hWndMDIClient の親をスプリッタに切り替えるのをやめると、
クラッシュせずに10個目以降のためのメニュー項目が追加されるようになるよ。
当然、画面表示はおかしくなっちゃうけどね。

別の実装としてはこれ?
http://www.codeproject.com/wtl/wtldockingwindows.asp
大げさになっちゃうけど。
642639:2005/03/30(水) 02:45:44
>>641
>m_hWndMDIClient の親をスプリッタに切り替えるのをやめると、
ヒントありがとうございます。

自身の子ウィンドウでなくとも、
スクリーン座標の相対位置で適切にペインの配置が可能な
スプリッタウィンドウクラスを作ることで、
(見かけ上は)正常に動くプログラムを作成できました。

ちょっと汚い実装かな?とは思うのですがw
※もしかしたら、メインウィンドウはSDI(CFrameWindowImplから派生)にしておいて、
 class CMDIFrame : public CWindowImpl<CMDIFrame, CMDIWindow>
 こんな感じのクラスを作ってやった方がイイのかな?

とりあえず問題なく動いてるようなのでこれで逝こうかなと思いますが、
もっとスマートな実装がありましたら情報いただけると幸いです。

>別の実装としてはこれ?
>http://www.codeproject.com/wtl/wtldockingwindows.asp
実は、私のほうでも、スプリッタがうまくいかないのなら
ドッキングウィンドウに仕様変更しちゃおうかなとか考えてましたw
643デフォルトの名無しさん:2005/03/31(木) 00:03:21
CodeMaxのようなフリーのエディタコンポーネントはないものか…
644デフォルトの名無しさん:2005/03/31(木) 09:17:59
リッチエディト
645デフォルトの名無しさん:2005/04/03(日) 15:13:04
そろそろバージョンアップする頃だよな
646デフォルトの名無しさん:2005/04/04(月) 16:48:22
MFCのAfxVerifyLicFile関数に相当する関数はATLには無いのでしょうか。
647デフォルトの名無しさん:2005/04/11(月) 01:54:00
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
END_MSG_MAP()

WTLをはじめてみようと思ったのですが、この書式ってなんですか?
cでもc++でも見たことないんですが、、、。
648デフォルトの名無しさん:2005/04/11(月) 02:05:48
メッセージクラッカ
649デフォルトの名無しさん:2005/04/11(月) 02:06:59
>>647
マクロで定義されてるだけだよ。
650デフォルトの名無しさん:2005/04/11(月) 02:07:34
実質ただのメンバ関数定義
651デフォルトの名無しさん:2005/04/11(月) 22:18:50
>647
ヘッダーファイルくらい見ろよ。
652デフォルトの名無しさん:2005/04/11(月) 22:32:45
ちゅーか、ググれよ。
653デフォルトの名無しさん:2005/04/11(月) 23:21:43
>>647
WTLはじめる前に
Cを勉強しなおしたほうがよいと思います。
654デフォルトの名無しさん:2005/04/14(木) 19:42:02
しかし昔からあるけど誰がこんなやりかた考えたんだろうな
655デフォルトの名無しさん:2005/04/15(金) 06:53:12
ん?皮オナニーのこと?
656デフォルトの名無しさん:2005/04/17(日) 02:50:23
WTL 7.5.5102.0
Changes since the last release:
- Bug fixes
- Misc. class/method improvements
- Wizard97Test
- Sample for Wizard97 base classes
- Improved support for Windows CE: CMenuBarCtrl, CPropertySheetImpl, frame windows
- Enabled CDialogResize for Windows CE
- Added CScrollContainer class
657デフォルトの名無しさん:2005/04/21(木) 01:59:13
- Added .NET Support
- Removed Native Support
658デフォルトの名無しさん:2005/04/21(木) 07:16:32
まじで?
659デフォルトの名無しさん:2005/04/21(木) 08:28:53
いくらなんでもそれはありえないんじゃなかろうか。
それならC++のテンプレートライブラリにする意味ないんじゃね?
660デフォルトの名無しさん:2005/04/21(木) 20:23:13
ねたにまじれ
661デフォルトの名無しさん:2005/04/21(木) 20:28:39
すかこ
662デフォルトの名無しさん:2005/04/21(木) 21:26:46
わるい

というのはおいといて、ワーカースレッド作りたいけど
ATL/WTL的にはなにも手助けしてくれないから
SDKの関数使っていればいいのかな?

かっこいいクラスある?
663デフォルトの名無しさん:2005/04/21(木) 21:38:09
664662:2005/04/21(木) 21:51:40
調べてみた感じそうっぽいので先に進もう

あ、SDKの関数と言うよりはCランタイムの関数
665デフォルトの名無しさん:2005/04/21(木) 22:34:38
>>662
CRTThreadTraits
666デフォルトの名無しさん:2005/04/21(木) 23:11:59
ATL7.0でスレッド用クラス追加されたじゃん。
667662:2005/04/22(金) 00:33:36
ぐっは
CWorkerThreadとかまんまのクラスあるやん
ATL Server クラスのほう見てなかったorz
668デフォルトの名無しさん:2005/04/24(日) 11:40:28
.net2003で、ATLシンプルクラスを2つつくって、(COya CKo)
COYaにCKoのインターフェースを作って、そのあとIKoにプロパティ
作ると、なぜかCOYaにもできるのですが、なんでですか。
しかも、
CoCreate(COya,IOya,&oya)
oya->QueryI(CKo,IKo,&ko)
ko->xxx
ってやっても、そのoyaにもできたしまったほうのプロパティのほうを
取りにいこうとしてしまいます。

669デフォルトの名無しさん:2005/04/24(日) 13:14:51
>>668
COya、CKoを含めて、その辺のコードを示しなさい。
670デフォルトの名無しさん:2005/04/24(日) 19:24:07
コードの前に、前半部分の疑問からはじめていいですか。
こっちはコードいらずです。

ATLシンプルオブジェ2こつくって、クラスビューワ(?)の
COyaのところで右クリックして、インターフェースでCKoを
追加します。

そして、IKoのところで右クリックしてプロパティ追加ってやると、
IKoに追加してるのにCKoとCOya両方が書き換わってりょうほうに
同じget_xxx set_xxxができちゃいます。なんでCOyaにも
できるのか理解できません。別に継承とかしてるわけではないのに・・。
671デフォルトの名無しさん:2005/04/24(日) 20:02:08
>COyaのところで右クリックして、インターフェースでCKoを
672デフォルトの名無しさん:2005/04/24(日) 20:04:48
IKoのまちがい
わかってるくせに。まちがいはてきとうにほかんしなされ

673デフォルトの名無しさん:2005/04/24(日) 23:53:10
CWindowImplのWM_PAINTの挙動って
_DEBUGの時とそうでないときと違ったりしないよね・・・・?

見事にそうなっちゃったんだけど自分が悪いんだよなぁ・・・
リリースビルドの時だけ背景真っ白
674デフォルトの名無しさん:2005/04/25(月) 00:47:31
>>673
ATLASSERTの中に必要な処理を書いてるとか
675デフォルトの名無しさん:2005/04/25(月) 00:49:36
>>673
ATLのソースを見れば分るだろ。
676673:2005/04/25(月) 04:22:07
ごっめーん
MFCと違ってVERIFYねぇ→式の評価はしてくれるんだろう
と思いこんでた

すまそすまそすまそorz
677673:2005/04/25(月) 04:31:49
わーい、動いた、感動

#ifdef _DEBUG
#define ATLVERIFY(f)ATLASSERT(f)
#else
#define ATLVERIFY(f)((void)(f))
#endif
678673:2005/04/25(月) 04:32:52
あ、tabがなくなっちゃったけどまぁわかるよね
679sage:2005/04/25(月) 14:13:30
>>670
IKoに追加されてるのは、インタフェイスの宣言としてのプロパティ。
COyaに追加されてるのは、その実装。
インタフェイスを持ってるんだから、実装もあるはず、ということで
COyaに追加される。そこに実装を書く。

たぶんお前みたいな初級者は、
IKoに実装を書いて「IKoに書いたからCOyaに同じメンバいらねぇよ!」とか
思ってるんだろうけど、そのやり方はちょっと間違ってると思う。
680デフォルトの名無しさん:2005/04/25(月) 23:49:04
ATL無しでは動かんの?
681デフォルトの名無しさん:2005/04/27(水) 01:04:38
VS2005プレビュー版が出たけどWTLのバージョンアップはまた2,3ヶ月後か
682デフォルトの名無しさん:2005/04/27(水) 04:10:20
プレビュー版でもそのまま動いてるよ
683デフォルトの名無しさん:2005/05/15(日) 02:47:52
更新情報
「COMMAND_RANGE_HANDLER とその使い方」
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL_Lecture10.htm
684デフォルトの名無しさん:2005/05/16(月) 23:29:23
Flash.ocxから絵をメモリ上に描きたいです。

http://kikyou.info/diary/?200312
これを参考にしているのですが、CreateControl()の引数にどんなIStreamを渡せばいいのかわかりません。
試しにSHCreateStreamOnFile()で適当なSWFファイルを開いて取得できる
IStreamを渡したらCreateControl()に失敗するようになりました。

ご指導おねがいします。
685sage:2005/05/17(火) 16:16:54
>>684
そこのサイトに詳しく書かれている通りの内容を帰す IStream を、
>>684自身が作ればいい。

IStreamの実装を自分でしたくない/できないなら、
GlobalAllocでメモリを確保して、そのサイトの情報をもとに内容をセットアップして、
CreateStreamOnHGlobalでメモリストリームを作ってIStream::SetSizeでサイズ指定する、
とかしても良い。
686デフォルトの名無しさん:2005/05/18(水) 00:04:55
class CMyWindow : public CWindowImpl<CMyWindow, CAxWindow>
{
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
END_MSG_MAP()

LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
{
::OutputDebugString("CMyWindow::OnPaint()\n");
return 0;
}
};

これではOnPaint()のオーバーライドができないのですが
どうすればいいでしょうか?
687sage:2005/05/18(水) 12:47:53
>>686(=684?)
よく知らんが、CAxWindowでクライアント領域一杯にActiveX コントロールが
ホスティングされてる状態だと、無効領域が無いからOnPaintは呼ばれない
んじゃない?
688デフォルトの名無しさん:2005/05/18(水) 23:36:05 BE:2344627-#
過去レス読まずにカキコ
スプリッタウィンドウ周り、クラスブラウザから読めなくてオートコンプリートぜんぜん効かない
これってIDEのテンプレート引数周りのバグ?

atlcrack.hのマクロもクラスブラウザおかしくなるし
ちなみにVS.NET 2003
689デフォルトの名無しさん:2005/05/19(木) 02:35:07
>>688
WTLに限らず、ファイルをまたいだマクロは
インテリセンス系は解析しない(できない)。

できるのはprebuilt.ncbに入ってる奴だけよん

バグといえばバグなのかも知れんが、
マクロとかそういうC++の腐った言語仕様を、膨大な数のファイルから
リアルタイムに解析するのはちょっと無理なんじゃないかな
690デフォルトの名無しさん:2005/05/19(木) 19:30:10
2005βだとちょっと賢くなったかも
仕様的に完璧はムリというのは同意
691688:2005/05/19(木) 23:17:34 BE:2678382-#
ある修正を加えたらとりあえずまったく問題なく認識するようになった。
>>689氏の言葉がヒントになった。感謝。

http://ranobe.sakuratan.com/up/updata/up38210.jpg
692688:2005/05/19(木) 23:57:41 BE:1339542-#
同じ悩み抱えてる方もいるだろうからいちおう解決法書いとく
atlsplit.hの上らへんに、atlwin.hからコピってきたマクロをこんな風に貼り付け

#if !defined(__ATLAPP_H__) && !defined(__ATLWIN_H__)
#define BEGIN_MSG_MAP(theClass) \
(略)
#define END_MSG_MAP() \
(略)
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \
(略)
#endif


検証してみたが、BEGIN〜とEND〜のマクロだけヘッダに書いてあればクラス構造は
正しく認識できるらしい。
ただしDECLARE_WND_CLASS_EXはデフォではvoid型の関数として認識してた。

しかし、クラス内メッセージマップ持ってるヘッダも他にもあるのに
なんでこいつだけ認識されなかったりしたのだろうか
693689:2005/05/20(金) 00:21:32
>>691
おーよかった。

ちなみにVS.NET2003では、自作クラスのときも、
BEGIN_〜END_〜とかDECLARE_〜とかのマクロ系とか、
あとクラス内定義のテンプレートクラスとかいったものは、
できるだけクラスの最後の方に書いた方が
そのクラスのメンバを認識してくれる確率が上がるっぽい。
まあ困ったら試してみる価値はあり。

インテリセンスのためだけにメンバの順番を変えたりするのは
う〜んな感じがしないでもないけど。
694デフォルトの名無しさん:2005/05/22(日) 11:36:48
[VB.NETクラスライブラリ:Test_Dll.dll]
Imports System

Namespace Class1
  Public Interface IClass1
    Function Test_Func1() As Integer
    Sub Test_Func2(ByVal a As Integer, ByVal b As Integer)
  End Interface

  Public Class Class1
    Implements IClass1

    Private m_val As Integer

    Public Sub New()
      m_test_prop = 0
      m_val = 0
    End Sub

    Public Function Test_Func1() As Integer Implements IClass1.Test_Func1
      Return m_val
    End Function

    Public Sub Test_Func2(ByVal a As Integer, ByVal b As Integer) Implements IClass1.Test_Func2
      m_val = a + b
    End Sub
  End Class
End Namespace
695デフォルトの名無しさん:2005/05/22(日) 11:39:54
すいません、途中で書き込んでしまいました_| ̄|○

で、質問なのですが、
VB.NETで作ったクラスライブラリをアンマネージのVC++から呼ぼうとしているんですが、
何故かクラスライブラリ内のメンバ変数へのアクセスがうまくいきません。

VB.NETコードは上記のとおりで、これをビルド後VC++のプロジェクトにコピーして
RegAsm.exe Test_Dll.dll /tlb:Test_Dll.tlb
を実行して、以下のコードをデバッガで走らせました。
696デフォルトの名無しさん:2005/05/22(日) 11:40:48
これをビルド後VC++のプロジェクトにコピーして
RegAsm.exe Test_Dll.dll /tlb:Test_Dll.tlb
を実行して、以下のコードをデバッガで走らせました。

[C++:main.cpp]
#include <windows.h>
#include <atlcomcli.h>
#import "Test_Dll.tlb" named_guids named_guids raw_interfaces_only

void main(){
long ret;
HRESULT hResult;

char path[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, path);

::CoInitialize(NULL);

::CComPtr<Test_Dll::IClass1> comPtr;
//Test_Dll::IClass1* comPtr;

hResult = ::CoCreateInstance((REFCLSID)Test_Dll::CLSID_Class1, 0, CLSCTX_INPROC_SERVER, (REFIID)Test_Dll::IID__Class1, (LPVOID*)&comPtr);

hResult = comPtr->Test_Func2(1, 1);  //<-ここでメモリアクセスの例外発生
hResult = comPtr->Test_Func1(&ret);  //一行上のコードをコメントにして実行するとret=-858993460

::CoUninitialize();
}

長い書き込みになってホントすいません
よろしくお願いします。
697デフォルトの名無しさん:2005/05/24(火) 10:52:46
WTLにて、リソース無しでダイアログを作る方法は無いですかねぇ
DialogBoxIndirectの文字がどこにも無いから無理かなぁと思いつつ
698デフォルトの名無しさん:2005/05/24(火) 12:27:49
>>697
ttp://www.codeproject.com/wtl/resourcelessdialogtoolkit.asp
これはどう?お望みのものか分からないが
699697:2005/05/24(火) 12:46:32
>>698
これは便利だ、ありがとうございます
ダイアログテンプレート作成、かなり面倒なんですねぇ、侮ってましたよ
700デフォルトの名無しさん:2005/05/24(火) 21:56:42
WTLのツリービューまたはリストビューで、
(TVS | LVS)_EDITLABELSスタイルを指定して、ラベルを編集しようとするとエラーがでるんですが、普通に編集できるようにする方法はありますか?
ダイアログベースやMFC・SDKだと大丈夫なようなんですが…
701デフォルトの名無しさん:2005/05/24(火) 23:07:38
どういうエラーが出るのかも示さずに答えろというのだろうか。
702700:2005/05/24(火) 23:48:37
やっぱ必要ですよね、申し訳ない。

atlframe.hの2311行目でStack overflowが発生。

LRESULT OnCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
{ //-- ここでエラー --//
  bHandled = FALSE;
  if(m_bBlockAccelerators && HIWORD(wParam) == 1) // accelerators only
  ・
  ・

環境:
WTL 7.5.5102.0
VC++.NET2003
Windows2000sp4

です。
703デフォルトの名無しさん:2005/05/26(木) 20:26:39
スタックオーバーフローなんて一番見つけやすいバグじゃないか。
デバッグ実行してとまったところで呼び出し履歴見る!
704700:2005/05/27(金) 00:29:15
すいませんごめんなさい許してください。
CHAIN_CLIENT_COMMANDS()が原因でした…
705デフォルトの名無しさん:2005/05/28(土) 13:23:46
質問させてください。
今月のCMAGAZINE6月号に掲載されている特別記事「IEをカスタマイズして自由に操作する」を自分のPCで試してみたのですが、CSampleModuleクラスの定義がウィザードで作成されたコードに組み込まれなくて困っています。
自分の試した方法は、[新規作成]から ATLプロジェクトを新規作成し、プロジェクト名を Sample にしました。
これで Sample.cpp 内に CSmpleModuleクラス が定義されるはずなのですが、Sample.cpp 内に CSmpleModuleクラスの定義は無く、自分で CSmpleModuleクラスを定義しようとすると、
error C2011: 'CSampleModule' : 'class' 型の再定義
というエラーが出てしまいます。
多分どこかには定義されていると思うのですが・・・
具体的に何をしたいのかと申しますと、CSmpleModuleクラス内で DllRegisterServer() と DllUnregisterServer() をオーバーライドしたいのです。
問題の原因は、Cマガの記事で使用されている開発環境が、 .NET2003 なのですが 自分の環境が .NET2002 なのが原因だと思いますが、 .NET2002 でも方法はあるのではと思っています。
方法をご存知の方お願いいたします。
706デフォルトの名無しさん:2005/05/28(土) 13:28:08
>>705
クラスビューにCSampleModuleは表示されていないかい?
ダブルクリックすれば定義に飛べるよ。
707705:2005/05/28(土) 13:38:42
>>706
返信ありがとうございます。
クラスビューに CSampleModule は表示されているのですが、CSampleModuleクラスにメンバの定義が無いせいかダブルクリックしてもツリーが開かれるだけで定義は表示されません。
ちなみに開かれたツリーには CSampleModule の親クラスと思われる、 [ベースとインターフェース]というツリーが表示されます。

方法をご存知の方、お願いいたします。
708デフォルトの名無しさん:2005/05/29(日) 14:57:11
これでMSのサポートがあれば最強なんだけどなぁ
709デフォルトの名無しさん:2005/05/29(日) 16:26:54
>>708
MSのサポートなんて必要か?
710デフォルトの名無しさん:2005/05/29(日) 16:38:06
>708
ヘッダソースがあるんがから、自分で直せよ
711デフォルトの名無しさん:2005/05/29(日) 16:53:18
MSのサポートがあれば客から文句言われたとき
MSに丸投げできるじゃん。
そんなこともわからないの?
712デフォルトの名無しさん:2005/05/29(日) 17:11:13
そういう腐れた根性で
ソフトを納入される業者はたまったもんじゃないな。
713デフォルトの名無しさん:2005/05/29(日) 17:37:30
自分のプログラムが糞なのをMSのせいにするタイプだな >711
714デフォルトの名無しさん:2005/05/29(日) 18:09:28
>>711
丸投げしても自分のスケジュールが延びたりはしないだろう。。。
だから、投げておいたとしてもバグの回避策とかみんながんばって探すのでわ?
715711:2005/05/29(日) 18:51:31
なんだこんな常習テクニックも知らなかったのか。
ごくろうさま。

仕事は遊びじゃないんだから責任の所在って言うのが大事なんだよ。
誰も責任とってくれないオープンソースなんか怖くて使えない。
716デフォルトの名無しさん:2005/05/29(日) 18:57:37
遊びじゃないからこそMSのバグが原因だったとしても出すものを出さないといけないと思うのですが。。。
717デフォルトの名無しさん:2005/05/29(日) 19:00:52
まぁ最終的には運用で回避してもらうんだけどね
718デフォルトの名無しさん:2005/05/29(日) 20:54:17
出すもの出すにしても自分を弁護する理由が沢山あった方が良い。
719デフォルトの名無しさん:2005/05/29(日) 22:22:16
#define Yield()

っていったい何のためにやってるんですか?
すっげぇ邪魔なんすけど
720デフォルトの名無しさん:2005/05/29(日) 22:26:42
>>719
Win16APIにそんな名前の関数があった名残。
721デフォルトの名無しさん:2005/05/30(月) 00:27:45
>>715
> 誰も責任とってくれないオープンソースなんか怖くて使えない。
MS だって責任とらないぞ、別に。
722デフォルトの名無しさん:2005/05/30(月) 01:20:12
すでにATL/WTLの話じゃないよね。
723デフォルトの名無しさん:2005/05/30(月) 04:08:42
>>720
そーだったんすか!!ありがとうごます、Win16てっ使ったことねかったんで。
擬似マルチタスク関係?の関数の名前ぽっいすね。
とりあえず #undef Yield しときます。

>>722
いちよーこれでもWTL使ってんすよ〜〜(汗
724デフォルトの名無しさん:2005/05/30(月) 09:19:08
>いちよー
725デフォルトの名無しさん:2005/05/30(月) 10:15:32
揚げ足とりはいいとして本当にいちよーだと思っている成人にこの前出会った。
726デフォルトの名無しさん:2005/05/30(月) 10:20:03
711はMSを命令通りに動かせるんだよ。711はゲイツ。
727デフォルトの名無しさん:2005/05/30(月) 19:49:43
プロパガンダを 「プロがパンダ」 とマジで言ってる香具師がいたな
728デフォルトの名無しさん:2005/05/30(月) 20:02:27
ミニにタコ?w
729デフォルトの名無しさん:2005/05/30(月) 22:07:23
馬のミミ−(雌 5歳)に念仏
730デフォルトの名無しさん:2005/05/30(月) 22:48:36
おたまじゃくしと
お邪魔タクシー

灯台下暗しと
大正デモクラシー

お前らそんなレベルだ。
731デフォルトの名無しさん:2005/06/02(木) 02:40:30
>>726
インシデントって知ってる?
732デフォルトの名無しさん:2005/06/02(木) 21:46:55
えーまだ続けんのー
733デフォルトの名無しさん:2005/06/02(木) 21:58:35
>>732
ちっこい奴はいつまでも続けるからほっとけ。
734デフォルトの名無しさん:2005/06/02(木) 22:43:06
知らなかったようだね。
735デフォルトの名無しさん:2005/06/03(金) 13:39:56
客からの文句をインシデントを使ってMSに丸投げするって??
全然丸投げにならないだろ。
736デフォルトの名無しさん:2005/06/03(金) 13:51:31
えーまだ続けんのー
737デフォルトの名無しさん:2005/06/03(金) 20:06:57
  ┏┳┳┓     ハイ.     ┏┳┳┓
┏┫┃┃┃     雑談は   ┃┃┃┣┓
┃┃┃┃┣┓   ここまで ┏┫┃┃┃┃
┃      ┃┃┏━━━┓┃┃      ┃
┃ 雑談   ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━━━┛┗┳━┳┛┗━━━━┛
            ┏┻┓┃
        ┏━┛  ┣┻┓
        ┗━━━┫  ┗━┓
.             ┗━━━┛
738デフォルトの名無しさん:2005/06/04(土) 00:19:59
ほかに話題ないくせに強がっちゃって。
739デフォルトの名無しさん:2005/06/10(金) 19:50:08
5160ですよ。
740デフォルトの名無しさん:2005/06/10(金) 21:15:34
漏れの報告したバグがなおってるーー
741デフォルトの名無しさん:2005/06/10(金) 23:53:11
もめでたう
742デフォルトの名無しさん:2005/06/11(土) 13:27:16
じゃんじゃんバグ報告しちゃってください
743デフォルトの名無しさん:2005/06/11(土) 22:38:19
漏れが報告してないバグが直ってない・・・orz
744デフォルトの名無しさん:2005/06/11(土) 23:41:25
勇気を出して報告しよう。
ほら、恥ずかしがらずに。
745デフォルトの名無しさん:2005/06/12(日) 00:04:28
バグ報告はこちらに。
ttp://sourceforge.net/tracker/?atid=652372&group_id=109071&func=browse
書式は適当に合わせておけばいいかと
746デフォルトの名無しさん:2005/06/22(水) 00:04:57
747デフォルトの名無しさん:2005/06/22(水) 06:40:24
え?
748デフォルトの名無しさん:2005/06/27(月) 17:56:54
ATLやWTLの質問じゃない気もしますが、
WTLを使用する際に、
VCのIDEでインテリセンスをきかせたいのですが、
どうすればいいのでしょうか?
749デフォルトの名無しさん:2005/06/27(月) 17:58:55
>>748
俺は特に何かしたつもりは無いが使えている。
750748:2005/06/27(月) 18:01:11
VC7.1を使っています。
とりあえずWTLを落として解凍し、
ヘッダファイルの入ったディレクトリをIDEのオプションのProjectsのインクルードファイルに追加していますが、
WTLにインテリセンスがきかないんです。
751デフォルトの名無しさん:2005/06/27(月) 18:03:18
そしてWTLのヘッダをインクルードしてWTL::と打てば出た。
752748:2005/06/27(月) 18:11:41
>>751
それはできます。

たとえば、
class hoge : public CWindowImpl<hoge>なクラスの中で、
WTLのメッセージマップを使ったときに、
CWindowのメンバが表示されなくなるんです。
753748:2005/06/27(月) 18:57:22
解決方法を見つけました……ってこんなのあり?
http://www.codeproject.com/wtl/WTLIntellisense.asp
754デフォルトの名無しさん:2005/06/28(火) 07:07:29
VC8だとこれでもムリ
755デフォルトの名無しさん:2005/07/03(日) 00:22:26
VS9では大丈夫だった
756デフォルトの名無しさん:2005/07/03(日) 22:48:24
9?
757デフォルトの名無しさん:2005/07/04(月) 10:00:04
10
758デフォルトの名無しさん:2005/07/04(月) 12:14:49
11
759デフォルトの名無しさん:2005/07/04(月) 12:25:02
1000
760デフォルトの名無しさん:2005/07/05(火) 18:57:30
2
761デフォルトの名無しさん:2005/07/11(月) 12:15:35
保守
762デフォルトの名無しさん:2005/07/18(月) 21:14:25
誰もいないYO
763デフォルトの名無しさん:2005/07/18(月) 22:49:17
いるよん
764デフォルトの名無しさん:2005/07/18(月) 23:22:07
気のせい
765デフォルトの名無しさん:2005/07/20(水) 22:59:47
古臭い仕手株が賑わって来てるから
鬼ゴム(5196)とか日本配合飼料(2056)とかシキボウ(3109)あたりがあやしいと思う
筋の仕込みは終わってると思われ
766デフォルトの名無しさん:2005/07/20(水) 23:00:12
あ、すまん間違い
767デフォルトの名無しさん:2005/07/20(水) 23:25:39
どういう間違いだw
768デフォルトの名無しさん:2005/07/21(木) 07:15:59
高値つかみ乙
769デフォルトの名無しさん:2005/07/21(木) 13:47:09
warosu
770デフォルトの名無しさん:2005/07/23(土) 22:10:49
次のリリースのタイミングはVistaのベータ1が出たときかな。
771デフォルトの名無しさん:2005/07/24(日) 09:28:10
VistaでもWin32APIを使うの?
772デフォルトの名無しさん:2005/07/24(日) 12:03:33
.Net Frameworkベースにはならないって言う記事は読んだ事がある。
ITmedia エンタープライズ:Monadがないなら、Longhornにする意味はない
ttp://www.itmedia.co.jp/enterprise/articles/0506/15/news070.html
773デフォルトの名無しさん:2005/07/24(日) 12:40:20
∧_∧
(;´∀`) 外されたモナー
774デフォルトの名無しさん:2005/07/29(金) 00:09:38
CComboBox hoge;
hoge.

と打つとIntelliSenseがMFCの方のCComboBoxの
内容を示してくれるのはどうにかなりませんかねぇ。

WTL::CComboBox としないと正確にWTLの方を表示してくれない。
775デフォルトの名無しさん:2005/07/29(金) 00:33:39
インテリセンスの質問ばっかりだよね
776デフォルトの名無しさん:2005/07/29(金) 00:38:11
でも生産効率無視していいならそれこそSDKでイイわけで。

>>774 むしろ付けれ。MFCとの差別化の意味でね。
777デフォルトの名無しさん:2005/07/29(金) 00:41:10
MFCなんか使わないからなぁ
差別も何も
778デフォルトの名無しさん:2005/07/29(金) 00:49:34
漏れもWTLしか使ってないが、しょっちゅうスコープ解決は使ってるぞ
ATL::CStringとWTL::CStringの使い分けな。どっちのヘッダもインクルードしてるんで、明示しないと正しく使ってくれないのよ
779デフォルトの名無しさん:2005/07/29(金) 01:11:29
ATL::CStringの方が良くないか?参照カウンタあるし。
780デフォルトの名無しさん:2005/07/29(金) 01:33:19
GetWindowTextに対応してるのもATLのほうだな
でもatlmisc.hもインクルードしちゃってるのよorz
781デフォルトの名無しさん:2005/07/29(金) 08:34:24
俺はこうするのがデフォルト。
#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _WTL_NO_AUTOMATIC_NAMESPACE
782デフォルトの名無しさん:2005/07/29(金) 21:15:41
_WTL_NO_CSTRING
783デフォルトの名無しさん:2005/08/03(水) 13:10:24
VS2003のWTLで、1つのソリューションの中に複数プロジェクトがある場合で、それぞれの
プロジェクトに同名のダイアログ(CMainDlg)がプロジェクトに存在すると、ダイアログのリソース
編集画面で、ボタンクリックした時に作られるイベントハンドラのコードの実装が、違うプロジェクトの
方に入っちゃうんだけど、どうすれば直せるの?
784デフォルトの名無しさん:2005/08/03(水) 23:40:42
>>783
ボタンクリックで作らない。

てか、プロジェクト毎にクラス名くらい分けようや。
785デフォルトの名無しさん:2005/08/05(金) 07:46:12
WTL覚えようと思ったのですが、

WTLのコントロールのテンプレートクラスのメンバ関数を使いたい
かつ、独自のメンバを付け加えたり、それに飛んでくる一部のメッセージを使って何かしたい

ってときにはどうすればいいんですか?
たとえばボタンで、サブクラス化だと、WTL::CButtonとサブクラス化用のクラスの二つを使わないといけないので面倒なんです。

class OresamaSubClass : public CWindowImpl<OresamaSubClass>
{
//略
void OresamaFunction() {SendMessage(WM_SETTEXT, 0, (LPARAM)_T("俺様ボタン"));}
}

//使うとき
WTL::CButton wtl_btn ;
OresamaSubClass btn ;
wtl_btn.Create(ほげほげ) ;
btn.SubclassWindow(HWND(wtl_btn)) ;
//WTL::CButtonのメンバ関数はwtl_btnから
//独自のメンバ関数はbtnから。


これをこんな風にできたらいいですが。

OresamaButton btn ;
btn.Create() ;
//btnからWTLのメンバ関数も独自のメンバ関数も使える。
786デフォルトの名無しさん:2005/08/05(金) 13:00:58
何言ってるのかよくわからないけど、これでも読んでみ。
ttp://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/ATLwindowing/
787785:2005/08/05(金) 16:22:13
できたみたいです。

class OresaamButton : public CWindowImpl<OresamaButton, WTL::CButton>
{
//メッセージマップでもメンバ関数でもなんでも
}


最初、こうやればCButtonを継承できるかと思っていたんですが。

class OresamaButton : public WTL::CButton


ATLやWTLに関する分かりやすいドキュメントってありませんか?
特にWTLに関してはググるよりヘッダ読んだほうが早いような気がするんですが……。
788デフォルトの名無しさん:2005/08/05(金) 21:11:17
789デフォルトの名無しさん:2005/08/08(月) 13:00:51
>>787
ちと古いが、ATLInternals 読んでおけ。
790デフォルトの名無しさん:2005/08/09(火) 16:06:04
擬似継承。
791デフォルトの名無しさん:2005/08/10(水) 20:41:06
質問なんですが、CAxWindowでActiveX使用しているのですが、
動作しているActiveXのスレッドIDを取得したいのですが、方法ご存じないでしょうか、
最初、CAxWindowのコンストラクターでGetCurrentThreadId()で取得してみたのですが
どうも動作してるActiveXのスレッドとは違うようでした。
よろしくお願いします。
792デフォルトの名無しさん:2005/08/11(木) 16:36:40
>>791
どうして違うスレッドと言い切れるのかわからないが。

もし違うというのであれば、CAxWindowを継承したクラスの
インスタンスを作成したスレッドとそのインスタンスのWindowをCreateしたスレッドが違うことになる。

そのクラスのOnCreateの中でGetCurrentThreadIDを呼びだす、というのではどう?
793791:2005/08/11(木) 20:49:48
>792
レスありがとうございます。

>どうして違うスレッドと言い切れるのかわからないが。
デバッカーで追いかけると「CreateControl」をコールした瞬間にスレッドが作られるのでそう考えました。
(デバッカーのスレッド一覧表示を監視してました)

>そのクラスのOnCreateの中でGetCurrentThreadIDを呼びだす、というのではどう?
CAxWindowのCreateをオーバライトしてGetCurrentThreadIDはやってみたのですが、
これですと「CreateControl」をコールした瞬間に出来たスレッドIDではなくCAxWindowのスレッドIDが戻ってくるようでした。

何か情報ありましたらお願いします。
794デフォルトの名無しさん:2005/08/11(木) 20:55:18
ウインドウがワーカスレッド作るんだろ。何でそのスレッドIDが欲しいと思うか知らんが。
ToolHelpAPIでThreadを列挙して、差分でも取ったら?
795デフォルトの名無しさん:2005/08/11(木) 21:56:44
WTLでツールバー上にコンボボックスを載せる方法が分かりません
どなたかご存知ないでしょうか?
796デフォルトの名無しさん:2005/08/12(金) 00:21:22
797デフォルトの名無しさん:2005/08/12(金) 01:06:47
それ厳密には違うと思う。
一個のツールバーのボタンの並びの中にコンボボックス埋め込みたいんじゃないの?
区切り線の上に無理矢理配置させるとかかなりトリッキーな方法使わないとできないけど。

MFCだとダイアログバーってのがあったけど、複数コントロール細長のダイアログ作って
リバーとして登録するだけの代物だな。もちろんWTLでも可能。
でもこれだとシェブロンが(少なくとも自動的には)描かれない。
798デフォルトの名無しさん:2005/08/17(水) 19:17:52
ATLを使ってCOMコンポーネントを作ろう(VC7では初めて)としたら、
なんじゃこりゃ、って感じで困惑してるんですが。
ATLシンプルオブジェクト
[
coclass,
threading("apartment"),
vi_progid("uu.www"),
progid("uu.www.1"),
version(1.0),
uuid("4FA2C351-B4C6-4548-950B-53E49347AD4B"),
helpstring("www Class")
]
class ATL_NO_VTABLE Cwww :
public Iwww
{
public:
Cwww(){}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct(){ return S_OK; }
void FinalRelease() {}
public:
};
IwwwはDualインターフェースなんだけど、
そもそもIUnknownの実装やIDispatchの実装を担う部分がない。
このクラスファクトリも定義されているところも見当たらない。
一体どうなってるの?ヘッダにidl属性[・・・]が入っている時点でもはや
C++じゃないし。
799デフォルトの名無しさん:2005/08/17(水) 20:10:47
coclass属性が付くと基本クラスにCComObjectRootExとCComCoClassが自動的に追加される。
800デフォルトの名無しさん:2005/08/17(水) 20:13:41
>>798
ATL ウィザードのどっかに、”属性”がどーたらいうオプションがあるから、
ソレをはずせば、旧来の(VC6時代の)コードが吐かれる。
801800:2005/08/17(水) 20:18:11
ちなみに、ATLプロジェクトの新規作成時のウィザードの話。

ちなみに属性プログラミングをすると、IDL が作成されないので、
個人的には便利だと思ってるけど、細かい変更が出来ないので
オレは結局属性は使ってない。
802798:2005/08/17(水) 20:20:22
thxです。
属性は何かちょっと気持ち悪い気がしますね。
803デフォルトの名無しさん:2005/08/17(水) 21:15:38
>>799
そうだったのか
ATLはもうちょっとわかりやすくならんのか
804デフォルトの名無しさん:2005/08/17(水) 22:28:03
属性は書くコード量が減って便利だと思うんだけどな〜
展開されたコードを見ると反吐が出るが(w
805デフォルトの名無しさん:2005/08/18(木) 00:58:01
「ATLインターナル」読んで脳みそが溶けた
806デフォルトの名無しさん:2005/08/18(木) 12:18:06
ATLを勉強するとテンプレートクラスの可能性に目覚めてしまう。
ところでみんな読んでるの?>ATLInternals

この前買おうと思って書店いったらおいてなかった。
というかATL関係の本が1冊しかなかった。
.NETの本はやたらあるんだが。
MSの主張とは裏腹にまだまだ必要とされてると思うんだけどな。
807デフォルトの名無しさん:2005/08/19(金) 01:41:50
C用のインターフェイスを直接呼び出せるC++の需要はまだまだおおいだろうね。
今やってるのも.netって話だったけど面倒だからATLで作っちゃった。
でもATLもBEGINXXとかマクロいっぱいで勉強する気がおきん。
808デフォルトの名無しさん:2005/08/20(土) 11:17:26
WTLのCScrollContainerってどんな用途に使う?
809デフォルトの名無しさん:2005/08/25(木) 18:43:03
LayeredWindowでActiveXの表示をアルファー付きで透過させようとしているんですが、
アルファー付きビットマップの取得には、IViewObjectExのDrawで取得してるんですが、
画像自体は正しく拾えてきてるようなんですが、アルファーチャンネルが正しく拾えなく困ってます。
アルファーチャンネルの数値を見ると、0かFFしか無い感じです。
何方かアルファーチャンネルの取得の仕方をご存じありませんでしょうか。
IOleInPlaceObjectWindowlessがかなり怪しいと感じてるんですが。
何か情報ご存じでしたら教えてください。よろしくお願いします。
810デフォルトの名無しさん:2005/08/25(木) 18:53:08
>>809
前にもコメントしたかもしれませんが、無理です。

そもそも IViewObject が描画対象とする DC は普通の GDI の DC なわけで、
ほぼ全てのActiveXオブジェクトは、どうあがいてもαチャンネルなど描画して
はくれません。

 InPlace で Windowless なCOMオブジェクトは、単に与えられたDCの既存の
背景の上に上書きする形で自分自身を描画しているだけです。

時間が掛かってもかまわないのであれば、黒い背景の上に描画、白い背景の
上に描画、と2度繰り返して差分を取って反転すればほぼα情報に近いものが
得られるような気もしますけど・・・
811809:2005/08/25(木) 19:16:39
810さん
コメントありがとうございます。
私はこちらへの書き込みは初めてですが、以前のコメントは見逃してしまいました。
すれを頭から見てみます。すいません。

このURLにある商品はFlashのActiveXのプラグインを使用して背景を透過しているのですが、
これと似たようなことをしようと考えてます。
htt://www.screentime.com/software/mprojector/
こちらはサンプルの実行ファイルです。
htt://www.screentime.com/downloads/red_rubber_ball.exe

とりあえず自分もFlashを使用して透過の実験を行っているのですが、FlashPlayer7であれば一部(デバイスフォントの表示が何故が透過されてしまう)
を除いてコンテンツのアルファーが反映され表示されていたんですが、
FlashPlayer8にバージョンアップしてしまうと挙動が変わり、先に書き込みしたような状況になってしまっています。

このソースを参考にしています。
ttp://s-tomo.sakura.ne.jp/haruna/040707.cpp

また何か情報ございましたらよろしくお願いします。
812デフォルトの名無しさん:2005/09/07(水) 22:17:48
813デフォルトの名無しさん:2005/09/07(水) 22:59:03
>>811
ヒント: ウィンドウレス
814809:2005/09/08(木) 10:33:11
>813さん
レスありがとうございます。

>ヒント: ウィンドウレス
これって「IOleInPlaceObjectWindowless」の事指してますか?
自分は、名前からしてこれが"くさい"と思いATLのヘッダー見てみたんですが、自分では解決出来そうな情報が見つけられませんでした。
出来ましたら、もう少し具体的に教えていただけると助かります。
よろしくお願いします。
815デフォルトの名無しさん:2005/09/10(土) 10:07:07
完全に廃れてるね。
Windows用の軽量ウィンドウクラスライブラリとしては今は何がはやってんだろ?
816デフォルトの名無しさん:2005/09/10(土) 10:15:04
今まで流行なんか無かったけど。
817デフォルトの名無しさん:2005/09/10(土) 16:27:37
>>815
独 自 実 装
818名無しさん@そうだ選挙に行こう:2005/09/10(土) 18:25:01
>>815
てか、2chにカキコがなかったら廃れたことになるのかよ w
819デフォルトの名無しさん:2005/09/15(木) 07:05:57
>>818
一つの指標にはなるだろうよ。英語圏は知らんがなー
820デフォルトの名無しさん:2005/09/29(木) 23:59:50
WTLって何て読むんですか?
821デフォルトの名無しさん:2005/09/30(金) 00:14:20
読むのではない。感じるんだ。
822デフォルトの名無しさん:2005/09/30(金) 01:36:11
わっとる?
823アホ:2005/09/30(金) 01:55:18
824デフォルトの名無しさん:2005/09/30(金) 02:00:30
825デフォルトの名無しさん:2005/09/30(金) 23:04:24
メニューに普通にラジオチェックをつけたいんですが、
ttp://groups.yahoo.com/group/wtl/message/1317
↑+自己処理以外に何か良い方法はありますか?

SetMenuItemInfo、CheckMenuRadioItemは両方ともチェックがつかないので駄目でした。

環境:
win2000sp4
VC++.NET2003
WTL 7.5.5249.0
826デフォルトの名無しさん:2005/09/30(金) 23:47:10
ないんじゃないか
827デフォルトの名無しさん:2005/10/01(土) 02:09:13
あれってMFCが独自にやってるんだっけ
828デフォルトの名無しさん:2005/10/01(土) 09:57:08
MFCのソース見れ
829825:2005/10/01(土) 12:23:29
>>826
了解しました、ありがとうございます。
830デフォルトの名無しさん:2005/10/02(日) 14:32:29
年末に一度リリースがあります
831デフォルトの名無しさん:2005/10/08(土) 09:07:42
WTL 7.5.5280.0 Beta1
キタ
832デフォルトの名無しさん:2005/10/08(土) 17:32:55
Beta1?まさかそんなの出るわけないじゃん。
そんなの今まで無かったしさぁ。
まったく騙そうったってそうはいかな・・・・ほんまや!
833デフォルトの名無しさん:2005/10/08(土) 18:12:08
ここにきて活発になってきたな
834デフォルトの名無しさん:2005/10/12(水) 02:46:29
、と思ったらここにきてまた過疎化
835デフォルトの名無しさん:2005/10/12(水) 09:44:06
珍しくSoも更新に反応してない…
836デフォルトの名無しさん:2005/10/12(水) 21:36:29
してるよ?
837デフォルトの名無しさん:2005/10/13(木) 22:42:16
So氏頑張ってるなぁ。
838デフォルトの名無しさん:2005/10/13(木) 23:37:01
なんでべーたなんだろう
839デフォルトの名無しさん:2005/10/14(金) 20:28:44
正式公開が近いんじゃない?
840デフォルトの名無しさん:2005/10/17(月) 10:38:27
So氏ってなに?
841デフォルトの名無しさん:2005/10/17(月) 18:00:24
842デフォルトの名無しさん:2005/10/17(月) 18:34:57
ttp://codezine.jp/a/default.aspx?cid=146
↑ここでの評価が五つ星なのだが、このスレの住人が投票したのかな。
むしろ下の個人HPでの実績にたいする評価っぽいのだが・・・。
ま、不満はないけどね。WTLを日本語ドキュメントにしてくれてる貴重な人だし。
ttp://home.att.ne.jp/banana/akatsuki/
843デフォルトの名無しさん:2005/10/17(月) 20:43:19
>>842
下のページは読みやすいけど、上のはちょっとね・・・
844デフォルトの名無しさん:2005/10/18(火) 10:48:15
かっとし更新sage
845デフォルトの名無しさん:2005/10/18(火) 12:48:41
>>841
無愛想な画面しか表示されませんけど・・・
846デフォルトの名無しさん:2005/10/18(火) 19:30:13
845 名前:デフォルトの名無しさん[sage] 投稿日:2005/10/18(火) 12:48:41
>>841
無愛想な画面しか表示されませんけど・・・
847デフォルトの名無しさん:2005/10/18(火) 20:11:26
>>845
無限の情報への入り口と言いたまへ
848デフォルトの名無しさん:2005/10/20(木) 22:11:52
今ダイアログベースのアプリで、でキー入力のメッセージを受信しようとしてるんですが、うまくいきません。
とりあえず次のように実装してるんですが、一向にキーの押下情報などのメッセージが受信できません。

class CtestDlg : public CDialogImpl<CtestDlg>
{
public:
virtual BOOL PreTranslateMessage ( MSG * pMsg )
{
ATLTRACE( "uMsg=%x\n" , pMsg->message ) ;
return TRUE ;
}

BOOL PreTranslateAccelerator( MSG * pMsg )
{
ATLTRACE( "uMsg=%x\n" , pMsg->message ) ;
return TRUE ;
}

BOOL TranslateMessage(MSG* pMsg)
{
ATLTRACE( "uMsg=%x\n" , pMsg->message ) ;
return TRUE ;
}
}

何方か情報がありましたら、教えてくださいよろしくお願いします。
849デフォルトの名無しさん:2005/10/20(木) 22:38:46
>>848
PreTranslateMessageはWTL::CMessageFilterを継承していなければならない。
850デフォルトの名無しさん:2005/10/21(金) 02:00:13
>>848
AddMessageFilterは呼んだの?
851デフォルトの名無しさん:2005/10/21(金) 07:06:05
ウィザードで作れよ
852デフォルトの名無しさん:2005/10/28(金) 23:48:57
VS2005がMSDNでリリースされ、11月7日以降一般にもリリースされるということは、

WTL8.0クル━━━(゚∀゚)━━━ !!!
853デフォルトの名無しさん:2005/10/29(土) 06:21:56
足し算をするカスタムインターフェースを持つ、原始的なCOMサーバーDLLを書いてみたのですが、(COMは初めて)
const CLSID ID_Foo = {1, 2, 3, {4, 5, 6, 7, 8, 9, 10, 11}};
const IID IID_IFoo = {11, 10, 9, {8, 7, 6, 5, 4, 3, 2, 1}};
class IFoo : public IUnknown {
public:
STDMETHOD_(DWORD, FooAdd)(DWORD a, DWORD b) { return a + b; }
IFoo() : m_dwRef(0) {}
STDMETHOD(QueryInterface)(REFIID iid, VOID **ppI) { /* 省略 */ }
STDMETHOD_(ULONG, AddRef)() { return ++ m_dwRef; }
STDMETHOD_(ULONG, Release)() { /* 省略 */ }
private:
DWORD m_dwRef;
}; /* 以下略 */
これを使うクライアントはどう書けばいいのでしょうか? 例えば、DLLでないかもしれなくても、直接pifoo->FooAdd()などとしてもよいのでしょうか?
また、他人にこのサーバを使わせるには、以下のconst IID...とclassの部分をヘッダファイルにして渡せばいいのでしょうか? それともタイプライブラリというものを作るのでしょうか?
あと、おかしいところを指摘して下さい。
const IID IID_IFoo = {11, 10, 9, {8, 7, 6, 5, 4, 3, 2, 1}};
class IFoo : public IUnknown {
public:
STDMETHOD_(DWORD, FooAdd)(DWORD, DWORD);
};
void main() {
IFoo *pifoo = NULL;
CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(L"Foo", &clsid);
CoGetClassObject(clsid, CLSCTX_ALL, NULL, IID_IFoo, (void **)&pifoo);
DWORD dwResult = pifoo->FooAdd(1, 2);
printf("FooAdd(1, 2) = %d\n", dwResult);
pifoo->Release();
} /* エラーチェックは省略 */
854デフォルトの名無しさん:2005/10/29(土) 09:18:01
根本的に何も分かってないな
855デフォルトの名無しさん:2005/10/29(土) 09:37:16
>>853
いきなりサーバを作ろうと考えるな。とりあえずクライアントを使うだけに徹しろ。
856デフォルトの名無しさん:2005/10/29(土) 10:36:30
>>853
Inside COMでも読んでみなよ。それからここに来てね。
857デフォルトの名無しさん:2005/10/29(土) 11:34:57
>>853
このスレできくんだからサーバー側はATLのウイザード使えばいいのに。
クライアントはヘッダーとxxx_i.cつかえばOK。#importとかもあるけど
あとFooAddのリターンおかしいよ
858デフォルトの名無しさん:2005/10/30(日) 01:00:25
フゥー!(foo)
859デフォルトの名無しさん:2005/10/31(月) 00:22:01
つか、

const CLSID ID_Foo = {1, 2, 3, {4, 5, 6, 7, 8, 9, 10, 11}};
const IID IID_IFoo = {11, 10, 9, {8, 7, 6, 5, 4, 3, 2, 1}};

こんな書き方はじめてみたのは俺だけ?

>>853
ATL Server/Client のサンプルでもみれば
860デフォルトの名無しさん:2005/10/31(月) 00:32:09
uuidgen/guidgenを知らないのだろう
861デフォルトの名無しさん:2005/11/01(火) 01:52:56
そもそも、レジストりを使わずにCOMはできるのでしょうか?
862デフォルトの名無しさん:2005/11/01(火) 07:34:36
XPならできる
863デフォルトの名無しさん:2005/11/01(火) 18:25:59
そうでなくともインプロセスで、COM関係のAPIを全く使わず、
サーバのDLLがインターフェイスへのポインタを返す関数を独自に公開してしまえば……。

駄目か?
864デフォルトの名無しさん:2005/11/01(火) 18:47:41
それはもうすでにCOMっぽいものでしかないような。
865デフォルトの名無しさん:2005/11/01(火) 19:48:14
CAxHostWindowについて書かれてる本、もしくはURLないすかね。
あと「ATL インターナル」に載ってるサンプルコードってどこいったらありますかね?
情報ありましたら、よろしくお願いします。
866デフォルトの名無しさん:2005/11/01(火) 21:04:24
>>863
直接DllGetClassObjectを呼べば出来る。
十分COMだと思うが。
867デフォルトの名無しさん:2005/11/01(火) 22:55:05
CoLoadLibrary()も使えば完璧にCOMだろう。
こいつを使おうとすればCoInitialize(Ex)も必要になるしな。
868デフォルトの名無しさん:2005/11/01(火) 23:16:24
>>863
Firefox (だっけ?)とか、RealPlayer とかはそんな感じだよね。
869デフォルトの名無しさん:2005/11/02(水) 02:24:15
どの辺が知りたいの?>>865
870デフォルトの名無しさん:2005/11/02(水) 16:39:32
>869さん
レスありがとうございます。
具体的な問題としては、CAxWindow、CAxHostWindowでActiveXコンポーネントをインスタンス化したウインドウで「WM_KEYDOWN、WM_KEYUP」のイベントを取得したいんですが、
キーを押しても一向に流れてこないんですよ、「WM_SYSKEYDOWN、WM_SYSKEYUP」は来るんですが、
自分はまだCOM、ATLの知識が乏しいもので、具体的なサンプルなどどこかに無いものかと思いまして。
何か情報ありましたら、よろしくお願いします。
871869:2005/11/02(水) 23:51:17
正しいやり方かどうかわからないけど、
CAxWindow を継承したビューで

BOOL PreTranslateMessage(MSG* pMsg)
if((pMsg->message < WM_KEYFIRST || pMsg->message > WM_KEYLAST) &&
(pMsg->message < WM_MOUSEFIRST || pMsg->message > WM_MOUSELAST))
return FALSE;

if ( pMsg->message == WM_KEYDOWN ) {
return SendMessage(pMsg->message, pMsg->wParam, pMsg->lParam);
}

return (BOOL)SendMessage(WM_FORWARDMSG, 0, (LPARAM)pMsg);
}

みたいにやって受け取るのはダメ?
正しいやり方をご存知のかたは教えていただけると幸い

ちなみに、こことか参考になるかな?

http://www.codeproject.com/wtl/wtl4mfc6.asp
の Keyboard Handling のセクションとか

そして ATL インターナルのソースは
http://www.wiseowl.com/downloads/downloads.aspx から入手可
872デフォルトの名無しさん:2005/11/06(日) 13:57:38
ちょ、おまっwwwww見にくいwwwww
頑張るのはいいけど方向違うwwww
873デフォルトの名無しさん:2005/11/06(日) 13:58:46
誤爆スマソ
874869:2005/11/06(日) 14:48:27
一瞬俺かとおもったけど、もっといいやり方知っている人いる?
875OLE馬鹿:2005/11/07(月) 13:32:41

>>865

とりあえず
つ <Inside OLE 第二版>


っていうか、
CAxHostWindowでActiveXコンポーネントをインスタンス化したウインドウで
*だれ*の WM_KEYDOWN取りたいかによって違うよ。

きみと違ってみんなエスパーじゃないんだから、
はっきり書かないとわかんねぇよ。


876853:2005/11/12(土) 06:28:52
みなさん、どうもありがとうございます。
重大な事を書き忘れていました。
私はVCでなく、BCコマンドライン無料版(BCC)を使っています。
VCは使ったことがありません。
ですから実際の所、ATLもクラスウィザードもわかりません。
以前はCOMのスレがあったような気がするのですが、無くなったみたいなのでここに来ました。
Inside COM/Inside OLEは欲しいのですが、高いです。
それでMSDNで勉強しています。英語なので難しいですが・・・

Platform SDKは落としたいのですが、大きすぎます。アナログ電話ですから・・・
真に無料のプログラミングを目指しているので、電話代がかかるものはなるべく落とさないようにしています。(だから無料でもBCBは使っていません)
ちなみに、MIDLコンパイラが欲しいのですが、SDK以外にはあるでしょうか?

>>855
オートメーションやその他のインターフェースのサーバー(IEなど)について一応動作するクライアントを書いてはみたのですが、タイプライブラリの使い方がわからないのでヘッダが存在するオブジェクトしか操作できません。
それで最も簡単なサーバーについてタイプライブラリを作ってみたいと思ったのですが・・・
クライアントからのタイプライブラリの使い方を理解するのにいい既存のオブジェクトはあるでしょうか?

>>857
xxx_i.cというのは、どうやると生成されるのですか? IDEでサーバーをコンパイル? MIDL.EXE?
それと、FooAddのリターンは何がおかしかったですか?

あと一般的な質問があります。

1. たいていのコードでは、インターフェースと実装は、別のクラスに分けられていますが、これはなぜなのでしょうか? 分けないとどういう不都合が起こるのでしょうか?

2. COMの一般的なコードでは、Co/CreateInstance()が「オブジェクト」の生成を担うことになっているようですが、IClassFactoryはサポートせず、Co/DllGetClassObject()で目的オブジェクトの生成を行う、というスキームはあり得ないのでしょうか?
さらに、オブジェクトが必要なく、グローバルな関数機能だけが欲しい場合に、私が書いたようにすることはないのでしょうか?
877デフォルトの名無しさん:2005/11/12(土) 09:17:47
>>876
1.
インターフェイスと実装を分離しておけば、実装クラスに変化があっても、
インターフェイスには何の変化もなくバイナリ互換でそのまま使い続けられる。
COMもそれを取り入れた。

2.
無理。そんなことしたいなら別にCOMを使わないで好きにやればいい。
878デフォルトの名無しさん:2005/11/13(日) 01:19:15
>>876>>853
>Platform SDKは落としたいのですが、大きすぎます。アナログ電話ですから・・・
>真に無料のプログラミングを目指しているので、電話代がかかるものはなるべく落とさないようにしています。(だから無料でもBCBは使っていません)
>ちなみに、MIDLコンパイラが欲しいのですが、SDK以外にはあるでしょうか?

この時代にネタか?
879デフォルトの名無しさん:2005/11/13(日) 01:40:18
>>878
853を相手にするのはやめよう。
InsideCOMは買えないとか、PSDKも落とせないとか、もういいよ。
880デフォルトの名無しさん:2005/11/13(日) 11:57:58
相手にしないとレス0なんだけどな

InsideCOMって5000円もしたのか・・・
881デフォルトの名無しさん:2005/11/14(月) 08:18:04
> 相手にしないとレス0なんだけどな

悲しい。そんなスレ悲しすぎる・・・
882デフォルトの名無しさん:2005/11/15(火) 18:26:42
CSimpleArray<CAtlString> strArray =
{
_T( "初期化項目1" ) ,
_T( "初期化項目2" ) ,
_T( "初期化項目3" ) ,
_T( "初期化項目4" )
} ;

こんな事したいんですけど、どう書けばできますか?
883デフォルトの名無しさん:2005/11/15(火) 19:41:01
>>882
できないので個別に追加する
884デフォルトの名無しさん:2005/11/15(火) 20:16:42
("初期化項目1")("初期化項目2")("初期化項目3")(.・・・)
みたいなのならできたような気がする。
つまり演算子を隔てて初期化項目を並べればよかったはず。
templateスレか何かで出た様な。
885デフォルトの名無しさん:2005/11/15(火) 20:40:26
#include <algorithm>
#include <functional>

PCTSTR pszInitializer[] =
{
    _T("初期化項目1"),
    _T("初期化項目2"),
    _T("初期化項目3"),
    _T("初期化項目4"),
};
CSimpleArray<CAtlString> strArray;
std::for_each(pszInitializer, pszInitializer + sizeof pszInitializer / pszInitializer[0],
    std::mem_fun1_ref(CSimpleArray<CAtlString>::Add);

コンパイルは試していないから少々間違っているかもしれない。
こんなことするなら初めからstd::vector使うべきか。
886デフォルトの名無しさん:2005/11/15(火) 21:36:47
>アナログ電話ですから・・・

一晩もかからんだろ
887デフォルトの名無しさん:2005/11/15(火) 21:44:42
一日はかかるだろ。
888デフォルトの名無しさん:2005/11/15(火) 21:47:05
CDの注文ができた気がする。
889デフォルトの名無しさん:2005/11/18(金) 20:26:16
>>882
これでコンパイルが通った。(VC8)
もっと簡単な書き方があるかもしれん。

template<class T>
class CSimpleArrayEx2 : public CSimpleArray<const T&>
{
public:
CSimpleArrayEx2& operator()(T t)
{
Add(t);
return *this;
}
};

CSimpleArrayEx2<int> sAry = CSimpleArrayEx2<int>()(1)(2)(3);
sAry(4)(5)(6);
890デフォルトの名無しさん:2005/11/19(土) 05:21:51
やべ、危うく2ちゃんに書き込むとこだったよ・・・
891デフォルトの名無しさん:2005/11/19(土) 16:54:14
ちゃんちゃかちゃんちゃん
ちゃちゃっちゃちゃんちゃん

ちゃんちゃかちゃんちゃん
ちゃちゃっちゃちゃんちゃん

♪灯油を給油しようとお〜も〜たら〜
 あふれてこぼれちゃいました〜(自動)

チックショ
892デフォルトの名無しさん:2005/11/19(土) 19:38:42
どうも。

スプリッタウィンドウにタブビューを貼り付けて利用してるんですが、
どうも奇妙な現象が発生中。

/ML時に、タブが配置される(タブが増減する)領域が、
起動前の背景と同じになってしまいます。
…なぜか背景ブラシが設定されてないんです。
何故なんでしょうか?
因みに/MLd時は正常に動作してます。

[環境]
VCTK1.01 WTL7.5.5280.0 Beta1 ATL3.0
893デフォルトの名無しさん:2005/11/20(日) 16:27:50
>>892
変数の初期化忘れとかじゃなくて?
894デフォルトの名無しさん:2005/11/20(日) 17:36:27
>>893
変数ですか…?
う〜ん、現在の状態では、特に変数は使って無いです…(スケルトンに近い)

もしかして、ATL or WTLのメンバ変数の事でしょうか?

デバック版のLIBCD.libで上手くいって、
LIBC.libでヘマる理由が不明で、かなり困惑中。
895892:2005/11/20(日) 17:46:05
>>894

親子関係か、メッセージの反射あたりのような気がするがメッセージ
マップとか、Window を作っているあたりのソースを出してもらえれば
検証するよ?

うpろーだに揚げてくれても可
896デフォルトの名無しさん:2005/11/20(日) 18:12:39
>>895
宜しくお願いします。私では、サッパリなので…

ttp://kuroneko-upload.no-ip.info/uploader/sn/src/up1955.zip

一応、丸ごと入れときました。後、必要ないかもしれませんが、
例のオプションだけ変更して、ビルドしたバイナリも同梱しておきました。
897892:2005/11/20(日) 18:23:45
ちょ、プロジェクトファイルはw
現象は確認できたけど。
898デフォルトの名無しさん:2005/11/20(日) 18:49:28
VCTKなんでないんですよ(泣)

コンパイル時に使っているbatファイル↓(*要PATH設定)
ttp://kuroneko-upload.no-ip.info/uploader/sn/src/up1958.zip

これをもし、使うならソースファイルと同ディレクトリで実行して下さい。

日本語の正式版でたらVC8(勿論Express版)使いたい…12月が待ち遠しいです
899892:2005/11/20(日) 19:18:18
ようやくコンパイルして /ML でビルドしてみたけど、ちゃんと
動いているなぁ・・・。

たぶんソースの問題ではなくて define されている値の問題のような
気がするんだけど、

define.h の
#define WIN32_IE0x0200
は、まずいんじゃない?

少なくとも俺の環境だと、
fatal error C1189: #error : WTL requires IE version 3.0 or higher

とでるし、commctrl.h の ICC_TAB_CLASSES をみると

#if (_WIN32_IE >= 0x0300) のなかで定義されてるから。

とりあえず、

#define WIN32_IE0x0300

にしてみたらどう?

#はずしてたらごめん

900デフォルトの名無しさん:2005/11/20(日) 19:37:30
うう…そんなエラーmsg出た事無い(泣)。
IDEがある人が羨ましいです。

defineの値を変更してみたのですが、変化がありませんでした…
一応、全てのdefineを消してみたりもしたのですが、駄目でした。
901デフォルトの名無しさん:2005/11/20(日) 19:50:24
>#define WIN32_IE0x0300
#define _WIN32_IE 0x0300
じゃない?(先頭にアンダーバー)
ただのミスかもしれんが。
902892:2005/11/20(日) 19:59:17
>>901
たしかに

>>900
とりあえず、_WIN32_IE 0x0300 にしてみて

それと、俺のコンパイルオプション
/O1 /D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG"
/D "_ATL_MIN_CRT" /D "_MBCS" /FD /ML /GS

こっちがリンカのオプション
/OUT:"Release/app.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:WINDOWS /MACHINE:X86
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
odbc32.lib odbccp32.lib
903892依頼者:2005/11/20(日) 20:01:31
>>901
そうですね。修正したら、>>899にあるエラーメッセージが出るようになりました。
しかし、修正しても背景ブラシが設定されないままです…
904892依頼者:2005/11/20(日) 20:12:24
>>902
提示されたオプションでビルドしてみましたが、結果は変わりませんでした…
何故…?

すみません…なんかかなり面倒ですよね、コレ。
905892:2005/11/20(日) 20:27:02
再現しないので、わからんなぁ・・・

DECLARE_WND_SUPERCLASS(NULL, CTabCtrl::GetWndClassName())

コレをコメントアウトしてみたら?
906デフォルトの名無しさん:2005/11/20(日) 20:42:18
WTLのスプリッタウィンドウとかペインコンテナの上にコントロール貼り付けると
comctl ver 6.0(XPビジュアルスタイル)の場合にそんな現象出てた気が…
サブクラス化して背景ブラシ設定して回避したんだっけかなあ。
Rebarもスタイルによっては、上2ドットくらい背景透けてたこともあったかも。
907892& ◆mVxpvGktgc :2005/11/20(日) 20:45:17
コメントアウトしてみましたが駄目でした…
908892:2005/11/20(日) 21:05:45
>>905

ためしに Windows 2000 で試してみたけど、彼のビルドしたやつは
背景が描画されなかったので、ちょっと違うような気もする。

再現しないのは、俺が ATL 7.1 だからか?
909892依頼者:2005/11/20(日) 23:00:27
>>906
タブコントロールは背景ブラシ設定が普通に出来ないみたいで、
今やっていましたが、出来ませんでした
910デフォルトの名無しさん:2005/11/21(月) 09:02:45
>>898
そのbatでやってみたけど、うちでも正常だな。因みに
#define _ATL_NO_DEFAULT_LIBS
#define _ATL_NO_AUTOMATIC_NAMESPACE
を消さないとビルド出来なかった。

こちらはATL7.1 WTL7.5。環境が違うので何とも言えんな…
911892依頼者:2005/11/21(月) 15:25:22
>>910
defineを消してみましたが、やはり変化無しです…

どうもdefineは関係ないと思われます。一応、いろいろ消してみたので。
912デフォルトの名無しさん:2005/11/21(月) 22:05:38
まて、VCTKにはどこのATL3を入れたんだ?
913893:2005/11/21(月) 23:02:05
#ずっと 892 って名乗っててすまん。素で間違ってた。

ためしに VC6 + ATL3.0で試してみたが再現しない

http://groups.yahoo.com/group/wtl/message/11898

ここをみると、正式にサポートしてないみたいだね。
ってことは、PlatformSDK の ATL を無理やり?使ってると推測して、

Win64\ATL にある atldef.h のバージョンは確かに3.0になってるけど、
VC6 でインストールされる ATL と DIFF 取ってみるとずいぶん差分が
あるんだよね(修正だけかどうかわからん)

http://www.kakaku.com/prdsearch/detail.asp?PrdKey=03107010096

買ってもそんなに高くないような気がするけど

同じ環境で試している人のレスを待ったほうがいいかも
914デフォルトの名無しさん:2005/11/21(月) 23:30:54
>>913
PSDKのATL3.0はそのままではWin32で使えない。
ビルドはできるがランタイムエラーが発生するらしい。

Microsoft Visual C++ Toolkit 2003 質問箱
http://pc8.2ch.net/test/read.cgi/tech/1109618655/53
915893:2005/11/21(月) 23:34:26
>>914

そうでしたか、フォローありがとうございます。

いや、再現できないし、ググッてみると、VC++ 2003 Toolkit + PSDK ATL
っていう組み合わせを使っている人がひっかかったので、892 ももしかして
そういう環境だから、おかしいのかな?と思ったんで
916デフォルトの名無しさん:2005/11/21(月) 23:36:04
ATL使うならVC買えってことだな
917892依頼者:2005/11/22(火) 00:54:05
皆さん情報ありがとうございます。

>>912-915
記憶が曖昧なのですが、言われてみればそうかもしれません…
ただ、PSDKからとって来た事は間違いないでしょう。
(DSDKにはありませんよね?)

ただ、>>914のリンク先の記述と、こちらの持ってるatlwin.hが違う…
単純にバージョン違いならいいのですが。

WTLは完全にフリーで使えるライブラリだと思ってたのに…残念です
918デフォルトの名無しさん:2005/11/22(火) 02:55:20
VC8Express英語版で WTL 使える。
警告がウザイ以外は今のところ問題無いよ。

http://pc8.2ch.net/test/read.cgi/tech/1131590396/16-17
919914のリンク先の53:2005/11/22(火) 04:15:49
>>917
あれは一つ前(2003年2月版だったかな?)のPSDKに入ってたATLです。

最新のPSDKのは、下のスレで別の人が対処法を書いています。

VC6使いがVC8 Expressを使ってみるスレ
http://pc8.2ch.net/test/read.cgi/tech/1131590396/17

PSDKに付属していないatlthunk.libの中にあると思われる関数を
直接atlbase.hに書き込むという対処法で、これで確かに動くようには
なるのですが、何せatlthunk.libの中で実際にはどういう処理が
行われているのか分からないので、安全かどうかは分かりません。
920892依頼者:2005/11/22(火) 20:44:51
>>918
VC8ExpressにはATLありませんよね?
WTL使えるってのはPSDKのを利用と言う事ですしょうか?

>>919
どうやらその対処法は、こちらも行っていたみたいです。
ただ、atlwin.hの修正は知らなかったのでやってみたのですが、
逆にwarningが発生します…
921デフォルトの名無しさん:2005/11/23(水) 02:09:04
ATLがないとなると
当然OLEDBもダメだから
mdbファイルのデータ吸出しも無理だなきっと。
922デフォルトの名無しさん:2005/11/23(水) 03:31:08
ビュークラス(CWindowsImplから派生)の中に、更にビュークラス(同じくCWindowImplから派生)を
子ウィンドウとして作成したら、親のビュークラスに向かってWM_PAINTが送られ続け、止まらなくなるという
変な状態になったんですが、原因と解決策が分かる方いらっしゃいますか?

MainFrame
  +-ViewA
    +-ViewB

 ↑ウィンドウはこんな感じの階層です。
ViewAに向かってWM_PAINTが延々と送られ、CPU使用率がMAXになってしまいます。
923デフォルトの名無しさん:2005/11/23(水) 03:40:22
すみません。すぐ解決しました。
WM_PAINTのハンドラでCPaintDCオブジェクトを作ったら直りました。
いまいち理解できないので、もうちょっと勉強してきます。
924デフォルトの名無しさん:2005/11/23(水) 09:12:08
>>921
ADO
925デフォルトの名無しさん:2005/11/23(水) 10:02:51
WTLでメニューに対し追加や削除の動作を試みているのですが
上手く動きません。
WTL::CMenuHandle m;
m.Attach(LoadMenu(_Module.GetResourceInstance(),MAKEINTRESOURCE(IDR_MAINFRAME)));
m.InsertMenu(1,MF_BYPOSITION | MF_STRING,1,_T("test"));
どう試行錯誤してもorz解決策ご存知の方居ましたら教えて頂けると幸いです
926デフォルトの名無しさん:2005/11/23(水) 10:54:07
>>925
m.LoadMenu(IDR_MAINFRAME);

でいいんじゃない?
927デフォルトの名無しさん:2005/11/23(水) 11:24:05
>>926さんのやり方と、一行付け足すだけで
解決しました。。。
どうやらSetMenu(m);を入れないとダメだったようです。
928デフォルトの名無しさん:2005/11/23(水) 22:28:00
BEGIN_MSG_MAP_EXを使うとクラスビューがおかしくなってしまうのを、
うまく解決する方法ってありますか?
メーリングリストにも綺麗な解決策はありませんでした。
929デフォルトの名無しさん:2005/11/23(水) 23:06:28
>>928
エンドユーザにどんなにおかしくても笑いをこらえるよう、お願いすれば解決する。
プログラマ側でエンドユーザの笑いのセンスを取得して処理するような仕様はクソだぞ。
930デフォルトの名無しさん:2005/11/23(水) 23:21:09
>>929
えーと、説明が下手ですみません。
クラスビューというのは、VCに付いているクラスの一覧を表示する機能を持ったパネルのことです。
BEGIN_MSG_MAP_EXを使うと、これがクラスのメソッドをうまく解析してくれないので、
なにか、うまい解決策はないものかと。
931デフォルトの名無しさん:2005/11/23(水) 23:45:26
>>930
M$に文句言う。
932デフォルトの名無しさん:2005/11/23(水) 23:46:59
>>928

VS2005
933デフォルトの名無しさん:2005/11/24(木) 00:06:35
>>931-932
レスども。
最新版では直ってるんですね。
とりあえず、メーリングリストのやり方で対策しときます。
934デフォルトの名無しさん:2005/11/24(木) 06:39:47
とりあえず英語版VC2005Expでは直ってなかったよ
935デフォルトの名無しさん:2005/11/30(水) 07:57:39
WTL7.5Finalキタ
936デフォルトの名無しさん:2005/12/05(月) 23:29:47
937デフォルトの名無しさん:2005/12/05(月) 23:50:29
>>936
日本語で書いていいとは知らなかった。
938デフォルトの名無しさん:2005/12/05(月) 23:59:56
age
939デフォルトの名無しさん:2005/12/06(火) 00:39:51
>>936
いいね。
でも日本語だと、日本人以外の投票者は得られないかな…
940デフォルトの名無しさん:2005/12/06(火) 01:39:18
ATLのクラスはMFCも使用してるから、
オープンソース化にはあまり賛成出来ないな。
941・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/06(火) 02:03:16
CStringまわりでそ。
WTLにも独自のCStringがあるしなぁ。むしろSTLのstringクラスとの互換性強化きぼん。
942デフォルトの名無しさん:2005/12/06(火) 03:11:23
は?ATL7.0のCStringTってMFCのモンじゃないでしょ
943デフォルトの名無しさん:2005/12/06(火) 03:53:06
CStringはMFCのそれと(機能は)ソックリだけど、別の実装みたいだね。
IntellisenseがMFCのクラスと勘違いした支援出してくるのが困る。
944デフォルトの名無しさん:2005/12/06(火) 04:01:49
WTLをATLから分離がいいな
940はダウトだろ
945・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/06(火) 04:29:58
ヒント:afxstr.h
946デフォルトの名無しさん:2005/12/06(火) 04:36:30
cstringt.h -- MFCとATLで共用されてるCStringT<>定義
atlstr.h -- ATL用
afxstr.h -- MFC用
ってことでいいのかな?
947デフォルトの名無しさん:2005/12/06(火) 07:40:23
948デフォルトの名無しさん:2005/12/06(火) 09:13:01
だからヘッダに書かれてるコード読めって。ATL::CStringT<>をMFCが使ってる事実まで否定したいの?

実装の差異があるかどうかじゃなくてヘッダを共有してる事実こそ重要だろ。
949デフォルトの名無しさん:2005/12/06(火) 09:52:56
>>948
論点はそこじゃないだろ
940の日本語が紛らわしいのが悪いとみたw

皆は「ATLがMFCを使っている」と解釈
950デフォルトの名無しさん:2005/12/06(火) 12:06:45
日本語難しいね
951デフォルトの名無しさん:2005/12/06(火) 12:16:04
6.0以前から使ってる奴はMFCのCStringが後付けでテンプレート化したことくらい知ってるだろ。

皆なんて言うな皆なんて。
952デフォルトの名無しさん:2005/12/06(火) 14:32:53
日本語の不得手な方がまだいらっしゃるようで
953デフォルトの名無しさん:2005/12/06(火) 18:38:45
先生、質問です。
これはいけないことですか?

CAtlArray<IHTMLDocument2*> pHTMLArray;

void hoge(IHTMLDocument2 *pDoc)
{
 pHTMLArray.Add(pDoc);
}
954デフォルトの名無しさん:2005/12/06(火) 20:43:09
ATL使ってるんならスマートポインタ使おうよ
955デフォルトの名無しさん:2005/12/06(火) 21:04:18
COMのリファレンスカウントをちゃんと守りませう。
956953:2005/12/06(火) 21:22:53
>954-955
CAtlArray<CComPtr<IHTMLDocument2>>でエラーがでてよくわからんかったわけですが、

CAtlArray<CComPtr<IHTMLDocument2> > arr;
Addref, Release
上のどっちかというが判明しました、ありがとうございます。
先生、さよーなら。
957デフォルトの名無しさん:2005/12/07(水) 15:38:29
IEコンポーネントのウィンドウにフォーカスを移すのってどうやるんでしょうか?
SetFocusをしてもキーボードフォーカスが移動しないので・・
958デフォルトの名無しさん:2005/12/07(水) 20:52:40
>>957
mouse_event
959デフォルトの名無しさん:2005/12/07(水) 21:25:16
7.5 Final EXE !
960デフォルトの名無しさん:2005/12/08(木) 03:32:05
windows.hみたいなので定義されてる構造体を
COMオブジェクトのプロパティに使いたいのだけれど、
こういうの1つ1つIDLで再定義していくんですか?
具体的にはWAVEFORMATEXをプロパティとするオブジェクトを作りたいのですが。
961デフォルトの名無しさん:2005/12/08(木) 03:54:39
variant
962デフォルトの名無しさん:2005/12/08(木) 04:00:10
>>961
それだとVARIANT型のプロパティになるんですよね?

よくDirectXなんかでDSBUFFERDESCみたいな構造体を
直接受け付ける関数あるじゃないですか。
ああいうのはどうなってるんでしょうか
963デフォルトの名無しさん:2005/12/08(木) 04:38:27
ポインタ
964デフォルトの名無しさん:2005/12/08(木) 05:49:15
すんません、できました。

IDLに#include "windows.h"とやるとコンパイルできなくて、
typedef struct tagWAVEFORMAT { .. } WAVEFORMAT;
とするとIDLのコンパイルは通るのですが
生成されるmyclass.hを使うときにWAVEFORMATの二重定義になって困っていました。

そこでIDLで宣言するときに
cpp_quote("#ifdef WAVEFORMAT")
typedef ...
cpp_quote("#endif")
として、生成されたmyclass.hで無効にしてやると上手くいきました。
965デフォルトの名無しさん:2005/12/09(金) 05:48:48
966デフォルトの名無しさん:2005/12/09(金) 07:20:34
オイオイ
967デフォルトの名無しさん:2005/12/09(金) 14:44:42
なるほどそういう流れか
968デフォルトの名無しさん:2005/12/09(金) 21:14:29
どういう意味?
969デフォルトの名無しさん:2005/12/10(土) 10:51:53
setup71.jsで登録したWTL App Wizardをアンインスコするにはjsを読んで手動で
レジストリを消すとかしないと駄目ですか?
970デフォルトの名無しさん:2005/12/10(土) 15:48:50
>>969

そうかも
俺も2つとか残っててマンドクセーと思ったことが
971デフォルトの名無しさん:2005/12/10(土) 17:53:32
レジストリは変更してないよ?
ファイルをコピーしているだけ
972・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/10(土) 18:08:04
フォルダの中身参照してるだけな。
973969:2005/12/11(日) 00:06:11
>>970-972
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\vcprojectsから
WTL*.vsz, WTL*.vsdir, WTL*.ico を消すだけですね。。
974デフォルトの名無しさん:2005/12/11(日) 02:15:50
WTLはスレッドサポートしてる?
CMutexとかみあたらないんだけど...
975・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/11(日) 02:57:18
無いよ。

Win32APIでがんばりましょう。
普通に_beginthreadex使えるよ。CRT使わないならCreateThread(Ex)ね。
あとはCriticalSectionなりMutexなり。

俺は親スレッドにデータ渡すときは
parent.SendMessage(WM_USER_SENDDATA, (WPARAM)data, (LPARAM)dataSize);
で配列渡してるけどね。メッセージキューの利用はスレッドセーフなのです。
っていうかむしろそれ以外の方法使うの危険。


ATL Serverにはそのものズバリなスレッドクラスがあったけど
使った経験ない。
976デフォルトの名無しさん:2005/12/11(日) 23:42:05
それ以外の方法?
APCとか、IOCPとかは危険?
977・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/11(日) 23:56:10
いや、ごめん。基本的にAPIベースで使える手段は一通り使えるはず。

メッセージキューってのはリストビューとかのウィンドウにデータを渡すときの話ね。
無理矢理CriticalSectionとか使って書き込んでもデッドロックすることがあるから。
978デフォルトの名無しさん:2005/12/12(月) 00:00:06
メッセージキューはIPCとしての信頼性が不安だわ。
マウスやらキーボードやらのイベント入ってきていつ溢れるか分からない。
マウスとか忙しいと捨てられてるし。
979デフォルトの名無しさん:2005/12/12(月) 00:13:30
普通にデータ受け渡すくらいならよっぽどのへぼ打たなければデドロックはしないでしょ。
980・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/12(月) 00:23:55
子スレッド(多数)から親スレッドの持つ1個のリストビューにアイテム追加するとか。
SendMessageして親スレッドでAddItemとかさせないと、リストの上にマウスかざしただけで即デッドロックするおw
981デフォルトの名無しさん:2005/12/12(月) 01:41:57
イベントやらセマフォやら使えるんだから、スレッド間通信の道具なんかいくらでも作れるだろ。
982デフォルトの名無しさん:2005/12/12(月) 01:48:27
>>981
サンプル希望
983デフォルトの名無しさん:2005/12/12(月) 01:57:12
>>981 はセマフォじゃなくてミューテクスか・・・

例えば std::deque<> あたりの出し入れをスレッドセーフにするだけでも使えるでしょ?
読み出す側は同期的に待つならイベントが使えるだろうし、
非同期にやるなら追加したあと PostMessage() することにするとかさ。
984デフォルトの名無しさん:2005/12/12(月) 02:02:30
>>900
デッドロックしてくれなかったら、逆に困るに10000ディナール。
985・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/12(月) 17:18:44
>>983
えっと非同期の方法を応用すると、
EnterCriticalSection→親スレッドのコンテナに追記→LeaveCriticalSection→PostMessage(リストに反映汁)
でええんかな。

俺の場合、実はリストビューは大概オーナーデータにするので、データだけを更新するとか、ある程度は融通は利く。
まぁいちおう考慮してみますわ。
ただ、SendMessageだと親スレッドが処理が終わるまで子スレッドがストールする、という
問題については、現状たいした問題じゃなかったりする。
リストへの追記の頻度がそれほど高いわけでもないし、状況次第。
実際問題、リストに登録する以外の使い道のないデータなんで汎用性持たせてもそんなに意味は無かったりする。


>>984
まー、さすがにデータ1件ずつにつきメッセージ投げるようなヴァカな真似はしてない。
スレッドごとにバッファメモリを用意して、ある程度まとまったデータにしてから配列で渡してる。

WM_SENDDATAってメッセージもあるくらいだし、メッセージキューにアドレス入れて
非同期でデータ交換するのって一般的だと思ってたんだけど。
986デフォルトの名無しさん:2005/12/12(月) 17:33:23
>>985
リストビューの実装をオーナーデータにすべき。
データベースメモリと別に、わざわざリストコントロール内にデータベースが存在する時点で厨確定。
とりあえず、LVS_OWNERDATA で検索すべき。
987デフォルトの名無しさん:2005/12/12(月) 17:34:58
いちいちPostMessageとかで通知しないで、親は暇なときに自分で子スレッドからの
データがあるかどうか見て、なんかあればあるだけ処理しちゃうというのもいいかも。
988デフォルトの名無しさん:2005/12/12(月) 17:37:34
>>986
989・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/12(月) 17:39:21
>>986
普通にオーナーデータにしてるが、CListViewCtrlImpl<Foo>とコンテナクラスを多重継承したクラス構成にしているwww
990デフォルトの名無しさん:2005/12/12(月) 17:41:43
>>985
>WM_SENDDATAってメッセージもあるくらいだし、メッセージキューにアドレス入れて 
>非同期でデータ交換するのって一般的だと思ってたんだけど。 

ちっとも一般的じゃない。
外部プロセスから作為的なメッセージを受信した場合、
それが正しいアドレスかどうか検出する方法がない。
セキュリティに配慮したアプリケーションを作るなら、
アクセス制限された共有メモリとイベント通知でデータ送信をするしかない。
そういいつつ、自分も面倒だからそこまでやらないけどさ。
991・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/12(月) 17:44:48
>>987
OnIdleに噛ますのか。それアリだな。

子スレッドがアクティブなときもリストの項目ソートしたり削除したりできるようにしてるのだが
全部の操作にいちいちロック・アンロックかけるのも面倒なのよ。
親ウィンドウを持つスレッドのみが直接データモデルを操作するほうが現状楽だったり。
992デフォルトの名無しさん:2005/12/12(月) 17:46:57
>>989
・・・多重継承は要らんでしょ。移植・仕様変更に弱くなるだけだよ。
時には、似た処理内容をコンソールアプリで提供しなけばならなくなったりするでしょ。
993・∀・)っ-●○◎- ◆Pu/ODYSSEY :2005/12/12(月) 18:22:55
次のお題はLVS_OWNERDATAでチェクーボクース出す方法について。
994デフォルトの名無しさん:2005/12/12(月) 18:33:18
>>993
そろそろスレ違いっぽいので、Win32API質問スレでおながいします。
というか、もうすぐ1000。
995デフォルトの名無しさん:2005/12/12(月) 21:03:07
立てました。
ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/l50
996デフォルトの名無しさん:2005/12/12(月) 23:00:28
1000!!
997デフォルトの名無しさん:2005/12/12(月) 23:24:37
'A`TL
998デフォルトの名無しさん:2005/12/13(火) 00:50:29
^w^ TL
999デフォルトの名無しさん:2005/12/13(火) 00:54:43
もうすぐ1000!
1000デフォルトの名無しさん:2005/12/13(火) 00:55:20
もらっときます。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。