ATL/WTL Part4

このエントリーをはてなブックマークに追加
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/
その後合流
ATL/WTL Part3
http://pc8.2ch.net/test/read.cgi/tech/1095442366/l50

WTLの最新版↓
http://sourceforge.net/projects/wtl/
2デフォルトの名無しさん:2005/12/12(月) 21:06:08
関連サイトなど
The So-Software Studio
ttp://home.att.ne.jp/banana/akatsuki/
WTL研究所
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
Windows Template Libraryの概要
ttp://www.mars.dti.ne.jp/~kattoshi/Program/
WTL support list
ttp://groups.yahoo.com/group/wtl/
The Code Project - WTL
ttp://www.codeproject.com/wtl/
viksoe
ttp://www.viksoe.dk/code/
MSDNのATLウィンドウクラス概要
ttp://www.microsoft.com/japan/msdn/library/ja/vccore/html/_atl_ATL_Window_Classes.asp
Virtual Truth Lab.
ttp://lamoo.s53.xrea.com/
3デフォルトの名無しさん:2005/12/13(火) 01:17:22

4デフォルトの名無しさん:2005/12/13(火) 21:40:05
即死しそうな勢い
5デフォルトの名無しさん:2005/12/13(火) 22:47:28
WTL AppWizard用の日本語化した元リソース(root.rc)って無いよね。
テンプレのサイトで見つけたと思ったらリンク切れだし。
自分でやってみたけど、メニューだけでも結構大変だな。
6デフォルトの名無しさん:2005/12/13(火) 22:55:03
7デフォルトの名無しさん:2005/12/13(火) 23:24:29
>>5
落とせたよ?
8デフォルトの名無しさん:2005/12/13(火) 23:42:05
>>7
メニューとかStringTableとかも日本語になってる奴ってあります?

あ、リンク切れはテンプレじゃなくてここの奴だった。
ttp://hp.vector.co.jp/authors/VA022575/c/index.html
9デフォルトの名無しさん:2005/12/14(水) 01:15:44
>>6
詳しく
10前スレ892依頼者:2005/12/14(水) 03:34:54
随分日が経ちましたが、いつの間にかPSDKのATLでも、
正常にタブが表示されるようになっていました。

多分、WTL7.5Finalに更新した辺りからだと思います…
因みに8.0.5347でも大丈夫でした。

皆様、どうもありがとうございました
117:2005/12/14(水) 21:54:26
>>8

それはないかもね。少なくとも見たことは無い
MFC のからパクってくれば?
12デフォルトの名無しさん:2005/12/14(水) 23:01:52
WTL8ってバージョン番号が変わっただけ加代!
13デフォルトの名無しさん:2005/12/14(水) 23:17:41
本当は7.5Finalのタイミングで8.0にするつもりだったんじゃ・・・
14デフォルトの名無しさん:2005/12/15(木) 01:24:49
誰か仕事でATL/WTL使ってる方はおりますか。
あるいはATL/WTL使っている製品て知りませぬか。

MFC→ATL/WTLの乗換えを検討してるんですが、
採用実績はどーなのかと聞かれて答えられず。
15デフォルトの名無しさん:2005/12/15(木) 01:33:10
MDBのデータの吸出しやるならプロバイダテンプレートの関係でATLは必須。
RADなしならMFCより簡単だな。
ACCESSのMDBとApacheのCGIを繋ぐデーモンプロセスみたいなの書いてる。
16デフォルトの名無しさん:2005/12/15(木) 01:54:38
実績もくそもただのWin32APIのラッパでしょうが。
WTLの実績=Win32APIの実績とでも答えておけばいい。
17デフォルトの名無しさん:2005/12/15(木) 01:59:53
>>15
ADOでは何かまずいの?
>>16
「ただのラッパ」でもバグはありえる(事実あった)ので、
そういう回答は企業では通用しないでしょう
18デフォルトの名無しさん:2005/12/15(木) 02:07:42
MFCにもバグあるのに・・・
19デフォルトの名無しさん:2005/12/15(木) 02:29:17
>>18
MFCの場合は少なくともMSの製品なので、責任の所在(となすりつけ先)は
はっきりしとるわな。
AS ISで提供されてるオープンソースのライブラリではその辺が不安視される。
20デフォルトの名無しさん:2005/12/15(木) 04:34:42
そんな奴は使うな
21デフォルトの名無しさん:2005/12/15(木) 07:05:11
ごもっとも
22デフォルトの名無しさん:2005/12/15(木) 14:09:56
ATLは普通に使われまくりでしょ。本もいっぱいあるし。
具体例は知らないww
23デフォルトの名無しさん:2005/12/15(木) 19:17:10
>>22
ATL is not WTL
ATLは製品だから何もモンダイは無い。
24デフォルトの名無しさん:2005/12/15(木) 22:30:53
やっぱ最初からVSについてるかついてないかは大きいよな。
デフォルトのリソースが日本語じゃないのだけでも士気が下がる
25デフォルトの名無しさん:2005/12/16(金) 00:08:41
俺も20に一票
26デフォルトの名無しさん:2005/12/16(金) 00:17:50
>>19
仕事で使う場合、「コレはMFCのバグだから」で許してもらえるほど世の中は甘くない。
27デフォルトの名無しさん:2005/12/16(金) 00:44:38
>>26
相手の感情を静めるのには結構有効。
「マイクロソフトが提供するライブラリにバグがありまして・・・滅多に無いことなんですが」
とでも言っておけば、修正が遅れても怒られないかもしれない。
通用しない人には全く通用しないが。
2814:2005/12/16(金) 00:51:29
現在非常に劣勢。結局
・問題あった時、責任とるのは嫌
・ATL/WTLを使える奴が他に居ない
・MFCでも何とかなるじゃん
で押し切られそう。
最後の「MFCでも何とかなる」を覆せれば、
説得できそうなんだけど…何かネタは無いですか。
29デフォルトの名無しさん:2005/12/16(金) 00:54:00
あなたは現時点でそういったことに答えられないレベルの認識で
仕事に使おうとしているのですか?
30デフォルトの名無しさん:2005/12/16(金) 01:48:47
>・問題あった時、責任とるのは嫌

最大の問題点だなw
31デフォルトの名無しさん:2005/12/16(金) 08:18:21
MFC使ってれば責任取らなくていいのか?素晴らしいぞMFC
32デフォルトの名無しさん:2005/12/16(金) 09:11:44
そのへんの話はマ板あたりでやってくれ
33デフォルトの名無しさん:2005/12/16(金) 17:51:26
>>31
たぶん、「>>14が」責任取るのが嫌、なんじゃないのか?w

ATL/WTLにしたおかげでプロジェクトがコケて、お前その責任取れんのかコラ、とか
脅されていると見たw
34デフォルトの名無しさん:2005/12/16(金) 20:19:47
wつけてる奴、おまえたいしておもしろいこと言ってないぞ
35デフォルトの名無しさん:2005/12/16(金) 22:00:50
ATL/WTLの方が簡素な構造になるから、
頑丈さでも効率でも上になるかと思う。
メッセージのルーティングとかMFCは複雑だし。
36デフォルトの名無しさん:2005/12/16(金) 22:20:33
ATL8.0のリファレンスってネットにある?
37デフォルトの名無しさん:2005/12/16(金) 22:23:10
msdn2?
38デフォルトの名無しさん:2005/12/16(金) 22:29:34
MSDNにある?見つからない…
39デフォルトの名無しさん:2005/12/16(金) 23:14:10
お前の目は節穴かよ
ttp://msdn2.microsoft.com/ja-jp/library/t9adwcde(ja-jp,VS.80).aspx
40デフォルトの名無しさん:2005/12/17(土) 00:02:37
どっからリンクされてんのよ
41デフォルトの名無しさん:2005/12/17(土) 09:52:54
だからmsdn2だって
42デフォルトの名無しさん:2005/12/17(土) 10:11:58
あれつかいにきーな。
スプリッターが
43デフォルトの名無しさん:2005/12/18(日) 18:37:33
うーん…
WTLにてMSG_WM_CREATE(OnCreate)で、
OnCreate内でGetWindowRect(lpRect);
こんな事しようとすると、atlwin.hの
ATLASSERT(::IsWindow(m_hWnd));
で引っかかる・・・・m_hWndにはちゃんと値入ってるのになんでだ・・
44デフォルトの名無しさん:2005/12/18(日) 19:30:38
>>43
CREATESTRUCTのメンバでは駄目か?
45デフォルトの名無しさん:2005/12/18(日) 19:38:15
>>44
その中には親のhwndを示すhwndparentしかないからむりぽ・・・

というか、
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl/
ここのツールバーやリバーのサンプルソースが同じ様に
実行時にひっかかりまくるのは俺の環境がおかしいのかなぁ
46デフォルトの名無しさん:2005/12/18(日) 19:46:21
うちでわへいき
47デフォルトの名無しさん:2005/12/18(日) 20:10:31
Create(),CreateEx()をどうやったかぐらい書いたらどうか。
48デフォルトの名無しさん:2005/12/18(日) 20:16:35
どうやると言っても、>>45で書いた所の
ツールバー のサンプルソース丸写しでコンパイルし
ReleaseではなくDebugで実行、ってだけです

ちなみに環境は WTLFinal7.5、VC++.NET2002
49デフォルトの名無しさん:2005/12/18(日) 20:49:17
OnCreateの最初でDefWindowProcを呼んでみるとか
5044:2005/12/18(日) 21:08:49
>>45
俺はCREATESTRUCTのx, y, cx, cyのメンバのことを言ったつもりなんだが。
51 ◆Pu/ODYSSEY :2005/12/18(日) 21:32:09
OnSize() で拾うのが確実。
初動だけ取りたいなら、OnCreateの中でフラグでも立てて、
OnSizeでフラグ値を判定して実行し、フラグを解除する。
52デフォルトの名無しさん:2005/12/18(日) 21:46:16
たった今OnSize()でも試してたところです。
そこでも一瞬ウィンドウが現れて、m_hWndは当たり前ですが0では無いのに
ATLASSERT(::IsWindow(m_hWnd));に引っかかります・・・
ウィンドウが表示されてから、数秒後にOnSize()を実行させると
何事も無かったかのように動く・・・
IsWindow(m_hWnd)をうまく通過できるタイミングが全くわかりません。。。
53 ◆Pu/ODYSSEY :2005/12/18(日) 21:50:19
むしろWM_SIZEメッセージ毎に呼ばれるのが嫌なら
MESSAGE_HANDLER( (foo_flag? WM_SIZE : WM_NULL), OnSizeAfterWindowCreate)
とか
54デフォルトの名無しさん:2005/12/18(日) 21:53:51
呼ばれる事を前提としてるので、イヤと言うわけではないです
GetWindowRectのほかに、というかm_hWndを使うWTLの関数を
OnCreateで呼び出そうとすると上記のようにエラーが起こるのが謎なわけです
55 ◆Pu/ODYSSEY :2005/12/18(日) 21:54:36
とりあえず症状が再現できん。
デフォの処理を明示的に呼び出してから処理してみては。
56デフォルトの名無しさん:2005/12/18(日) 22:05:25
って、自己解決、お騒がせしました。
m_hWndの問題は、うまくいかないぞと思い
CreateExの所を変に書き換えたせいで
実際の問題はATLASSERTに引っかかっていたわけでなく
次の行の::GetWindowRectで、LPRECTをそのまま渡そうとしてたという
間抜けな話です、、、すいませんでした。
57デフォルトの名無しさん:2005/12/18(日) 22:12:16
>>56
切腹オススメ
58デフォルトの名無しさん:2005/12/18(日) 23:59:22
ここまで間抜けだと逆に笑えた。
しかし二度とやるなこのやろう。
59デフォルトの名無しさん:2005/12/19(月) 00:38:31
>>56

部屋の真ん中で1時間全裸で土下座。暖房は切れ。
60デフォルトの名無しさん:2005/12/19(月) 23:13:43
このスレの人はみなさんいい人ですね
61デフォルトの名無しさん:2005/12/20(火) 02:28:24
>>56
罰として、雪の積もった学校の校庭にそのコードを書け。


全裸で。
62デフォルトの名無しさん:2005/12/21(水) 23:37:17
WTL8.0 + VS2005の組み合わせで、既存のプロジェクトをビルドすると
デバッグ版だとビルドエラー。リリース版だとエラーなし。
マニフェストの生成方法がVS2005は、変わったみたいだね。
63デフォルトの名無しさん:2005/12/23(金) 23:16:01
#include <atlsoap.h> したんですが、
「error C2872: 'CString' : あいまいなシンボルです。」の嵐に見舞われます。
WTL::をつける以外に良い方法はないでしょうか?
64デフォルトの名無しさん:2005/12/24(土) 01:00:02
namespace WTL {
}
でくくる、じゃだめですか?
65デフォルトの名無しさん:2005/12/24(土) 01:29:05
#define _WTL_NO_CSTRING
#define _CSTRING_NS ATL
6663:2005/12/24(土) 01:29:15
>>64
うおーばっちりです、ありがとうございます。
6763:2005/12/24(土) 01:35:31
>>65
あら、タイミングが。
試してみたんですが atlmisc のせいなのかなんなのか駄目っぽいです。
とりあえず>64氏案でいこうと思います、ありがとうございました。
68デフォルトの名無しさん:2005/12/24(土) 02:14:03
using WTL::CString;
69前スレ853 :2005/12/24(土) 07:32:40
また、直接ATLの話でないので申し訳ないですが・・・

今、IDataObjectをやっているのですが・・・
OleGetClipboard()でクリップボードの内容を取得することはできるのですが、クリップボードにデータを書き込む事ができません。
OleGetClipboard()で取得したIDataObjectをOleSetClipboard()すること自体はできるわけですが、そのIDataObjectにはSetData()ができないのです。
単にテキストデータをクリップボードに書き込むだけでもIDataObjectを自前で実装しなければいけないのでしょうか?

私は前スレ853なのでSDKレベルでお願いします。
70デフォルトの名無しさん:2005/12/24(土) 10:43:32
>>67
defineする場所とインクルードする順番に問題アリな気がする。
71デフォルトの名無しさん:2005/12/25(日) 18:32:17
ダイアログベースで作る時の様にデフォルトのフォントを指定する方法ってないですか?
コントロールをCreateする度にフォントを設定しなおすの面倒・・・
72デフォルトの名無しさん:2005/12/25(日) 18:49:09
リソースエディタからプロパティで設定できなかったけ?
73デフォルトの名無しさん:2005/12/25(日) 18:49:55
あ、ごめん
ダイアログベースではなく普通のウィンドウです、リソース無しの。
74デフォルトの名無しさん:2005/12/29(木) 00:18:49
システムフォント変えるしかないんじゃないかな
75デフォルトの名無しさん:2005/12/30(金) 05:30:14
もしかしたら凄い初歩的な事かもしれません…

今、WTLを使用してインターフェイスを構築しているのですが、うまく動作しない箇所があり、困っています。

フレームウィンドウにタブビューを貼り付け、そのタブビューにスプリッタウィンドウを貼り付けているのですが、そのスプリッタウィンドウに
貼り付けているビューが、通知コードやコマンドコード(今回は下位のタブ切替)等を認識してくれません。

tree風にすればこんな感じ

ROOT
└─FrameWindow
  └─TabView
    └─FrameWindow
      ├─SplitterWindow
      ├─PaneContainer
      | └TabView
      |  └TreeView
      └─EditView

スプリッタウィンドウの区切り設定のSetSplitterPosもうまく働いていないようです(いつも最左端になる)。ただ、初期位置を指定できないだけで、
区切りの移動等は普通に出来ます

(REFLECTED_)NOTIFY_CODE_HANDLER_EX(NM_CLICK,省略)を2つ目のFrameWindowにセットすると、うまく働き、それ以降のビューで同様にセットすると、
うまく働きません。

以上の事から、2つ目のフレームウィンドウ関連がおかしいと睨んだのですが、対処法がわからないのです。

皆様、力をお貸し下さい…
76デフォルトの名無しさん:2005/12/30(金) 13:27:05
釣れますか?
77デフォルトの名無しさん:2005/12/30(金) 18:25:01
>>75

タブビューの内部をSplitter で区切ってPaneとEdit にしたいなら
2つ目のFrameWindow がいらないんじゃないの?

TabView の子にSplitterWindow を指定したら?
7875:2005/12/31(土) 06:44:09
>>77
それだと、どうもうまくいかなかったので、FrameWindowをあえて使っています。
それにタブビューはちょっとしたテンプレートを使っているので、タブビュー内の
子は一つにしたかったという、理由もあります…

通知コードの問題は凄い初歩的でした。親(二つ目のFrameWindow)に
DEFAULT_REFLECTION_HANDLERをつけていたみたいです…
絶対なるわけね〜

ただ、それでもSetSplitterPosはうまくいきませんでした。どうも、一度正しい値で
呼び出されてから、xyPos=0,bUpdate=falseでもう一度関数が呼ばれているみたいです
79デフォルトの名無しさん:2005/12/31(土) 11:57:33
じゃあ、それより後にやればええやん
8075:2005/12/31(土) 18:11:29
その場所がわかれば苦労しませんよ…
81デフォルトの名無しさん:2005/12/31(土) 18:14:37
漏れはそういうのは WM_CREATE の最後くらいに
自家製メッセージを PostMessage しといて、その中でやってるけど。
ちみのケースでうまくいくかどうかは知らんがね。
82デフォルトの名無しさん:2005/12/31(土) 20:42:37
Frameのソース読めよ。

なんでFrameの中にFrame入れたいの?

Paneで十分じゃねぇのか
83デフォルトの名無しさん:2005/12/31(土) 22:43:48
>>82
そんなもん、俺の勝手だろ
84デフォルトの名無しさん:2006/01/08(日) 04:47:50
ひといない
85デフォルトの名無しさん:2006/01/08(日) 05:36:16
|_゛)
86デフォルトの名無しさん:2006/01/08(日) 12:41:23
>>84
いや、ネタがないだけ。人はいるよ。
87デフォルトの名無しさん:2006/01/08(日) 16:56:49
VC++2005ExpressでWTL使うネタもExpressスレでやってたしな・・・
ぽっくん悲しい
88デフォルトの名無しさん:2006/01/08(日) 16:59:36
ともだちんこぶぁい
89デフォルトの名無しさん:2006/01/08(日) 21:06:29
ATL/WTL って、MingW とか gcc とか Borland でもつかえるんですか?
90デフォルトの名無しさん:2006/01/08(日) 23:46:21
>>88
年代がわかるな。
>>89
使えないだろ。普通に考えたら。
91デフォルトの名無しさん:2006/01/09(月) 00:28:57
ttp://groups.yahoo.com/group/wtl/message/11292
ナイスガイRoger氏のようにやってもツールバーのアイコンを動的に変更できません。
・ツールバーのアイコンは16x16(小)と20x20(大)
・小→大だと、アイコンが全部消えてバンドサイズ変更なし。
・大→小だと、アイコンは小さくなるけどバンドサイズが変更されず、シェブロンが大アイコン時の場所に表示される。

環境:win2ksp4, VC++.NET2003

以下のようにやってみました、プリーズご助言お願いします。
-----------------------------------------
// 大小のイメージリストはクリエイト時に初期化。
// リバーバンドにツールバーを表示

switch (m_nIcon){
 case 0: // 小さいアイコン
  SetImageList(m_ImageList16);
  break;
 case 1: // 大きいアイコン
  SetImageList(m_ImageList20);
  break;
}

CReBarCtrl rebar = GetParent();
int index = rebar.IdToIndex(IDC_TOOLBAR);
int nCount = GetButtonCount();
CRect rc;
GetItemRect(nCount - 1, &rc);

REBARBANDINFO rbbi;
rbbi.fMask = RBBIM_CHILDSIZE;
rbbi.cyChild = rbbi.cyMinChild = rc.bottom;
rebar.SetBandInfo(index, &rbbi);
92デフォルトの名無しさん:2006/01/09(月) 01:35:03
SDKのATLって6.0のorz
93・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/09(月) 01:40:20
普通にWTL自体を使う分には(ちょっと修正すれば)問題ないんだけどね。
ATL Serverってやっぱ魅力的?
94デフォルトの名無しさん:2006/01/09(月) 01:50:51
1.VC8とPSDKを入れてパスを設定
ttp://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
Microsoft Visual C++ 2005 Express Edition
Microsoft Platform SDK for Windows Server 2003 SP1

2.VS2003から抜いたatlmfcフォルダをVCフォルダ内に置く
 atlmfc\ のinclude、lib、srcパスを設定

3.WTL8.0を…(略
95・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/09(月) 01:56:40
VC++2005TeamSuiteのDVDがあったりするわけだが
96デフォルトの名無しさん:2006/01/09(月) 02:08:54
>>94
もうすぐ体験版が
97デフォルトの名無しさん:2006/01/09(月) 03:36:28
うまー
98本田:2006/01/09(月) 07:59:39
>>89
> ATL/WTL って、MingW とか gcc とか Borland でもつかえるんですか?

BCB5には、ATL付いてるよ。
Borland Developer Studio 2006には、WTLも付いてるらしい。
99・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/09(月) 08:19:35
最適化がまともなら選択肢に入るのだが。。。
100デフォルトの名無しさん:2006/01/09(月) 08:51:07
>>91
MSDNによればRB_SETBANDINFOするときは
rbbi.cbSize = sizeof(REBARBANDINFO);が必要。
(構造体がver4.71以降拡張されている)
あと、cxMinChild,cxIdealも埋めとく必要がある

REBARBANDINFO rbbi = {0}; // 一応0埋め
rbbi.cbSize = sizeof(REBARBANDINFO); // 追加
rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; // 変更
rbbi.cyChild = rbbi.cyMinChild = rc.bottom;
rbbi.cxMinChild = 0 または 最初のボタンの右端の座標; // 追加(※
rbbi.cxIdeal = rc.right; // 追加
rebar.SetBandInfo(index, &rbbi);

※cxMinChild
詳しくはAddSimpleReBarBandCtrlのソースを参照
101デフォルトの名無しさん:2006/01/09(月) 14:46:49
>>94

2003のはATL8.0じゃないよ
10291:2006/01/09(月) 16:35:10
>>100
お答えありがとうございますが、残念ながら無理でございます。
どうにもうまくいかんですなこりゃ。
Donutも同じようなことしてると思うんだけども…うーむ。
103デフォルトの名無しさん:2006/01/09(月) 16:43:02
>>101
>>94のどこにATL8.0の話が書いてあるんだ?
104デフォルトの名無しさん:2006/01/09(月) 18:39:11
>>102
無理?
実際やって確かめたんだがなぁ・・・
RECTやREBARBANDINFOのメンバーの値はどうなってる?
あと、91のコードってどこに書いてんの?
コードから推測するにツールバーのサブクラスの中だとは思うけど。
105デフォルトの名無しさん:2006/01/09(月) 19:43:01
>>103

6.0より7.1なだけ。
10691:2006/01/09(月) 22:34:11
>>104
RECTやREBARBANDINFOもちゃんと高さは変更されてるし、
コードはご推察の通り、ツールバーのサブクラスの中。

と、思ったところで重大なミスが発覚しました。
IDC_TOOLBARじゃなくてATL_IDW_TOOLBARだと成功しました。
つまるところSetDlgCtrlID(IDC_TOOLBAR);し忘れてたわけで…
長々と申し訳ございませんでした、トイレの水がぶ飲みしてきます。
107デフォルトの名無しさん:2006/01/10(火) 01:34:55
PSDKのATLMFCってCE用のやつじゃないの?
本来X86用のブツではないから地雷だろ。
108・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/10(火) 01:37:40
> 2.VS2003から抜いたatlmfcフォルダをVCフォルダ内に置く
>  atlmfc\ のinclude、lib、srcパスを設定

ぶっちゃけ「抜いてくる」ならTeamSuiteのDVDなら8.0のヘッダ群が入手できることになるが。。。さて。。。。
109デフォルトの名無しさん:2006/01/10(火) 11:13:22
だからうまー
110デフォルトの名無しさん:2006/01/10(火) 15:57:04
抜けるのか
111デフォルトの名無しさん:2006/01/10(火) 21:48:16
クラックした方がは(ry
112デフォルトの名無しさん:2006/01/11(水) 16:04:56
すんまそん
C#のstring[]をSOAP経由でATL ServerのIDLで受け取る方法がどうも
分かりまへんintの配列は渡してエラーにならないのだけどなぜBSTR配列は
だめなのです。->soap Exception発生。ちなみに配列でないBSTRの受け渡し
は問題ありません。
インターネットに転がっている情報も配列ではないBSTRの操作ばかりで
まいってます。VS.NET 2003 C# + ATL Server(SOAP)
113デフォルトの名無しさん:2006/01/12(木) 01:24:46
>>112
SAFEARRAY?
114デフォルトの名無しさん:2006/01/12(木) 09:35:59
>>113
レスサンクス
SAFEARRAYでIDL定義してもエラーになってしまうのです
VARIANTのポインタもだめでした
ピンポイントなMSDNのサンプルもなしでお手上げ状態です
115デフォルトの名無しさん:2006/01/13(金) 00:12:48
_18934_RTL_x86_jpn_ATLMFC_Redist.cab
_18935_RTL_x86_jpn_ATLMFC_Redist_Debug.cab
116デフォルトの名無しさん:2006/01/13(金) 14:11:10
PRO入れようとしたらVCだけで2GB
117デフォルトの名無しさん:2006/01/15(日) 16:34:34
Using WTL with Visual C++ 2005 Express Edition
http://www.codeproject.com/wtl/WTLExpress.asp

一応な、一応。
118デフォルトの名無しさん:2006/01/15(日) 19:53:02
ATL8.0でないから意味ないし
リソースエディタもない
119デフォルトの名無しさん:2006/01/15(日) 20:41:55
>ATL8.0でないから意味ないし
詳しく。
120デフォルトの名無しさん:2006/01/15(日) 20:56:54
他のスレではとっくに出てる話を本家のATL/WTLスレが今ごろ・・・
121デフォルトの名無しさん:2006/01/16(月) 01:31:12
このスレの住人がExpress Editionなんて使ってるわけないっしょー
使って・・・
122デフォルトの名無しさん:2006/01/16(月) 01:35:13
teamからリソースエディタも抜けた
123デフォルトの名無しさん:2006/01/16(月) 02:23:57
いまだにVS2002.netが現役。。。
WTLはインテリセンスが効かないことが多くて困るね
124デフォルトの名無しさん:2006/01/18(水) 01:01:55
COMMAND_ID_HANDLER
MESSAGE_HANDLER
NOTIFY_HANDLER
COMMAND_HANDLER

はなにがちがうのですか?
125デフォルトの名無しさん:2006/01/18(水) 01:06:04
126デフォルトの名無しさん:2006/01/18(水) 11:01:50
なんか

?と:を書くやつを教えてください
127デフォルトの名無しさん:2006/01/18(水) 11:12:37
スレ違い。
128デフォルトの名無しさん:2006/01/18(水) 21:07:25
>>126
三項演算子 でググれ。
それとスレ違いだから適したスレに行け。
129デフォルトの名無しさん:2006/01/18(水) 22:27:46
>>128
正確にいうとあれは条件演算子。
三項演算子というと単項、二項に対する分類になるが、
まあ三項演算子といえばこれしかないから通じるだけ。
130デフォルトの名無しさん:2006/01/18(水) 22:27:48
WTLにMSDNみたいなヘルプか、それに相当するHPってないの?
131・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/18(水) 23:00:13
暁氏のサイトとCodeProjectがそれ代わり。

MFCの同名のクラスやAPI関数のマヌアル見つつ、WTLそのもののソースを読む。
たいした量は無い。斜め読みすれば何をやってるかくらいは把握できる。
132デフォルトの名無しさん:2006/01/19(木) 00:04:29
So ちゃん本書かねえかな。
絶対売れねえだろうけど。
133デフォルトの名無しさん:2006/01/19(木) 08:46:51
ム板見てるとあちこちにWTLユーザいるんだがな・・・
きっとほんの2〜3人があちこちに書いてるだけなんだろうな・・・
134デフォルトの名無しさん:2006/01/19(木) 09:28:19
普通使うだろ。

135デフォルトの名無しさん:2006/01/19(木) 11:46:23
サポート中止
世間的には大昔に終了
げはははは
136デフォルトの名無しさん:2006/01/19(木) 11:54:49
VS2005スレから迷い込んできたのか
137 ◆Pu/ODYSSEY :2006/01/19(木) 12:05:54
サポートなんてもともと無い
ATLの開発チームが暇をもてあまして内部用に作ったGUIクラスライブラリだからな
オプソになった時点でat the own risk

どっか別の会社に有償サポートお願いするしかないです><
138デフォルトの名無しさん:2006/01/19(木) 12:10:09
やはり糞団子だったか
139 ◆Pu/ODYSSEY :2006/01/19(木) 12:12:40
Donutやその派生ブラウザはWTLで書かれてる。
140デフォルトの名無しさん:2006/01/19(木) 12:13:38
やっぱ社内でも俺みたく少数派でひっそり使ってるのかな・・・<WTL
141デフォルトの名無しさん:2006/01/19(木) 12:19:29
普通はMFC使うのかな。それともC#やらか?
142 ◆Pu/ODYSSEY :2006/01/19(木) 12:22:15
先輩が使ってた。あとオレも単発のダイアログアプリ作るのに使った。
MFCは複雑杉><
143デフォルトの名無しさん:2006/01/19(木) 12:24:08
VC++ならMFCだな。
他人がメンテする時のこと考えるとやっぱりメジャーなもの使う。
WTLを使うなら自分だけの小物か自分しかメンテしないものか
または社内でWTL教育するか
144デフォルトの名無しさん:2006/01/19(木) 13:13:26
んで、結局>>6はなんなの?
145デフォルトの名無しさん:2006/01/19(木) 13:19:06
なんなのって何がよ
146デフォルトの名無しさん:2006/01/19(木) 13:46:52
MFCったって、どうせダイアログアプリをベースに使うのが
関の山だろ?ドキュメント・ビューを理解して使っている椰子
なんて見たことない。今からだったら.NET Frameworkかもな。
いったん.NET Frameworkで楽すると、もうMFCみたいなポンコツで
使いにくいクラスライブラリなんて使いたくないし、だいいち
VC++でしか使えないという致命的な欠点があるしな。
147 ◆PUdDHOkSEY :2006/01/19(木) 13:48:54
俺はなんでも出来るけどなwwwうはwwww土方乙wwww
148デフォルトの名無しさん:2006/01/19(木) 14:01:58
>>146
>ドキュメント・ビューを理解して使っている椰子なんて見たことない。

あなたの周りはレベルの低い方ばかりなんですね。
149デフォルトの名無しさん:2006/01/19(木) 14:07:21
テストプログラムならともかく、まともなアプリじゃドキュメント・ビューがないとつらいな。
WTLでも自前でObserver/Subjectとかやっとる。
つうか自前の方がMFCより柔軟でいい。
150デフォルトの名無しさん:2006/01/19(木) 14:32:09
4166.6666666666666666666666666667
151デフォルトの名無しさん:2006/01/19(木) 14:52:41
ダイアログアプリケーションベースで2重起動防止&前のインスタンスウィンドウのアクティベートを実現する方法。
ウィンドウクラス決めうちなんで、普通にFindWindowでやったらウィンドウタイトルをユニークにするくらいしかないんですが。

1. サイズ固定フレームウィンドウ(クラス名をユニークにする)+フォーム
→MFCだとこれが多い希ガス。ステータスバーとかも付けられる。
  ただ、ダイアログリソースのサイズに親フレームをジャストフィットさせる関数がWTLには無いので('A`)マンドクセ

2. 起動時にテンポラリファイルを作り中身にインスタンスハンドルを書いておく。
→強制終了時に確実に消す方法がない

3. レジストリを使う
→根本的な解決になりません('A`)

4. EnumWindowのコールバック関数でSendMessageで照合
→(゚∀゚)ktkr!!!
最初に起動したインスタンスをサーバ、2回目以降をクライアントとして使うとか色々応用はできそう。
今はこれを使ってる。
でもなんか落とし穴もある?

このへんATLとか使ってスマートにやる方法ってあるんかな。
152デフォルトの名無しさん:2006/01/19(木) 16:04:55
新しいBorlandのはATLとWTL付いてるのな
153デフォルトの名無しさん:2006/01/19(木) 16:07:20
某はよく傍流に媚びるからな。コンパイラの性能もGCC以下だしぶっちゃけイラネ。
154 ◆Pu/ODYSSEY :2006/01/19(木) 17:31:12
4.でAPIだけで解決する方向で

イメージ的には
1. アプリの初期化時にRegisterWindowMessageでユニークな文字列を登録、これを多重起動チェック用のMessageIDとして使う
2. wParam/lParamはUUIDのポインタとして、送信用UUIDをセットしてSendMessage
3. メッセージ 受信側はwParamのUUID値をチェックし、lParamの表すアドレスに返信用のUUIDを書き込んで返す。

これで、メッセージの送受信に行儀の悪いアプリが割り込む危険性はある程度は回避できるんじゃないかな。
155デフォルトの名無しさん:2006/01/19(木) 23:20:36
別プロセスにポインタってネタだよな?
156>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/19(木) 23:31:37
WriteProcessMemory許可の方向で(・∀・)
自分の書いたアプリの別インスタンス相手なら十分アリでしょ。
引数と返り値にユニーク値って手もあるけど十分かどうか不安じゃね?
157デフォルトの名無しさん:2006/01/19(木) 23:36:49
それだったらUUIDを文字列として保持してしまえばいい。
そうすればグローバルアトムが使えてウマー。
158>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/19(木) 23:37:09
lParam(LPARAM型)と返り値(LRESULT型)ででいいか。面倒なことやんなくていいし。
ユニーク値として32bitしか使えないのは不安だけど。
159デフォルトの名無しさん:2006/01/22(日) 08:58:55
>>151
俺はMFCもWTLも使わずにAPIだけで組んだときは、
不可視のウィンドウ作って、その手の処理はその
ウィンドウ経由でやってた。
160デフォルトの名無しさん:2006/01/22(日) 10:18:07
Mutexは使えないのか?
そういう話でもないのか
161>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/22(日) 11:13:17
>>160
2重起動の検出までならそれでOK。
「既に起動済みのウィンドウを前面に持ってくる」という動作はMutexだけじゃ無理ス。

この方法のポイントは、別にクラスネームが決めうちであってもなくても使えて、
しかも方法をアレンジすれば3重起動まではOKとか、インスタンス毎に別の動作をさせる
とかの応用がきくこと。

まぁ現実的には二重起動禁止&アクティベートだけなら FindWindow(ClassName, NULL) で検索するのが楽だわな。
ウィンドウフレーム&フォームで作って、若干のダイアログリソースの位置・サイズのズレをCDialogResize<>で補正、
てのもアリかな、と(俺の習作はそーやってる)。
この方法を使うと、ステータスバーも扱えて何かと便利。
162デフォルトの名無しさん:2006/01/22(日) 12:19:54
FindWindowだとexeを連打したら終いじゃないか?
163>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/22(日) 12:35:37
俺のアプリでFindWindowで二重起動チェックしてるがまったく問題茄子
MFCとは違ってエントリポイント(WinMain)直接叩けるから、そこで起動チェックすれば吉。
164>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/22(日) 12:44:12
不安だったのでショートカット15個くらい作って同時起動試みた。
3つ立ち上がった。

ヤバイこれバグだwwwwwwwwwwww
165デフォルトの名無しさん:2006/01/22(日) 13:01:10
ミューテックスで排他処理。
共有メモリでウィンドウハンドル保持・閲覧や引数渡し。
166デフォルトの名無しさん:2006/01/22(日) 15:01:47
名前付きのファイルマッピングでやってた。
167デフォルトの名無しさん:2006/01/22(日) 15:23:22
二重起動ってさ、二重起動する奴があほなだけだろ?
なんで同時にいくつも起動するんだ?

だからうちは「二重起動しないでください」で済ませてる
168デフォルトの名無しさん:2006/01/22(日) 15:26:36
アイコンにファイルをDrag&Dropしたときに、
既に動いてるインスタンス内で開きたかったりするじゃん。
169デフォルトの名無しさん:2006/01/22(日) 15:32:09
マルチユーザーなんだから、他のユーザーが起動してるかも知れない。
ターミナルサービスもあるし
170>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/22(日) 15:32:44
常駐アプリで、再度EXE起動するとウィンドウ復元とか。
171デフォルトの名無しさん:2006/01/22(日) 15:36:56
どんどんこのスレの話じゃなくなってきた。
172デフォルトの名無しさん:2006/01/22(日) 15:47:42
何もかも◆Pu/ODYSSEYこいつのせい
無差別に色んなスレに出現しては荒らしまわる基地外
173デフォルトの名無しさん:2006/01/22(日) 15:51:40
>>169
MUTEXは、ユーザコンテキスト別に独立管理されている。
今さらお前が心配をしなくても、MSははるかな昔に手を打っている。
174デフォルトの名無しさん:2006/01/22(日) 16:26:45
「このソフト二重起動したらファイルがぐちゃぐちゃになっちゃったよ。」
「あ〜、それ二重起動しちゃだめなんだよとか言ってたよ。」
「誰だよ、こんなソフト作った奴は…。>>167 か、じゃ、しょうがないな。
あいつ、二重起動禁止の方法とか知らんだろうし、バグは多いし、包茎だし。」
175デフォルトの名無しさん:2006/01/22(日) 16:36:35
>>174
カミングアウトしなくてもいいよw
176デフォルトの名無しさん:2006/01/22(日) 18:05:02
>>167 = >>175 ?
図星ついちゃったのかな? (w
177デフォルトの名無しさん:2006/01/22(日) 18:22:44
ユーザーに余計な負担を強いるソフトなんて存在する意味が無いんだよ…。


178デフォルトの名無しさん:2006/01/22(日) 18:23:20
>>177 ゲームソフトの存在価値はどうなる。
179デフォルトの名無しさん:2006/01/22(日) 18:30:30
いい加減他行け。
180デフォルトの名無しさん:2006/01/22(日) 18:37:53
ロックファイルは
181デフォルトの名無しさん:2006/01/22(日) 19:00:17
CStringT::FormatMessageでGetLastErrorMessageの説明取り出せますか
182>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/22(日) 19:09:56
>>181
どっちのCString?


http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_formatmessage.htm
のラッパー関数だよね。
GetLastError()の返値をdwMassageIdに指定すればいいお。
183デフォルトの名無しさん:2006/01/22(日) 22:44:11
>>160
既に起動しているインスタンスがあればそちらで開きたい
という場合に、ダイアログベースのアプリケーションでは
FindWindowで一意に絞り込めないという話。

Captionが固定ならそれで検索という手もあるが、大抵は
開いているファイルの名前等を表示していて動的に
変化するからクラス名で検索したいのだが、ダイアログは
全て同じクラス名だから駄目。
184デフォルトの名無しさん:2006/01/22(日) 23:16:51
Mutex⇒Process⇒メインウインドウのハンドル みたいな検索は出来ないのかな?
たいていは FindWindow で事足りているので調べたことはないけどね。
185デフォルトの名無しさん:2006/01/22(日) 23:25:01
>>184
このスレは初心者スレではない。Win32APIでやってくれ。邪魔なんだよ。
186デフォルトの名無しさん:2006/01/22(日) 23:59:28
>>185 お前もな
187>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/23(月) 00:32:35
CDialogResizeがダイアログ以外のウィンドウでも使える件
188デフォルトの名無しさん:2006/01/23(月) 01:33:23
そろそろレイアウトマネージャが追加される予感。
189デフォルトの名無しさん:2006/01/23(月) 18:22:38
今までBCB6使ってました
でもアホ全開のBDS2006の評判を聞いて
これからはVC/WTLで生きることにしました
みなさんよろしくおねがいしました
190デフォルトの名無しさん:2006/01/23(月) 19:55:52
やめておけ。素直にBCB6使い続けれ。
今のところRADツールでは一番バランスがよい。
191デフォルトの名無しさん:2006/01/23(月) 19:58:48
ごてごてしたGUIソフトがメインなら一番DelphiもしくはC++Builderが効率いいよな
星の数ほどコンポーネントがあるし張っていくだけでできるんだもの
192デフォルトの名無しさん:2006/01/23(月) 21:21:20
人の書いたものは使いたくない
193デフォルトの名無しさん:2006/01/23(月) 21:29:04
どうぞハンドアセンブルで一から書いて下さい
194デフォルトの名無しさん:2006/01/23(月) 22:01:14
DelはPascalだからダメだな。使える奴には良いモンだが、
今の某のヘタレ具合から、使えない奴にこれから教育して使わせる気にはなれない。
まあスレ違いだな。
195デフォルトの名無しさん:2006/01/23(月) 23:20:49
>>192
ATL/WTLはおまいが書いたのけ?
196501:2006/01/23(月) 23:46:50
自己解決しました。 w
197デフォルトの名無しさん:2006/01/24(火) 00:09:06
>>196
誰?
198デフォルトの名無しさん:2006/01/24(火) 00:15:14
おれ!おれだよ、おれ!!
199デフォルトの名無しさん:2006/01/24(火) 01:51:03
2重起動防止は「アトム」を使うと良いかも。
↓サンプル
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_159.htm
200デフォルトの名無しさん:2006/01/24(火) 02:32:07
>>199
> さて、このプログラムはちょっと困ったことがおこります。プログラムが起動してから、何らかのエラーで
> 強制的に終了されてしまった場合グローバル・アトム・テーブルに文字列が格納されたままになりますので
> 再度起動することができません。こうなったらコンピュータをリセットするしかありません。

だめじゃん。
201デフォルトの名無しさん:2006/01/24(火) 06:57:54
グローバル・アトム・テーブルに
文字列と最終書き込み時間を書き込んでおいて、
動作中は時々上書き更新するようにしておけば、
一定時間以上前のものは無効とみなしてしまうことで
タイムアウト処理が可能。
202デフォルトの名無しさん:2006/01/24(火) 07:15:16
それならMutexの方が楽でしょう
203デフォルトの名無しさん:2006/01/24(火) 07:38:11
>>199
if (GlobalFindAtom(MYATOMSTR) == NULL) {
MessageBox(NULL, "初回起動です", "初回起動", MB_OK);
aMyAtom = GlobalAddAtom(MYATOMSTR);
・・・

アトムの存在チェックと作成が別APIだからその間に2重起動
してしまう可能性があるな。
204デフォルトの名無しさん:2006/01/24(火) 08:11:38
スレ違いな話題をいつまで引っ張るつもりなんだ?
205デフォルトの名無しさん:2006/01/24(火) 08:55:48
気の済むまで
206デフォルトの名無しさん:2006/01/24(火) 09:37:38
スレ違い除くとレスなくなるしな
207デフォルトの名無しさん:2006/01/24(火) 09:50:47
そんなんで正当化できると思ってるところが痛い
208デフォルトの名無しさん:2006/01/24(火) 10:38:52
その通り。2chにおいてスレ違いな話題は決して許されない。
209デフォルトの名無しさん:2006/01/24(火) 11:18:52
かつ異例の早さで逮捕。
210デフォルトの名無しさん:2006/01/24(火) 11:56:08
VCLや.NETの話題ならスレ違いだが、ATL/WTLってむしろ
生でWin32APIが叩けるのが旨みじゃないのか?

ATL/WTLで用意されてる方法を使ってうまい手段は無いかってのが趣旨なわけだし。
無きゃ無いで、意見が纏まったら多重継承に便利なテンプレート書いて本家にコミットって手もあるわけで。
211デフォルトの名無しさん:2006/01/24(火) 12:06:36
>ATL/WTLで用意されてる方法を使ってうまい手段は無いかってのが趣旨なわけだし。

今までそんな趣旨で多重起動云々の話してたやついるか。
212デフォルトの名無しさん:2006/01/24(火) 12:15:06
そんなことより、趣味プログラマの俺はこれからも
MFCを使い続けるべきなのか、ATLを使うべきなのか
お前ら教えろ。
213デフォルトの名無しさん:2006/01/24(火) 12:20:04
ケースバイケースで作りたいものが早く作れそうな方を使えばいんじゃね?
214デフォルトの名無しさん:2006/01/24(火) 12:23:39
>>211
最後の行読んでな。何のためのオープンソースだよ。
そもそもMFCなんかと比べて無いものづくめなんだから、そこをベースになってるWin32 APIで
どうにかせざるを得ないわけで、たまにAPIの話題になるのは已む無しだろ。
それがスレ違いならスレそのものが成立し得ない。

VC6.0+WTL3.1の頃から使ってるが、7.5にはあの頃と比べてずいぶんお前の言う「スレ違い」な
機能が取り込まれてるが、それをいったい誰がコミットしたか。ユーザーだよ。
215 ◆Pu/ODYSSEY :2006/01/24(火) 12:39:04
CodeProjectに上がってたタスクトレイ管理クラスを改造して多重起動防止・シェルのリセット時にアイコンを復帰する
機能を一纏めにしたCTaskTrayAppImpl<>的なものならオレのPCの中にあったと思う。
216デフォルトの名無しさん:2006/01/24(火) 13:12:18
多重起動防止ができない多重起動防止ライブラリなんてイラネ
217デフォルトの名無しさん:2006/01/24(火) 19:40:39
ふっつーに起動時にファイル作って
正常に終わるとき消すだけでは
218>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/24(火) 21:50:21
>>216
ぶっちゃけ同じことやったらIrfanViewの多重起動防止モードでも複数起動しますが。
連続クリックとか通常行う操作の範疇では実用に耐えうるし、Mutex併用すれば更に問題茄子。

>>217
ファイルハンドル開いてるときはたしかにロックがかかるが、
暗黙にMutexが使われてるからで、それなら最初からMutex直接使えばいいって話。
EnumWindow使う方法だと、単純に2重起動防止だけじゃなくて3つまで、4つまでならOKとか
いろいろ応用がきくんだな。

オーナーデータ使ったリストビューコントロール拡張クラスが合ってもよさそうなのに
無い件もだけど、そもそも汎用化し辛いとこなのかね。
CWindowWithReflectorImpl<>はどうみてもウンコです。
219デフォルトの名無しさん:2006/01/24(火) 21:54:57
>>217
正常に終わらん時があるから悩むわけで。
220デフォルトの名無しさん:2006/01/25(水) 01:44:18
>>211
MutexのハンドルをCHandleに放り込んでいますが、何か?
221>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/25(水) 01:49:45
それを言えばオレもだな

ATL::CWindow wndPrev = ::FindWindow(fooClass, NULL);
if (wndPrev.IsWindow()) {
wndPrev.SendMessage(.ほげほげ...) ;
}
222デフォルトの名無しさん:2006/01/25(水) 02:17:51
エラーですのでお願いします

HRESULT CMainFrame::GraphInitialize(void)
{
HRESULT hr;
hr = m_pGraphBuilder.CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC);
DEFAULT_ERROR_HANDLER(hr)
#ifdef _DEBUG
hr = m_hLogFile.Create(TEXT(".\\DirectShow.log"), FILE_ALL_ACCESS | SYNCHRONIZE, FILE_SHARE_READ, CREATE_ALWAYS);
DEFAULT_ERROR_HANDLER(hr)
if(m_hLogFile.m_h)
{
hr = m_pGraphBuilder->SetLogFile((DWORD_PTR)m_hLogFile.m_h);
DEFAULT_ERROR_HANDLER(hr)
}
#endif
223デフォルトの名無しさん:2006/01/25(水) 02:22:19
#define DEFAULT_ERROR_HANDLER(hr) {if(FAILED(hr)) { OutputDebugString(GetErrorMessage(hr)); OutputDebugString(TEXT("\n")); throw hr; } };

static LPTSTR GetErrorMessage(HRESULT hResult)
{
static TCHAR szResult[MAX_ERROR_TEXT_LEN];
DWORD result = AMGetErrorText(hResult, szResult, MAX_ERROR_TEXT_LEN);
if (result == 0)
{
wsprintf(szResult, "Unknown Error: 0x%X\n", hResult);
}
return szResult;
}
224デフォルトの名無しさん:2006/01/25(水) 02:41:17
YOYOYO 中に跋扈する魑魅魍魎 まるで異界の一味郎党
みたいなRhymer Rhymeしに登場 聞こえたろう闇に響く音
ビビって興味ない振りしようと 好奇心は日に日に上昇
ならCheckしに行こう here we here we go YO
怪し危うし魔の魑魅魍魎

多分地獄は満杯 溢れ出した連中が団体で列を成して
この世にスタンバイ 奴らの分 場所がまず足んない
道理で季節問わず暑いはず あえてヒートアップさす
いかついVerseを かまして汗かかすぞ
どうせヤケだろ 聞かせな合唱を YO

HA! こいつぁまるで火事場
すげぇ熱気溜まっちまう島国
Danger ますます上がっちまう Come on
(このジパングもうちょいでパンク)
225デフォルトの名無しさん:2006/01/25(水) 22:00:48
ステータスバーとプログレスバーだけのフレームウィンドウを作成し
WM_SIZEハンドラでステータスのペインの1つにプログレスバーをくっつけようと試みています。
以下はそのWM_SIZEハンドラの中身です。
ゆっくりウィンドウを動かすと一応くっついて来るんですが、
急にグリグリ動かすと何故かズレてしまいます。きちんと追従させる方法は無いでしょうか?

RECT rc;
m_statusBar.GetPaneRect(1,&rc);
m_progressBar.MoveWindow(rc.left, rc.top, rc.right-rc.left,rc.bottom-rc.top, 1);
226デフォルトの名無しさん:2006/01/25(水) 23:34:11
>>225
プログレスバーの親ウィンドウは何?
親をステータスバーにしたらうまくいくと思う
227デフォルトの名無しさん:2006/01/25(水) 23:39:37
>>226
プログレスバーの親はm_statusBar.Createの戻り値なので
親はステータスバーになってるはずです。。
228デフォルトの名無しさん:2006/01/26(木) 00:10:38
>>225
ステータスバーもフレームウインドウに動かされているはずなので、
UpdataLayout();
を先に呼ぶとかじゃ駄目かね?

もしくはステータスバーをサブクラス化して、それのOnSizeで。
229デフォルトの名無しさん:2006/01/26(木) 01:24:54
>>228
できました!ありがとう!
CMultiPaneStatusBarCtrlImpl::UpdatePanesLayout(void)が
OnSizeで呼ばれていたので、それを自前で呼ぶようにし
先にUpdateLayout();を呼んでみたらあっさり
何時間悩んだんだ・・・
230デフォルトの名無しさん:2006/01/28(土) 00:39:57
ちょっと見ない間にWTLHelperってこんな風になってたのか
http://www.codeproject.com/macro/wtlhelper.asp

ダイアログアプリでメッセージハンドラの簡単な雛形が
コピーできる頃しか知らなかった。
231デフォルトの名無しさん:2006/01/28(土) 03:25:21
WTLHelper便利だけど、BEGIN_MSG_MAP_EXだと追加に失敗するー。
232>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/01/28(土) 04:12:15
atlcrack.hは禁止の方向で
233デフォルトの名無しさん:2006/01/28(土) 12:19:55
糞コテが偉そうに勝手に禁止しないで下さい
234デフォルトの名無しさん:2006/01/28(土) 16:45:53
これは、我等芝村の意思ではなく、人類の総意だと受け取ってもらって差し支えない。
235デフォルトの名無しさん:2006/01/28(土) 21:29:41
>>230
もうMFC並だな
236デフォルトの名無しさん:2006/01/28(土) 22:12:52
>>230
Expressでは使えんのね・・・
237デフォルトの名無しさん:2006/01/29(日) 11:06:31
>>230みたいなのの
Windowsx.hのメッセージクラッカー版ないかなあ…
WTLも使いたくないくらい、サイズ小さくしたいアプリで使えるんだけど…
238デフォルトの名無しさん:2006/01/29(日) 12:30:56
>>237
>>230は使ってないのでわからないが、こんなのとか?
http://www.vector.co.jp/soft/win95/prog/se161043.html
239デフォルトの名無しさん:2006/01/29(日) 19:26:33
>>230
VC2005Pro で使うと起動するたびにツールバーが初期化されるんだけど
うちだけ?
240デフォルトの名無しさん:2006/01/30(月) 10:35:54
>>239
>Add-in for MS VC++.NET 2003 that helps to insert message handlers for WTL.
だからじゃない。
241前スレ853:2006/02/04(土) 07:00:20
またATLの話ではないわけですが、よければお教えください。
VBScriptの「For Each .. In」構文で列挙できるコレクションオブジェクトをSDKレベルで作っています。
For Each・・・ではVBScriptエンジンからIEnumVARIANT::Next()が呼び出されるのですが、これでrgVarに返すオブジェクトについては、返す直前にAddRef()する必要があるのでしょうか?
というか、一般的にオブジェクト(のインターフェースポインタ)をクライアントに返す場合にはAddRef()することが必要なのでしょうか?
242デフォルトの名無しさん:2006/02/04(土) 08:16:17
うにゅ
243デフォルトの名無しさん:2006/02/04(土) 19:26:37
メインウィンドウ上に配置された
リバーやツールバーのクリックを検知するにはどのように書けば良いのでしょうか?
普通に、WM_LBUTTONDOWNじゃダメなようで…
244デフォルトの名無しさん:2006/02/04(土) 21:43:23
ATL使っててメソッドを宣言しようとしてます。
そのメソッドにIDirectSound8型の引数を設定したいのですが、
IDLのコンパイル時に「そのような型は定義されていない」と怒られます。
それでdsound.hをincludeすると、
今度はULARGE_INTEGERなどの型が二重定義だと言われてしまいました。

こうなるとdsound.hをincludeする以外の方法で
定義を読み込ませることになるのでしょうか?
どなたかご存知の方いらしましたらお教えください。
245>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/02/04(土) 21:49:57
DirectXスレへどうぞ

鬱だ氏のう DirectX (Part 16)
http://pc8.2ch.net/test/read.cgi/tech/1133007002/

くだすれDirectX(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1132965206/

【C++】 DirectX初心者質問スレ Part7 【C++】
http://pc8.2ch.net/test/read.cgi/tech/1132216611/
246デフォルトの名無しさん:2006/02/04(土) 21:53:24
これはたまたまインタフェイスがDirectXだったというだけじゃないんですか?
247>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/02/04(土) 22:02:42
つか、C++をベターCとして使ってる人以外は大概、ATLでDirectX使ってると思われ。
MSのサンプルだとATL使ってないけど、多分ATLの無い環境に配慮したのだろう。

多重定義されてるといわれるULARGE_INTEGERの定義を辿ってみるもよし。
IDirectSound8の定義を引っ張り出してきてソースに直貼りするもよし。
↑あくまで個人でプログラム書くならね。

ここでATL/WTL使ってる人はヘッダがドキュメントな人です。
248デフォルトの名無しさん:2006/02/04(土) 22:15:36
>>237
そんなにサイズが重要なら、全部Win32 APIを直接使えよ
249デフォルトの名無しさん:2006/02/04(土) 22:31:57
IDLが文句言うの?
CComPtr<IDirectSound8>とかじゃなくて、
interface hoge : IDispatch{
[id(1), helpstring("メソッド dohoge")] HRESULT dohoge([in] IDirectSound8 *hoge);
};
みたいな話か?
250デフォルトの名無しさん:2006/02/04(土) 22:44:06
>>249
まさにそれです。
251デフォルトの名無しさん:2006/02/05(日) 23:36:57
リバー上にタブコントロールを作成したのですが
リバーのバンドのサイズがそれに合いません
また、作成時に強制的に合わせても、複数行の表示やリサイズの際に上手く反映されません
解決方法がありましたら教えて下さい
252>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/02/06(月) 00:12:39
WM_SIZEとかWM_SIZINGあたりで強制的に合わせるので駄目?
253デフォルトの名無しさん:2006/02/06(月) 16:30:53
>>241
COMのメモリ管理は完全にルールが決まっています。

Memory Management Rules
ttp://msdn.microsoft.com/library/en-us/com/html/769127a1-1a14-4ed4-9d38-7cf3e571b661.asp

[out]ならCOMコンポーネント側で確保し、COMクライアントが解放します。
既に保持しているインタフェースポインタを返却するのであればAddRef()する必要があります。
254デフォルトの名無しさん:2006/02/12(日) 18:29:31
122 名前:デフォルトの名無しさん[sage] 投稿日:2006/01/16(月) 01:35:13
teamからリソースエディタも抜けた

詳しく、おねがいします。
255デフォルトの名無しさん:2006/02/13(月) 13:56:41
世の中、上から下まで責任転嫁の時代です。
256デフォルトの名無しさん:2006/02/13(月) 16:36:10
GetMoniker実装も仕方教えてください。
257256:2006/02/13(月) 16:44:47
突っ込まれる前に書き直し。
AxWindowを使用していますが、時折「GetMoniker not implemented」とログに出力されます。
そこで、GetMonikerをきちんと実装しようと考えたのですが、どのようにGetMonikerを実装してよいか分かりません
情報ありましたらよろしくお願いします。
258デフォルトの名無しさん:2006/02/14(火) 04:43:00
質問させてください。
基底クラスへCHAIN_MSG_MAPすると、OnCharに飛ばなくなってしまうの
ですが、何故だかわかる方教えていただけませんでしょうか。

class CMainFrame : public CFrameWindowImpl<CMainFrame>
{
BEGIN_MSG_MAP(CMainFrame)
MSG_WM_CHAR(OnChar)
CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)
END_MSG_MAP()

void OnChar(TCHAR vkey, UINT repeats, UINT code){
...
}
}

259デフォルトの名無しさん:2006/02/14(火) 05:26:59
MSG_WM_CHAR とか使うなら BEGIN_MSG_MAP_EX なんじゃね?
260デフォルトの名無しさん:2006/02/14(火) 05:51:54
>>259
BEGIN_MSG_MAP_EXでもやっぱりだめでした。
CHAIN_MSG_MAPを消すとOnCharに飛ぶのですが、
CHAIN_MSG_MAP入れると、OnChar, OnKeyDown, OnLButtonUpとかも飛ばなくなります。。
何故でしょう。。
261デフォルトの名無しさん:2006/02/14(火) 05:58:48
BEGIN_MSG_MAP と MESSAGE_HANDLER でやったらダメなの?
atlcrack.hは使ってないから知らん。
262デフォルトの名無しさん:2006/02/14(火) 06:12:12
>>261
今やって見ましたが、だめでした。
MESSAGE_HANDLER(WM_CREATE, OnCreate)には行くのですが。。
263デフォルトの名無しさん:2006/02/14(火) 06:23:43
つうか、Viewが喰ってるんじゃないの?
264デフォルトの名無しさん:2006/02/14(火) 07:18:28
順番的にチェインが食うって事はないはず
265デフォルトの名無しさん:2006/02/14(火) 07:24:48
よく知らんけどFrameWindowなら、中にはまってるビューかなんかにメッセージが行ってるんじゃねえの?
266デフォルトの名無しさん:2006/02/14(火) 07:26:24
んで、CHAINしてないときはそこらの初期化が走らないから直接メッセージが来る、と
267デフォルトの名無しさん:2006/02/14(火) 07:54:08
CAtlStringのFormatMessageの場合
FORMAT_MESSAGE_FROM_SYSTEMはどうやって指定するの
268デフォルトの名無しさん:2006/02/14(火) 18:47:34
>>267
おそらく想定外。
269デフォルトの名無しさん:2006/02/14(火) 19:23:18
>>258
デバッガでトレースしてみればすぐに原因が分かると思うが。
まぁ、マクロだらけのソースはトレースしにくいけどね。
270デフォルトの名無しさん:2006/02/14(火) 20:17:30
「なぜ○○なのか?」について考えるより、別の解決方法を考えた方が賢明だと思う。
そもそもWM_CHARハンドラ実装が目的に適しているかどうかも含めて。
271デフォルトの名無しさん:2006/02/14(火) 21:22:58
>>258
概ね>>263-266が書いてる通り。
ソースを追えば分ると思うけど、
CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)を入れた場合
最初にWM_SETFOCUSが飛んできた時点で
CFrameWindowImplBase::OnSetFocus()内でクライアントウィンドウ(View)に
フォーカスが行ってしまい、その後のWM_CHARをViewが受けてしまう。
CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>)がない場合は
Viewにフォーカスが行かず、CMainFrameがWM_CHARを受けるので
とりあえずOnCharだけはちゃんと動く。(他の箇所で問題が出るはず)

CMainFrameでWM_CHARを捕まえたいなら
PreTranslateMessage()で処理すればいいのでは?
CMessageFilter::PreTranslateMessage()
CMessageLoop::AddMessageFilter()
あたりで
272デフォルトの名無しさん:2006/02/15(水) 01:40:45
最近MSはWTL使いまくりだな。
Windows Desktop SearchとかWindows DefenderとかXP SP2とかVistaとか
273デフォルトの名無しさん:2006/02/15(水) 01:55:53
MSからDLできる版だけでも、日本語対応してくれんかな。
274>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/02/15(水) 02:09:51
7.xの日本語化パッチなら出てたはずだが。

てか、ディレクトリ別に作るだけだから自分で手入れるのも容易
275>∀<)っ-○●◎- ◆Pu/ODYSSEY :2006/02/15(水) 02:22:12
>>272
ごめん、WTL製と断言するイミフ
276デフォルトの名無しさん:2006/02/15(水) 10:52:47
>>267

こういう場合あらゆる渡し方を想定してオーバーライドするのが筋だと思うんだけどね
277デフォルトの名無しさん:2006/02/15(水) 10:53:03
CSimpleMap、CSimpleArrayとかの内容をデバッガーのウォッチで確認するにはどうしたらいんですか?
記述の仕方で見れるようになりますか?
278デフォルトの名無しさん:2006/02/15(水) 14:51:23
>>276

っWTL::CString
279デフォルトの名無しさん:2006/02/17(金) 17:40:52
タブコントロールに具を貼り付けられないですか?
ページの設定とかもダイアログエディタじゃ出来ないし
280デフォルトの名無しさん:2006/02/18(土) 00:40:12
プロパティシートじゃだめか?
281デフォルトの名無しさん:2006/02/18(土) 17:54:23
具?
282デフォルトの名無しさん:2006/02/18(土) 21:44:32
っWindowsForms
283デフォルトの名無しさん:2006/02/19(日) 13:53:00
>>279
具はダイアログとして下ごしらえしてタブコントーロールの皿に盛り付けるんだが。
具の下ごしらえはダイアログエディタで出来るし。
284デフォルトの名無しさん:2006/02/20(月) 17:23:04
GetWindowTextうぜー
285デフォルトの名無しさん:2006/02/20(月) 20:24:47
__propertyで書き換えればいいじゃない
286デフォルトの名無しさん:2006/02/20(月) 22:22:01
APIはかえられんだろ。つーか、出来るのか __propertyで。
287デフォルトの名無しさん:2006/02/20(月) 23:25:59
ちょっと質問があります。

WTLでOLEドラッグアンドドロップを
使う場合、IDropTarget等を直接使う方法しかないでしょうか?
何か使いやすくテンプレートにまとめた
ものはないのでしょうか?

よろしくお願いします。
288デフォルトの名無しさん:2006/02/21(火) 00:51:16
>>284

MFCも一緒だから
文字列で返す関数がないのは
それなりの理由があるんだろ
289デフォルトの名無しさん:2006/02/21(火) 07:16:40
>>286
ATLのCWindowの話かとおもた
290デフォルトの名無しさん:2006/02/21(火) 07:18:57
__declspec propertyね
291デフォルトの名無しさん:2006/02/21(火) 11:26:42
DDX_CONTROL_HANDLE

DDX_CONTROL
はどう違うでありますですか?

DDX_CONTROLを使うとビルドーエラーが出るであります。
292デフォルトの名無しさん:2006/02/21(火) 11:46:27
エラー内容を書かないという事は、教えてもらう気はないということだな。
293デフォルトの名無しさん:2006/02/21(火) 16:30:09
「ATL COM プログラミング」のサンプルコードってどこかでダウンロードできませんか?
本に載ってる下のWebサイトにいって無くて困ってます。
http://www.seshop.com/detail.asp?pid=35
294デフォルトの名無しさん:2006/02/21(火) 19:15:52
>>293
翔泳社に言え と思って見たら左の関連リンクのとこにあるじゃん
295デフォルトの名無しさん:2006/02/22(水) 09:12:06
質問です
CToolBarCtrl bar;
bar.Create()
なんてやるとインテリセンスはMFCのほうのCreate()を表示するんですが、
WTLのCreate()を表示させるにはどうしたらいいんでしょうか?
296デフォルトの名無しさん:2006/02/22(水) 09:40:05
>>295
インテリセンスが賢くなるように、MS様にお願いする。
具体的にいうと、ヘッダもしっかりと読んでくれるように。
297293:2006/02/22(水) 10:28:34
>294
ほんとだ、あった。
スマソ
298デフォルトの名無しさん:2006/02/22(水) 10:42:50
質問させてください。
●レイヤーウインドウ用にWTLで次のようなダミーのウインドウクラスを作って
class CDummyWindow : public CWindowImpl<CDummyWindow>{}
●次のような実装で表示させてます。
m_dummyWindow = new CDummyWindow() ;
m_dummyWindow->CreateEx(parentHWnd ,&rect ,dwStyle ,dwExStyle ,NULL) ;
m_dummyWindow->ShowWindow( SW_SHOW ) ;
●で、目的は達成出来てるんですが、最後消すときにアラートが出て消すこと出来ないでいます。取りあえずこんな感じ色々試してますが、
SendMessage( m_dummyWindow->m_hWnd , WM_CLOSE , NULL , NULL ) ;
SendMessage( m_dummyWindow->m_hWnd , WM_DESTROY , NULL , NULL ) ;
m_dummyWindow->DestroyWindow() ;
delete m_dummyWindow ;
●最後のdeleteで下のCWindowImplRootのDestructorでアラートが出てしまいます。
virtual ~CWindowImplRoot()
{
#ifdef _DEBUG
if(m_hWnd != NULL)// should be cleared in WindowProc
{
ATLTRACE(atlTraceWindowing, 0, _T("ERROR - Object deleted before window was destroyed\n"));
ATLASSERT(FALSE);
}
#endif //_DEBUG
}
●m_hWndがあることが問題なのはわかるんですけど、どういう手順で殺したらいんでしょうか?よろしくお願いします。
299デフォルトの名無しさん:2006/02/22(水) 12:16:58
DestroyWindow()する前にWM_DESTROY送ったらいかんでしょ。
300298:2006/02/22(水) 13:08:47
>299
レスありがとうございます。取りあえずこんなふうにしてみましたけど、
m_dummyWindow->DestroyWindow() ;
SendMessage( m_dummyWindow->m_hWnd , WM_DESTROY , NULL , NULL ) ;
delete m_dummyWindow ;
今度は「SendMessage」でアラート出てしまいました。
引き続き何か情報ありましたらよろしくお願いします。
自分でも追いかけてみます。
301デフォルトの名無しさん:2006/02/22(水) 13:28:12
APIのDestroyWindow()がWM_DESTROYを送るから、
自分でWM_DESTROYを送る必要は無いよ。
302デフォルトの名無しさん:2006/02/22(水) 14:11:30
>>295
WTL::で始めてもだめか?
あとVC++の設定でインテリセンスが読み込むソースのある
フォルダを指定するところがあった気がする。

>>298
WM_CLOSEがDefWindowProcに届くとDestroyWindowが呼ばれる。
303298:2006/02/22(水) 17:02:48
レスありがとうございます。
まだ、可決に至ってないんですが、
そもそも、標準的なウインドウを閉じる処理はどういうふうに実装するべきなんでしょうか
サンプルなど示していただける助かります、よろしくお願いします。
304デフォルトの名無しさん:2006/02/22(水) 18:46:44
>>295

ソリューションのヘッダファイルにWTLってホルダ作って登録すれ
305デフォルトの名無しさん:2006/02/22(水) 20:18:16
>>303
まさかWTLのウィザードも使ったことないとか?
306デフォルトの名無しさん:2006/02/23(木) 14:27:38
>>295
.NET 2003であれば、
ツール→オプション→project
でソースディレクトリを設定すればOK
307298:2006/02/23(木) 15:50:15
ども、おせわになってます。
とりあえず、WM_CLOSEから順々にWM_DESTROY、WM_NCDESTROYと処理出来るようになり、Windowsを閉じることが出来たんですが、
今度は、その閉じたWindowにメッセージが送られてしまい0xfeeefeeeのアドレス実行しようとして例外が発生してしまいました。
具体的には、
CWindowImplBase::WindowProcから自前で実装したWindowクラスのBEGIN_MSG_MAPに処理が移ろうとしてるんですが、その実体は既に削除されているためにエラーしているようです。
メッセージの発信元を辿ると親のメッセージループのTranslateMessage(&m_msg);からメッセージが送られてるようでした。
WM_NCDESTROYのタイミングでメッセージループから送られないように実装すれば解決出来るかと思うんですが。。。
何方か情報ありましたらよろしくお願いします。
308デフォルトの名無しさん:2006/02/23(木) 16:37:30
WM_CLOSE以下の処理を全部自前でやろうとしてる悪寒。
309デフォルトの名無しさん:2006/02/23(木) 18:50:16
>>307
SendMessage(m_dummyWindow->m_hWnd, WM_CLOSE, NULL, NULL);
SendMessage(m_dummyWindow->m_hWnd, WM_DESTROY, NULL, NULL);
m_dummyWindow->DestroyWindow();
delete m_dummyWindow;
元のコードで上に相当する部分が今はどうなっているか書いてみろ。
310デフォルトの名無しさん:2006/02/23(木) 19:55:32
そのまえになぜnewとdeleteを使っているのかと小(ry
311デフォルトの名無しさん:2006/02/23(木) 23:21:47
>>310
そんなもん人の勝手じゃないですか
312デフォルトの名無しさん:2006/02/24(金) 00:07:21
GlobalAlloc,GlobalFree
313デフォルトの名無しさん:2006/02/24(金) 03:33:56
>>310
newやdeleteは内部でmallocやfreeを使っていて、
mallocやfreeは内部でGlobalAlloc,GlobalFreeといったAPIを使っていると理解していたのですが違うのでしょうか?
314デフォルトの名無しさん:2006/02/24(金) 07:12:01
どうでもいいレスに反応しないで、309を見直してくれ。
ちゅうか、BEGIN_MSG_MAP〜END_MSG_MAPを使ってるのなら、
WM_CLOSE以降のメッセージを、いちいちハンドルしなくていいから。
315デフォルトの名無しさん:2006/02/24(金) 07:17:41
ハンドルじゃないや。いちいちSendMessageしなくていい、だった。
316デフォルトの名無しさん:2006/02/24(金) 19:29:06
メモリー管理が煩わしいのでスマートポインターをの使用を考えているのですが、
自前のデータクラスを簡単にスマートポインター化するにはどうしたらいんですか?
出来ればclsidとか考えないで、newとdeleteだけをサクッと置き換えたいだけなんですけど、
良い方法ありますか?
317デフォルトの名無しさん:2006/02/24(金) 20:09:35
ヒント:この世に存在するライブラリはATLだけではない。
318デフォルトの名無しさん:2006/02/24(金) 20:24:35
CAutoPtrってことじゃなくて?
319デフォルトの名無しさん:2006/02/24(金) 20:43:37
>>316
COMとは無関係ならboost::scoped_ptrやboost::shared_ptr類が一般的。
320316:2006/02/24(金) 20:53:47
レスありがとうございました。
CAutoPtr、boost::scoped_ptr、boost::shared_ptr
参考になりました。
とりあえず、CAutoPtr使ってみます。
321デフォルトの名無しさん:2006/02/25(土) 00:29:34
恐竜惑星の再放送やれよ
322デフォルトの名無しさん:2006/02/27(月) 02:01:08
?
323デフォルトの名無しさん:2006/02/28(火) 10:59:07
VBやJScriptのようCOMを#importなどを使わずに動的に呼び出したいんですけど、例えば次のように、

VBの場合、
Set fso = CreateObject("Scripting.FileSystemObject")

JScriptの場合、
fso = new ActiveXObject("Scripting.FileSystemObject");

方法ご存じでしたらよろしくお願いします。
324デフォルトの名無しさん:2006/02/28(火) 17:54:04
>323
スレ違い、APIスレイケ。
325323:2006/02/28(火) 19:54:02
>324
そうですか、逝ってきますぅ。
326デフォルトの名無しさん:2006/02/28(火) 22:00:09
なぜここが過疎なのか垣間見たよ
327sage:2006/03/01(水) 15:50:09
>>277
ものすごく亀レスだけど
自分で”autoexp.dat”を書き換えれば見られる。
328デフォルトの名無しさん:2006/03/02(木) 00:27:20
ラベルの文字の色を変えたいのですが
329デフォルトの名無しさん:2006/03/02(木) 00:28:01
変えれば良いじゃん
330デフォルトの名無しさん:2006/03/02(木) 09:15:59
関数ぷりーず
331デフォルトの名無しさん:2006/03/02(木) 11:43:40
SetTextColor
332デフォルトの名無しさん:2006/03/02(木) 12:40:24
>>324
ATLを使って出来るなら教えてやればいいじゃないか
333デフォルトの名無しさん:2006/03/02(木) 17:45:59
俺ならそういうときは#import使うなあ。
334デフォルトの名無しさん:2006/03/02(木) 22:28:51
CoCreateInstance ?
335デフォルトの名無しさん:2006/03/02(木) 22:40:07
>>334
ATL的にはCComObject::CreateInstance()だな
336デフォルトの名無しさん:2006/03/03(金) 13:11:30
環境がLUNA稼動かどうやって調べますか
337デフォルトの名無しさん:2006/03/03(金) 16:29:04
WTLHelperってやつ変数追加するのに10分くらいかかるんだけど
338デフォルトの名無しさん:2006/03/03(金) 20:43:38
339デフォルトの名無しさん:2006/03/03(金) 23:55:13
VC6.0でも使えるWTLHelperみたいなのは無いのかな?
340デフォルトの名無しさん:2006/03/05(日) 16:22:20
>>336

CTheme とつられてみる
341デフォルトの名無しさん:2006/03/05(日) 19:32:15
VisualStudio.NET ATL/WTL で開発しています。

バイナリから、JScriptの関数を呼びだすコードを書いております。
関数の呼び出しはできるのですが、JScript上の関数に引数を渡さなければいけない
場合に、どのように渡せばよいかわからないことがあります。

現在はまっているのは、JscriptのArray型です。
SAFEARRAY で CComVariantに渡してみましたが、

JScript上の関数内で、Arrayのlengthプロパティを使用できませんと
言われてしまいます。

この場合は、どのように渡せばよいのでしょうか?
また、 参考になるようなページはありませんでしょうか?

JScriptの関数呼び出しには、Invokeを使用しています。

よろしくおねがいします。
342デフォルトの名無しさん:2006/03/05(日) 21:06:24
>>341
俺はJScriptの配列を直接作る方法を知らない。

JScriptを変更できるなら、引数をVBArrayとして受けて、そこからtoArrayで変換するようにすればよいようだ。
http://msdn.microsoft.com/library/ja/jpdnvid/htm/VintrDev/videv6/vbnjscrpt.asp
(ここのVBScriptからJScriptへの配列の受け渡しの項)
343341:2006/03/06(月) 02:04:11
>>342

JScript側の関数は変更しないで対応したいのです。

344デフォルトの名無しさん:2006/03/06(月) 08:13:34
2005にWTLHelperつかうと勝手に終了したりします
345デフォルトの名無しさん:2006/03/08(水) 19:54:48
JScript の配列は、Array オブジェクトのインスタンスだから、
CreateInstance なんかで Array を作ってやればいけると思う。
ただ、GUID も ProgID も知らないから、そこら辺は自分で調べて。


ちょっと前まで、SAFEARRAY と、Array オブジェクトの相互変換を行う
JSafeArray つー ActiveX があったけど、今はどうなっているやら。
346デフォルトの名無しさん:2006/03/08(水) 23:39:42
うおおーんC#簡単だようおおーんチクショウが。
347デフォルトの名無しさん:2006/03/10(金) 00:34:42
>>346
2003でマネージドC++触ってみたけど、.NET Frameworkよさげだね。
必要なところだけネイティブコードにできるし、ATL/WTLいらなくなりそう。
348デフォルトの名無しさん:2006/03/10(金) 07:39:42
MFC/WTLで足りないものがあるように
.NETもまた完璧ではない
349デフォルトの名無しさん:2006/03/10(金) 07:56:05
あるものは使う
ないものは作る
それでいいじゃないの
350デフォルトの名無しさん:2006/03/10(金) 08:08:59
unmanage
になるわな
351デフォルトの名無しさん:2006/03/10(金) 08:18:43
じゃあVBでもC#でも使えば。
352デフォルトの名無しさん:2006/03/10(金) 08:45:31
>>347
2005のC++/CLIは見た目にも良くなっている。
353デフォルトの名無しさん:2006/03/10(金) 09:15:00
へー、じゃあVBでもC#でも使えば。
API呼んでもunmanagedにならないんだ
354デフォルトの名無しさん:2006/03/10(金) 09:18:11
べつにあげあしの取り合いがしたかったわけじゃないのです。
生意気言ってすみませんでした。
355デフォルトの名無しさん:2006/03/10(金) 13:40:50
将来は.NET Framework = Windowsだからね
ATL/WTLはそれまでの命
356デフォルトの名無しさん:2006/03/10(金) 18:30:28
WTLで組んだソースが /clr 指定して問題なくコンパイルできたから、UI を WTL、ライブラリで
.net framework 2.0 という組み合わせはいけると感じた
357デフォルトの名無しさん:2006/03/10(金) 20:39:29
>>353
な り ま せ ん が な に か ?
358デフォルトの名無しさん:2006/03/10(金) 21:30:09
ライブラリ設計としてはパラメタライズ可能なWTLの方が
ずっと進歩的な感じがするが。
359デフォルトの名無しさん:2006/03/11(土) 00:04:50
WTLはIDEのウィザードがなあ・・・せめてMFCレベルに。
ダイアログリソースからクラス作成したら固まった(´・ω・`)
360デフォルトの名無しさん:2006/03/11(土) 00:30:37
親指シフトのように、すばらしいものが選ばれるとは限らないのが世の常で、
まあ結局は、WTLの作者様達がどこまでがんばってくれるか
それ次第ってところだな
開発停止になったらそこで終わりだ。
WTLは好きだが、将来確実に消えそうな気がする。
361・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/03/11(土) 00:52:43
viksoe先生ならきっとなんかしてくれる
362デフォルトの名無しさん:2006/03/11(土) 00:55:46
もし開発停止になったらこのスレで引き受けられないか?
363デフォルトの名無しさん:2006/03/11(土) 00:57:55
◆Pu/ODYSSEYを追い出さない限り無理な話だなw
364・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/03/11(土) 00:59:36
WinFXのOOベースでマネージドなAPIのパフォーマンスが
Win32 API並かそれ以上なら普通に乗り換えてそうな気もする。
365デフォルトの名無しさん:2006/03/11(土) 08:16:31
なるわけねえじゃん
366デフォルトの名無しさん:2006/03/11(土) 09:34:19
.net なssh端末がすごい遅くて使うのやめた事がある。
やっぱ全部それにしちゃうのは無理あるとオモタ。
367デフォルトの名無しさん:2006/03/12(日) 00:08:47
WinFXに移れる場合と、移れない場合があるわけだから。
移れない場合は WTLを使い続ければ良いんじゃね?
368デフォルトの名無しさん:2006/03/12(日) 01:21:21
今までも失敗を繰り返してるから五分五分だけど
.netは失敗してWindowsDNA同様死語になって欲しいところ
369デフォルトの名無しさん:2006/03/12(日) 01:57:15
今の.Netはぶっちゃけライブラリだから、死語になると言うことは JAVAのように添付されないってこったぞ?
370デフォルトの名無しさん:2006/03/12(日) 17:15:36
MSがどうしたいのかが一番わからん
371デフォルトの名無しさん:2006/03/12(日) 18:53:57
MSとしては、今後64ビットOSへの移行が本格化するにつれ、
開発者が32ビット用アプリと64ビット用アプリとを、別々に
ビルドしなきゃならんような事態を回避したかったんだろう。

ところが.NET Frameworkのチューンナップも普及も、今ひとつ
進まんうちに64ビットOS時代が来そうなので、右往左往していると。
372デフォルトの名無しさん:2006/03/13(月) 04:59:50
>>371
スバリ、あなたの言う通りの予感。
373デフォルトの名無しさん:2006/03/13(月) 08:41:38
IntelとAMD64が一緒になった時点で.NETは要らない子
残るItaniumとPPCはもともと特注前提だしバイナリ互換不要
374デフォルトの名無しさん:2006/03/13(月) 12:41:59
いや、そもそも64bitとかそういう問題じゃなくて
MSはハードウェアアーキに依存しないシステムを用意したかったらしい。
つーかMSの中の人はPPCやAlphaも視野に随分前から入れてた。
x86に縛られるのが嫌だったみたいだな。

まぁ、カトラーがx86嫌いだしw
375デフォルトの名無しさん:2006/03/13(月) 13:31:46
そりゃ、OSを作る側からすれば、誰でもハードに縛られない代物を目指すだろ。

ま、そういううわさ話が一人歩きしてるくせに、次のMSのOSではソケットもカーネルに押し込むようになっちまってたり。
イマイチ、出てる話は本当に思えないモノばかり。
376デフォルトの名無しさん:2006/03/15(水) 16:23:11
WTLでディレクテックスは使えないの?
377デフォルトの名無しさん:2006/03/15(水) 22:46:49
作成したCOMコンポーネントCLSIDを変えて出直したいと思ったんですけど、どのCLSIDを変更したらいんでしょうか?
????.idl
????.rgs
あと、ソース中のCLSIDはuuidgen.exeで生成して、それぞれ整合性を合わせてみたんですけど、
実行するとコンポーネントをCoCreateInstanceさせようとしたとこで、エラーが出てしまいます。
どっかやり忘れてるとこありますか?
378デフォルトの名無しさん:2006/03/15(水) 23:17:49
CComPtr<IDirect(ry
379デフォルトの名無しさん:2006/03/16(木) 00:55:42
CSortListViewCtrlなんですが、カラムの幅・ソートするカラム・ソートの昇順/降順
の状態を保存する機構は提供されてないのでしょうか?
自分でシコシコ書くしかない?
380デフォルトの名無しさん:2006/03/16(木) 13:35:09
>>377
CoCreateInstanceのHRESULTは何か?
381デフォルトの名無しさん:2006/03/16(木) 13:48:03
380さん、レスありがとうございます。
早速戻り値調べてみました。

CComPtr<IUnknown> spUnknown;
HRESULT result = spUnknown.CoCreateInstance(__uuidof(COMPONENT_NAME) ) ;
ATLTRACE( "%lx\n" , result ) ;
結果はヘキサーで「80040154」でした。

普段戻り値をFAILEDマクロでエラーを判断してました。
何か情報ありましたらよろしくお願いします。
382381:2006/03/16(木) 14:19:19
80040154でググってみるとクラス/コンポーネントが登録登録されてない的なメッセージが見つかり
一応「regsvr32」で登録するも結果は変わらずでした。(エラー無いようでした)
383デフォルトの名無しさん:2006/03/16(木) 16:20:25
>>377
全部変える。インタフェイスIDは変えなくてもいいけどわからないんなら変えとけ。
384デフォルトの名無しさん:2006/03/17(金) 22:43:59
CFrameWindowImplを継承したクラスで
CreateSimpleToolBarCtrl()でツールバーを作ってリバーに乗せようと思ったんだけど
↑は第二引数にツールバーのリソースIDを指定しなくちゃならない
いろいろ試したけど、このリソースは16色、16*15サイズに限られるみたいで、それが嫌で
主導でCToolBarCtrl::Create()を使ってツールバー構築して、フルカラーのアイコンにして、
リバーに乗せて、ここまでは良かったのだけど、
親ウィンドウの大きさを変えると透過ツールバーだったのが透過しなくなったり、
ボタンが表示されなくなったり、良く分からないバグに悩まされて散々な目にあいました
CreateSimpleToolBarCtrl()のコードを見て真似したつもりなのだけど…
どこかで間違ってると思うんですがどこで間違ってるのかずっと分からないんです

CreateSimpleToolBarCtrl()を使わないで24bitのアイコン使ったり
自由自在にツールバーを操作してるようなコード例ってどこかに無いでしょうか?
最後まで読んでくれた方ありがとう、長文すいませでしたorz
385デフォルトの名無しさん:2006/03/17(金) 22:58:01
>>384
>CreateSimpleToolBarCtrl()のコードを見て真似したつもりなのだけど…
俺も昔これを真似して::Create()からこつこつ書いたものをコピペします。参考になれば幸いです。
下記のコードで使用しているアイコンのbmpは8bitで、黒の背景が勝手に透過されました。わけわからん。

m_navbar.Create(m_hWnd, 0, 0,
WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS|
CCS_NODIVIDER|CCS_NORESIZE|CCS_NOPARENTALIGN|
TBSTYLE_TOOLTIPS);
m_navbar.ModifyStyle(0, TBSTYLE_FLAT);
m_navbar.SetButtonStructSize(); // AddButtonsの前に必ず呼び出す
m_navbar.SetButtonSize(CSize(19, 19)); // 数字は今のところ適当
m_navbar.SetBitmapSize(CSize(16, 16)); // 同上
HBITMAP bm = AtlLoadBitmapImage(
L"default.bmp", LR_LOADFROMFILE | LR_CREATEDIBSECTION);
m_navbar.AddBitmap(/* アイコンの個数 */, (HBITMAP)bm);
// ここからやっとAddButtons等でボタンを追加
AddSimpleReBarBand(m_navbar, 0, 1);
UIAddToolBar(m_navbar);
386デフォルトの名無しさん:2006/03/17(金) 23:20:08
>>385
ありがとうございます。
自分の手元にあるコードと同じ感じです
SetButtonStructSizeを呼び出さないと駄目って辺りが、
MSDNのMFCの方のCToolBarCtrlの使い方には書いてなくて、嫌らしい感じです。
そこで数時間ハマりました。
BitMapの黒い背景はCImageListで抜き色をMask指定してやればいいと思うのですが、どんな方法があるのでしょうね。

MSDN見てもMFCとATLは微妙に違ったりして分かりにくいし、Windowsのプログラミングは難しいです
十数時間格闘して未だにツールバーが使いこなせません…orz
387デフォルトの名無しさん:2006/03/17(金) 23:45:27
>>386
うーむ、難しいですね。

「ボタンが表示されない」という現象については、TBSTYLE_FLATスタイルの付け忘れではないでしょうか?
ただし、ModifyStyleによって後から付け足さないと.manifestによるxpスタイルを適用した時に
リバーの背景が真っ黒(真っ白?)になった経験があります。
「親ウィンドウの大きさを変えると〜」は起きた事がないですね・・・

 >>384でAtlLoadBitmapImageに指定するLR_CREATEDIBSECTIONは
24bit bmpだと真っ黒にされてしまうようでした。
8bit bmpで指定した場合は運良く黒が透過されていたようで、もう何がなんだかorz
388デフォルトの名無しさん:2006/03/17(金) 23:53:54
>>387
>ModifyStyleによって後から付け足さないと
あー、それかもしれません。いつか聞いたことがあるような無いような…
私は最初からFLATスタイル付けてました。それだと駄目なんですね。
自宅に帰ったら試してみます。ありがとうございました。
ちなみにそれ、MSDNかどこかに書いてましたか…?

Bitmap周りの操作は本当に複雑で難しいですよね
私も現在進行形で苦労してて的確なアドバイスが出来ないです。すいません。

皆悩むところは同じですね…
389デフォルトの名無しさん:2006/03/18(土) 00:25:52
>>388
ググって偶然出てきた感じでMSDNには書いてなかったような気もします。
xpスタイルを適用しない場合は、最初からでもTBSTYLE_FLATが付いていれば
こちらでは、ボタンは表示されてました。
それ以外には原因は思い当たらないです・・・
390デフォルトの名無しさん:2006/03/18(土) 00:34:57
CAtlWinModuleにInit()が見つからないのですが
391デフォルトの名無しさん:2006/03/18(土) 09:22:50
>>390
コンストラクタで処理するようになったのでInitは要らなくなった。
http://msdn.microsoft.com/library/ja/vccore/html/vcgrfATLModuleClasses.asp
392デフォルトの名無しさん:2006/03/18(土) 11:38:33
なるほど
なんか気持ち悪いですな
393デフォルトの名無しさん:2006/03/18(土) 12:07:01
C++のコンストラクタというものを活用してこなかった今までのほうがよっぽど気持ち悪い。
394デフォルトの名無しさん:2006/03/18(土) 13:12:57
>>393
コンストラクタで必ず初期化する仕様だと、初期化するタイミングを選べなくなる。
395デフォルトの名無しさん:2006/03/18(土) 13:20:18
ハァ?
396デフォルトの名無しさん:2006/03/18(土) 13:28:23
初期化と代入の区別がついてないようだ
397デフォルトの名無しさん:2006/03/18(土) 13:29:54
グローバルに置くものだと初期化のタイミングを制御しないといけないこともあるね。

あとはコンストラクタだと良くない事が起こった時に例外を使わざるをえなくなるのが、
昔はけっこうつらかったんじゃないかねえ。
398http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 18:57:55
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応した置換ソフトないですか?
399デフォルトの名無しさん:2006/03/18(土) 19:30:17
コンストラクタ内例外を処理するの避けてたんだろ。
今はちゃんと規約化されてコンパイラに実装されてるから、安心して使えようになったと。
400デフォルトの名無しさん:2006/03/20(月) 18:36:16
VC++2003 ATL&WTLで組んでます。
atlsync.hにCEvent等の同期オブジェクトクラスがあるのですが
ATLの名前空間にあるのに、MSDNにはMFCのCEventしか載ってません。
これらは使っていいのでしょうか?
401デフォルトの名無しさん:2006/03/20(月) 18:39:02
おまいはだめ(笑)
402デフォルトの名無しさん:2006/03/21(火) 01:02:24
>>401
回答に誠意が感じられないわけだが
はい次の回答者どうぞ
403デフォルトの名無しさん:2006/03/21(火) 10:45:11
中身見て自分の目的に合ってれば使えばいいじゃん。
404デフォルトの名無しさん:2006/03/21(火) 13:59:21
ドキュメント化されてないってことは、将来変更・削除される可能性があるから
長期間保守・拡張するつもりなら使うべきではないだろうな。
405デフォルトの名無しさん:2006/03/21(火) 16:48:37
俺ならCHandleを使う
406デフォルトの名無しさん:2006/03/25(土) 13:03:27
一方ロシアは鉛筆を使った。
407デフォルトの名無しさん:2006/03/25(土) 14:29:18
なんてこったパンナコッタ
408前スレ853:2006/03/32(土) 21:40:07
みなさんいつもレスありがとうございます。
CreateFileMoniker()で作成されるIMonikerオブジェクトは、BindToObjectでファイル内にあるOLE情報を読み取って対応するサーバを起動するようなのですが、このような情報を含むファイルを作成するにはどうしたらよいのでしょうか?
というか、これってどういう仕組みなんですか?
409デフォルトの名無しさん:2006/04/02(日) 19:57:51
メッセージハンドラ付きのリストビュークラスを作りたいのだけど、
CWindowImplだと、クラス名(WC_LISTVIEW)を受け付けてくれなくて参っちまってます。上手い手ないっすかね。
410デフォルトの名無しさん:2006/04/02(日) 21:14:10
>>409
CSortListViewCtrlを参考にしてみれば?
411デフォルトの名無しさん:2006/04/02(日) 22:13:03
>>410
サンクスです、真似してCListViewCtrl::GetWndClassName()で上手く行きました。


…というか、うにこーど考慮してたのが駄目だったみたいっす、すんません
412デフォルトの名無しさん:2006/04/02(日) 22:15:57
>>409
こんな感じでどうや?

class CMyListViewCtrl : public CWindowImpl<CMyListViewCtrl, CListViewCtrl>
{
    DECLARE_WND_SUPERCLASS(NULL, CListViewCtrl::GetWndClassName())
public:
    BEGIN_MSG_MAP(CMyListViewCtrl)
        CHAIN_MSG_MAP(__super)
    END_MSG_MAP()
}
413412:2006/04/02(日) 22:18:59
チッ 一足遅かった w
414デフォルトの名無しさん:2006/04/03(月) 19:13:01
>>412
おお、すまんw
ありがとう
415デフォルトの名無しさん:2006/04/05(水) 00:25:13
専用の派生クラスを作らずに
IDD〜のIDから直接ダイアログを召還する方法はありますか?
416デフォルトの名無しさん:2006/04/05(水) 00:32:11
>>415
WinAPIのDialogBoxやCreateDialogなどではだめですか?
417デフォルトの名無しさん:2006/04/05(水) 01:38:06
>>415
CSimpleDialogは?
418デフォルトの名無しさん:2006/04/05(水) 13:40:49
タブコントロールにコードでFORMVIEW貼り付けています。
XPだとタブの背景が白色ですが、FORMVIEWは灰色です。
WM_CTLCOLORDLGで白に塗ると2000で起動した場合
タブの背景が灰色なので浮くです。
419デフォルトの名無しさん:2006/04/05(水) 16:17:18
へぇ〜
420デフォルトの名無しさん:2006/04/05(水) 19:29:55
なるほど浮くのねぇ
421デフォルトの名無しさん:2006/04/05(水) 21:24:52
もちみにはいとかをさくじょ
422デフォルトの名無しさん:2006/04/05(水) 22:03:12
uxtheme.dll
423デフォルトの名無しさん:2006/04/05(水) 23:45:58
XPなら自分で白に塗る
2000ならスキップ
424デフォルトの名無しさん:2006/04/08(土) 16:21:04
>>10さん同様、スプリッタに乗せたタブの背景が
VisualStyle適用時にうまく描画されない現象で困っています。
atlsplit.hを直接編集し、WM_ERASEBKGNDをハンドルしないようにして
背景ブラシをCOLOR_WINDOWからCOLOR_3DFACEに変更することで
一応問題は解決するのですが、ソースコードを直接いじるのは少し抵抗があります。
ほかに解決策などご存知の方はいっしゃいませんか?(WTL 7.5build 5333)
425デフォルトの名無しさん:2006/04/08(土) 16:58:06
派生させればいいじゃない
426デフォルトの名無しさん:2006/04/08(土) 17:31:32
WM_PRINTCLIENTだったかしら
427デフォルトの名無しさん:2006/04/08(土) 21:45:39
CComModuleのインスタンスの名前ってどうして
_Moduleじゃないといけないんですか?
428デフォルトの名無しさん:2006/04/08(土) 22:23:57
CWindowImplあたりがごにょこにょするからじゃないか
429デフォルトの名無しさん:2006/04/08(土) 23:41:26
Grep
430デフォルトの名無しさん:2006/04/10(月) 21:38:09
PropertySheetが白くなるのはどうしてですか?
431デフォルトの名無しさん:2006/04/13(木) 21:47:51
IWebBrowser2を使用したカスタムブラウザとHTMLドキュメント中のJavascriptと通信をしようとしています。
C++側からJavascriptのファンクションを叩くのは、IHTMLWindow2のexecScriptで出来たんですが、
JavascriptからC++のメソッドを叩く事が出来ずに困っています。
何方か情報ありましたら、よろしくお願いします。
432デフォルトの名無しさん:2006/04/13(木) 22:04:50
COMとしてIDispatchを公開とか
433デフォルトの名無しさん:2006/04/13(木) 23:34:20
IDocHostUIHandlerのGetExternalは?
434デフォルトの名無しさん:2006/04/16(日) 11:40:01
質問です。すごく初歩的な段階でつまづいています。
VisualC++6.0で、MFCダイアログベースでプロジェクトを作成しています。
「挿入」→「ATLオブジェクトの新規作成」を選び、
「MFCプロジェクトにATLのサポートを追加してもよろしいですか?」→「はい」を選び、
stdafx.h に 以下の記述が追加されました。

#define _ATL_APARTMENT_THREADED
#include <atlbase.h>
class CSample001Module : public CComModule
{
//略
};
extern CSample001Module _Module;
#include <atlcom.h>

この時点でビルドはできます。次に、stdafx.h に
#include <atlapp.h>
を追加したのですが、以下のコンパイルエラーがでます。
C:\Sample001\Sample001Dlg.cpp(101) : error C2872: 'CMenu' : あいまいなシンボルです。
C:\Sample001\Sample001Dlg.cpp(144) : error C2872: 'CPaintDC' : あいまいなシンボルです。

これを解決するにはどうすればいいんでしょうか?
435デフォルトの名無しさん:2006/04/16(日) 12:21:31
>>434
ATLのヘッダをインクルードする前に#define _ATL_NO_AUTOMATIC_NAMESPACEとしておくとどう?
436434:2006/04/16(日) 12:36:45
>>435
おおおおありがとうです!
MFCと同じ名前のクラスだから、おそらくそういう問題だろうなと思ってはいました。
#define _WTL_NO_AUTOMATIC_NAMESPACE
の方でうまくいきましたが、ググるヒント戴いたので発見できました。感謝です!
437434:2006/04/16(日) 15:26:17
しかし・・・MFCプロジェクトでWTLを使うって、あんまりやらないんでしょうか?
解説サイトが少ないし、コンパイルエラーがたくさんです・・・
438デフォルトの名無しさん:2006/04/16(日) 15:43:10
MFC/WTLは守備範囲が似通ってるんで、WTL/ATL、MFC/ATLに比べると
あまり一般的でないような気もします。
439デフォルトの名無しさん:2006/04/16(日) 16:23:50
MFC使うならWTL使う必要なんて無いだろうと小一(ry
440434:2006/04/16(日) 17:35:04
やっぱりそうなんですね。薄々は…。
たった1個所、とある機能の実装でWTLであればすぐできるものがあって、
上からWTL使ってやってねと言われていました。しかしもうこれはMFCで
やることを提案して押し通します。
441デフォルトの名無しさん:2006/04/16(日) 18:18:17
CPaneContainerか、CCommandBarあたり?
442デフォルトの名無しさん:2006/04/17(月) 11:09:57
俺はコマンドバーを使いたいがためにWTLに移った
443デフォルトの名無しさん:2006/04/17(月) 20:04:09
ダイアログリサイズのこともたまには思い出してあげてください
444441:2006/04/17(月) 22:31:15
>>443
そういえば、以前勤めていた会社でダイアログを表示するCOM(ATLベース)を
組んだ際に、WTLのダイアログリサイズにお世話になりました。

ちなみに、VMWare Wokstationでは、どうもWTLを使わずに、
ATLでCPaneContainer、CCommandBar相当のものが
実装されてるっぽいんですが(Spy++で確認する限り)、
どなたか詳細か方法をご存知ないですか?
445デフォルトの名無しさん:2006/04/17(月) 22:49:43
独自実装なんじゃないの?
446・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/17(月) 23:26:58
>>444
WTLのソース読めばいいじゃんwww
ウィンドウクラスネームなら派生先で好き勝手変えられるし
447デフォルトの名無しさん:2006/04/17(月) 23:46:47
WTL って SDK直で書くよりいいことあるの?
448・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/17(月) 23:55:16
「STLってコンテナやソート自前で実装するよりいいことあるの?」
449デフォルトの名無しさん:2006/04/18(火) 03:33:51
アタマワルソウ
450デフォルトの名無しさん:2006/04/18(火) 04:00:11
>>447
大雑把にいってCとC++の違い。
API呼び出しを包んだライブラリは色々あるけど、
WTLはMFCの次にメジャーで共通点も多い。

451441,444:2006/04/18(火) 06:31:14
>>446
まぁ確かにそのとおりですね。VMWareも案外、ウィンドウクラス名を
"WTL_〜"⇒"ATL:〜"に置換しているだけなのかもしれません。

WTLをフルに使ったソフトが以外と少ないのも、企業/商用では
WTLのソースの一部しか利用しないからなのかもしれませんね。
http://hp.vector.co.jp/authors/VA022575/c/bywtl.html
452デフォルトの名無しさん:2006/04/18(火) 10:52:39 BE:286659247-
基本的にオープンソースを信頼しない顧客も多いからね。
基底になってるATLに関してはMSの保障の範囲内。
どのみち「ATLから派生したクラス群」なのは間違いないし、
ウィンドウクラス名を書き換えてWTL使ってることをわからなくして
利用するだけの理由はないともいえない罠。

同じコミュニティベースのライブラリでもBoostプロジェクトには金出して
人材送り込み、宣伝文句にも使われてるのに、WTLはMS公式に
大々的に取り上げられるされることもなくコミュニティに
丸投げ状態になったからな。

WTLがMFCの次にメジャーってのはちと疑問符。
でも、MSが投げ気味な技術・ライブラリでここまでユーザーに
支持されてるものはほかに無いかもwww
453デフォルトの名無しさん:2006/04/18(火) 11:35:01
>>452
 Microsoft が「保障」するのって、Windows OS の特許関係の問題に
ついてだけであって、ATL に酷いバグがあって損害が発生したりした
ときには何もしてくれないんじゃない?

実際一頃ATLのバグのせいで2バイト文字を含むパスのディレクトリに
はインストールできないアプリとかあったけど、MSが何か保障したり
補償したりという話は聞かないし。

WTL があまりメジャーになっていないように見えるのは、MFCに比べて
敷居が高いのとドキュメントが少ないからだと思うな。
454デフォルトの名無しさん:2006/04/18(火) 11:37:21
保証っていうか、サポートってことじゃない?
455デフォルトの名無しさん:2006/04/18(火) 20:18:34
knowledge base に不具合解説の記事が載るか載らないか
あたりが境目じゃね?>サポート
456・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/18(火) 21:15:12
マジレス
WTLは「ATL Power Toys」
457451:2006/04/18(火) 21:52:51
ライブラリ開発チーム(MS、OpenSource含む)のモチベーション的には
ATL Server >> MFC > ATL >> WTL なような気がします。
(VS2005の各エディションで、ATL Serverのみ差別化を図っているようなんで…)

WTLは、ATLを使っていた人が戸惑わないように作ってあるとのことなんで、
一時でてた、WTLのATL非依存化の話も、ないんだろうなぁ〜と。
http://decster.blog.edu.cn/user1/3191/archives/2005/239691.shtml


ところで、話し変わって質問なんですが、Donutの元ソース(CodeProject内のもの)の
WTL拡張部分って商用に使っても問題ないんでしょうか?
あと、DonutP系列のソース公開サイトの場所をどなたかご存知ないでしょうか?
458・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/18(火) 22:06:17
Donut PはWeb Archiveにソース丸ごとあったけど、7.xじゃコンパイルとおらなかった気が。
Donut系オープンソースブラウザはunDonutが最新じゃないかなと。
459457:2006/04/18(火) 22:57:30
>>458
ありがとうございます。よくよく調べてみると、ありました。
---
DonutP
http://www.donutp.com/source/donut_source_5_0_beta3.zip
unDonut
http://undonut.sakura.ne.jp/file/unDonutsrc_r13test.zip
---
unDonutの掲示板を見てたら、作者さんがスクラップからの再作成を
試みてるようですね(WTL7.5ベース?)。少しわくわくします。
460デフォルトの名無しさん:2006/04/19(水) 13:55:11
スクラップ?
461459:2006/04/19(水) 17:14:19
>>460
スクラッチの間違いでした…orz
462デフォルトの名無しさん:2006/04/19(水) 17:16:49
僕の肛門もスクラップからの再作成を試みてるようです!
正直、少しわくわくします><
463461:2006/04/19(水) 20:58:24
>>462
いやん
464デフォルトの名無しさん:2006/04/20(木) 00:51:21
Dounutは肛門に優しいよな。
465デフォルトの名無しさん:2006/04/20(木) 07:15:14
IEのメニューを拡張するってのがあるんだけど、どうやったら作れますか。
http://marine.nureyev.net/toolbar/index.php?PopupMenuPlugin

スレ違いだったらm(__)m
466デフォルトの名無しさん:2006/04/20(木) 08:19:04
アナルプラグで拡張だなんて!
467デフォルトの名無しさん:2006/04/22(土) 18:48:59
Visual C++ 6 ではコンパイルできていたプログラムなんですが、
Visual C++ 2005 では atlapp.h が無いということでコンパイルできません。
移植するにはどこから手を付ければよいでしょうか?
468467:2006/04/22(土) 18:54:11
一応 Visual C++ 7.1 (2003) も持っているんですが、
それでも atlapp.h は無いようです。
469デフォルトの名無しさん:2006/04/22(土) 18:56:32
>>468
atlapp.h は WTL の一部。
470467:2006/04/22(土) 19:54:08
>>469 ありがとうございました。
WTL 7.5 で行けそうなフインキ(←なぜか変換できない)なんですが、
atlres.h がみつかりません。WTL のバージョン違いでしょうか?
471デフォルトの名無しさん:2006/04/22(土) 19:56:43
それはATLでは?
472デフォルトの名無しさん:2006/04/22(土) 19:58:37
>>470
それも WTL の一部。7.5にも入ってるよ。
473デフォルトの名無しさん:2006/04/22(土) 20:14:08
>>470
>雰囲気(フンイキ)
パスが通ってないというオチじゃないよね
474467:2006/04/22(土) 20:56:24
>>473 リソースファイルの先頭で

//Microsoft Developer Studio generated resource script.
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
// Generated from the TEXTINCLUDE 2 resource.
#include "atlres.h"

となってまして、ここでインクルードできません。
リソースエディタで開こうとしてもこれがインクルードできず
怒られてしまいます。元々は VC++6 で作られていたコードを
VC++8 で開いています。
475467:2006/04/22(土) 20:59:46
>>473 すんません、そうでした・・・・
リソースコンパイラのインクルードパスは
コンパイラとは別でした・・・orz
476デフォルトの名無しさん:2006/04/22(土) 21:52:39
>>470
ふんいき だろ。
477デフォルトの名無しさん:2006/04/23(日) 01:22:03
まじれすかっこわる・・・
478デフォルトの名無しさん:2006/04/27(木) 08:46:54
今時このネタも寒気がするけどなw
479デフォルトの名無しさん:2006/04/27(木) 17:13:00
ふつうのCWindowImplから作ったウインドーで
OnInitDialogみたいに自分自身の中でサイズとか見た目を改造するには
どのメッセージ、又は関数を使いますか?
480デフォルトの名無しさん:2006/04/27(木) 17:16:16
よく意味がわからないけど、WTLのクラスをインスタンス化して作ったウィンドウは
皆ウィンドウハンドルのm_hWndを保持しているから、それに対してAPIを呼ぶか
SetClassLongやSetWindowPosでどうですか
481デフォルトの名無しさん:2006/04/27(木) 17:19:17
WM_CREATEじゃね?
482デフォルトの名無しさん:2006/04/27(木) 17:22:53
ない
483デフォルトの名無しさん:2006/04/27(木) 17:25:16
WM_CREATEで自分に自前のイベントポストしといて、それで何かやったりもするよ。
484・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/27(木) 17:25:59
>>479
初期化ならWM_CREATEイベントつかまえてOnCreateなりのメンバ関数
作ればいいと思うよ。
あと、CDialogResizeは実はダイアログ以外にも利用可能だから便利。

てかダイアログリソースなしでダイアログ窓作る場合もWM_CREATEな。
485デフォルトの名無しさん:2006/04/27(木) 17:26:20
てか、WTLにPreCreateWindowってあるの?
486・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/27(木) 17:27:11
ないね。WinMain直接叩けるから前処理はそこでやる。
487デフォルトの名無しさん:2006/04/27(木) 17:27:29
HWND Create(〜)
{
HWND hWnd = CWindowImpl::Create(〜);
いろいろ
return hWnd;
}
488デフォルトの名無しさん:2006/04/27(木) 17:34:21
CWindowImpl::Createの引数にサイズとスタイル指定すればいいだけなんじゃ…
て、質問の意味がよく分からん。
489479:2006/04/27(木) 17:38:46
LPCREATESTRUCTで出来るみたいでした
どうも
490・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/27(木) 17:44:38
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtla-01/index.html

俺そんなの使ってな(ry
AppWizardの吐いたATLスタイルのメッセージクラッカ使ってるし。
491デフォルトの名無しさん:2006/04/27(木) 17:47:34
俺も知らんかった…。
てか、AppWizardでWTL用のメッセージマクロ(DDXも含む)を出せないもんかね。
492デフォルトの名無しさん:2006/04/27(木) 19:53:36
そんなときこそWTLHelper
493491:2006/04/27(木) 20:00:28
おぉ、すげぇ。
http://www.codeproject.com/macro/WTLHelper.asp
頻繁なアップデートも好感が持てますな…。
早速使ってみまつ。
494・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/27(木) 20:06:27
これが使いたいがために2003未だに使ってる
495デフォルトの名無しさん:2006/04/27(木) 20:11:34
2005でも使えるよ
時たま落ちるけどorz
496デフォルトの名無しさん:2006/04/27(木) 23:12:40
2005って何版?
Exp版で出来んかったんだが…
497・∀・)っ-○●◎ ◆Pu/ODYSSEY :2006/04/27(木) 23:29:40
そりゃ無理
最低Standard
498デフォルトの名無しさん:2006/04/27(木) 23:44:48
そうか…
サンクス
499デフォルトの名無しさん:2006/04/28(金) 15:08:15
こんな感じで処理を実装してるんですが、処理がモーダルのようになってしまい、
下記の実装で作られたウインドを閉じないと他のウインドの処理が進まなくなって困ってます。
class CMyWindow :
 public CComPtr<CMyWindow> ,
 public CComObjectRootEx<CComSingleThreadModel>,
 public CWindowImpl<CMyWindow,CWindow>
{
 色々実装
}
ところが、これを、

class CMyWindow :
 public CComPtr<CMyWindow> ,
 public CComObjectRootEx<CComSingleThreadModel>,
 public CWindowImpl<CMyWindow,CAxWindow>//CWindowからCAxWindowに変えた
{
 色々実装
}

とすると、正しく処理される事は分かったんですが、このウインドではActiveXを
使用するわけではないのでCAxWindowは使いたく無いんですが、どうするのが正解なんでしょうか?
以上です、情報ありましたらよろしくお願いします。
500デフォルトの名無しさん:2006/04/28(金) 15:12:55
呼び出し元でCreateの引数にParentのウィンドウハンドルを指定してるか、
メッセージループを回しているとかでは?
501499:2006/04/28(金) 16:45:40
>500
レスありがとうございます。
>呼び出し元でCreateの引数にParentのウィンドウハンドルを指定してるか、
>メッセージループを回しているとかでは?
早速親ウインドウハンドルをNULLにしてみましたが状況は変わりありませんでした、
また、メッセージ処理については、BEGIN_MSG_MAPでマクロで処理していますが、実装はありません。
以上です、また何か情報ありましたらよろしくお願いします。
502デフォルトの名無しさん:2006/04/28(金) 17:06:34
2005ExpressではWTLやATLは使えないんですね
すなおに6.0使えってことか
503500:2006/04/28(金) 17:37:15
>>501
てか、良く見ると public CComPtr<CMyWindow>がおかしひ気が…。
普通にAppWizardでシンプルオブジェクト追加してから、CWindowImplを
追加した方が良いのではないかと…。
---
class ATL_NO_VTABLE CMyWindow :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMyWindow, &CLSID_MyWindow>,
public IDispatchImpl<IMyWindow, &IID_IMyWindow, &LIBID_XXXLib>,
public CWindowImpl<CMyWindow, CWindow>
---
504デフォルトの名無しさん:2006/04/28(金) 19:33:37
class CMainWindow : public CWindowImpl<CMainWindow>
{略}


CMainWindow wndMain;
if(wndMain.Create(NULL) == NULL)
return -1;
だと失敗します。

CMainWindow wndMain;
if(wndMain.Create(NULL, CWindow::rcDefault, TEXT("そふと"), WS_CAPTION) == NULL)
return -1;
だと成功します。

どうやら
dwStyleにWS_CAPTIONが無いとウインドウは作れないみたいです。

どうすればいいですか?
505デフォルトの名無しさん:2006/04/28(金) 21:35:25
ASPで使用する、SAFEARRAYを返すCOMを作ってるのですが、
その返した配列をまたCOMへ渡したときに
if(data->pvarVal->vt != (VT_VARIANT | VT_BYREF | VT_ARRAY)){
 return -1;
}
ここで引っかかってしまいます。

返ってきた配列を他の配列にコピーし、
それをCOMに渡すと
正常に動作します。

SAFEARRAYの作り方が間違ってるのでしょうか?
コードは以下に載せます。
506デフォルトの名無しさん:2006/04/28(金) 21:47:01
と思ったのですが書ききれませんでした。改行が多くてエラーです。
その配列を、ASPのVBscript内ならば、普通にアクセスできるのです。
再度COMへ渡すとダメになりました。

それとも、帰ってくる配列もそれなりにサイズを確保しておかないといけないのでしょうか。
507デフォルトの名無しさん:2006/04/28(金) 22:07:46
なんとなくわかりました。
[out,retval] SAFEARRAY ** pvaVal
で返さないといけないんですかね。
[out,retval] VARIANT * pvaVal
ってしてたのが問題みたいです。
508デフォルトの名無しさん:2006/04/28(金) 22:29:59
とおもったけどVBscriptはSAFEARRAYを扱えませんね。
完全ハマりました。
コピーして回避することにします。それでは。
509デフォルトの名無しさん:2006/04/29(土) 00:32:45
>>508

VBscriptがSAFEARRAYを使えない無いぞ。

pparrayの中にデータが渡っているぞ。
510デフォルトの名無しさん:2006/04/29(土) 00:39:22
うげっ、

false VBscriptがSAFEARRAYを使えない無いぞ。 
true VBscriptもSAFEARRAYを使っているそ゜。
511デフォルトの名無しさん:2006/04/29(土) 00:44:57
うげっ、また間違えた

pparrayの中にデータが渡っているぞ。 ->VBscriptからSAFEARRAYつーかバリアントでデータ貰う時。

pparrayの中にデータを突っ込め。 ->>VBscriptにデータを渡す時。
512デフォルトの名無しさん:2006/04/29(土) 06:55:16
513デフォルトの名無しさん:2006/04/29(土) 08:49:51
それでもATLのバージョンは新しいものではないけどな。
514デフォルトの名無しさん:2006/04/29(土) 11:45:56
IActiveScriptのAddNamedItemでイベント付きオブジェクトを設定したんですが、
JScriptではイベント捕捉(x::OnClick)できて、VBScriptでは認識(x_OnClick)できません。
なぜでしょうか?
515514:2006/04/29(土) 21:05:53
失礼しました、自己解決しました。IActiveScript::SetScriptState(SCRIPTSTATE_CONNECTED)を
複数回呼び出してしまったのが間違いだったようです…orz
516デフォルトの名無しさん:2006/04/30(日) 01:15:12
WTLプロジェクトを作りプログラムを有る程度作成したあとに、あとからCOMサーバーにしたくなった時の質問です。

同名のプロジェクトをつくって、差分をプロジェクトにコピペだけでokですか?
それとも、新しくつくったプロジェクトに新たにくっつけた方が楽なのでしょうか?
517デフォルトの名無しさん:2006/04/30(日) 19:26:28
何とも答えようがない質問ばかりだなおい
518デフォルトの名無しさん:2006/05/01(月) 11:14:52
WTL版のBCGControl相当で、さらにフリーのやつってないですよね。
VS2005のドッキング機能を実現したいんですが…。
519デフォルトの名無しさん:2006/05/01(月) 14:28:30
ちょっと、キョン!当然あたしたちのCD予約したわよね?
――えっ、まだしてないの?あんた、SOS団の一員としての自覚あるの?
――何、「曲のほうは?」って?それなら心配いらないわ!
なんったって、団長のあたしが保証するんだから間違いないわ!
一度聴いたら、ぜ〜〜ったい踊りたくなるんだから!
涼宮ハルヒの憂鬱ED「ハレ晴レユカイ」5月10日発売!
絶対買いなさい!!
520デフォルトの名無しさん:2006/05/01(月) 15:32:55
521デフォルトの名無しさん:2006/05/01(月) 15:41:14
>>511
ありがとうございます。
でもダメでした。BASP21の作者さんのコード
使ってるんですが、やっぱりCOM再突入でエラーです。
きっと、WinCEだからです。
そう解釈することにします。
522518:2006/05/01(月) 15:53:31
近いんですが、可能であれば、こんなのが…。
ttp://www.atmarkit.co.jp/fdotnet/vb2005/vb2005_13/vb2005_13_01.html
523デフォルトの名無しさん:2006/05/01(月) 18:51:24
がんばれ
524522:2006/05/01(月) 22:25:45
商用ならいろいろありそうなんですが、とりあえず自力で頑張ってみます。
ttp://www.componentsource.com/relevance/index.html?q=Dock%2A+window%2A
525デフォルトの名無しさん:2006/05/09(火) 18:04:20
MFCだとダイアログリソースが1つのrcファイルに入ってしまいますが、
WTLだとどうなりますか?

1つのダイアログがプロジェクト情報と独立してて、
複数プロジェクトでダイアログを使える、VC++6用のライブラリを探してます。

ただ、ダイアログクラスをコード派生するのじゃなく、
リソースエディタみたいなもので編集したいです。
526デフォルトの名無しさん:2006/05/09(火) 22:58:27
>>525
> ただ、ダイアログクラスをコード派生するのじゃなく、
> リソースエディタみたいなもので編集したいです

できねえよ
MFCにはやられたなw
527デフォルトの名無しさん:2006/05/10(水) 08:51:40
じゃあ、WTLのレイアウトってどうやるんでしょう?

ソース書いて実行させて、みたいな?
効率悪そう。
528デフォルトの名無しさん:2006/05/10(水) 08:59:05
う?リソースは普通にリソースエディタで作ってるけど・・・?
529デフォルトの名無しさん:2006/05/10(水) 09:13:14
あ、リソースエディタベースなんだ。

VC++のIDEがリソースファイルをイジルんじゃなくて、
自分でリソースファイル構成も自由に出来るから、
ダイアログ1つに1リソースファイルってのも出来る?
530デフォルトの名無しさん:2006/05/10(水) 09:30:06
別にどうとでも好きなようにできると思うけど。

MFCとかWTLとかのフレームワークはリソースを利用することができるけど、
リソースの仕組み自体はそれらとは独立してるよね?
531デフォルトの名無しさん:2006/05/10(水) 09:35:34
>MFC
>リソースの仕組み自体はそれらとは独立してるよね?

ここまで逝っちゃうと、ウソつけ、となっちゃうよ。
MFCでポトペタすると、固定ファイル名のresource.hと1つのrcファイルを無条件に編集される。
プロジェクトからダイアログが全く独立してない。
532デフォルトの名無しさん:2006/05/10(水) 09:46:34
そりゃなんとかWizardにおまかせすりゃそうなるだろうけど、
それはWizardがそういう使い方をしてるってだけじゃないの?

別にWizard使わなくてもMFCは使えるじゃん。
つか、ある程度の規模になったらWizardなんかうざったくて使えないだろ。

とか言いつつ、漏れはWindows専門というわけではないんで、
もしかしたら使い方が間違ってるのかもしれない。
533デフォルトの名無しさん:2006/05/10(水) 10:00:12
別スレ - MFCに嫌気がさした人の数
http://pc8.2ch.net/test/read.cgi/tech/1059196520/l50
の472あたりが参考になるかも…。
WTL自体がMFCのATLコンパチブル版のような感じなので、さして違いはないかと。
534デフォルトの名無しさん:2006/05/10(水) 12:20:23
共通のリソースファイルを1つ用意して、
その中に該当ダイアログリソースを追加し、
プロジェクトごとにそのリソースファイルからダイアログリソースをコピーして使えば?
これだとMFCとかWTLとか関係ないでしょ。
535デフォルトの名無しさん:2006/05/10(水) 12:56:36
コピペコーディングはダメだっちゅーに。
536デフォルトの名無しさん:2006/05/10(水) 13:47:21
っていうか、DLLにリソース入れれば?
537デフォルトの名無しさん:2006/05/10(水) 15:53:09
複数プロジェクトのリソースをDLLに入れようにも上手く入らんでしょ。
538デフォルトの名無しさん:2006/05/10(水) 16:01:51
そもそも525がやりたいことがいまいち理解できん。
コモンコントロールにしたいなら、コードごとDLLにするべきだと思うが。
539デフォルトの名無しさん:2006/05/10(水) 22:08:51
>>538
525は放置しておくほうが良いよ
533のスレで同じことをやってたヤツだから
540525:2006/05/11(木) 08:39:17
>>539
うるせー、回答が得られないから放置したのはこっちだ。
こっちは明確にやりたい事があってMFCとWTLでは無理なのが明確になっただけ。
他のウィンドウライブラリ探すだけさ。
541デフォルトの名無しさん:2006/05/11(木) 08:57:42
昨日も書いたけど、MFCやらWTLやらのフレームワークの問題じゃない。
VCのIDEの中だけでやってる分にはどんなライブラリ使っても一緒だと思うけど。

>>533のリンク先は読んだの?
別個のリソースファイルに書いといて、インクルードして使ったらダメなの?
542デフォルトの名無しさん:2006/05/11(木) 23:10:38
>>540
キエロよ
> こっちは明確にやりたい事があって
オマエの脳内だけで明確なんだよ、無知でバカなだけなんだからキエロ
543デフォルトの名無しさん:2006/05/12(金) 01:10:26
>>540
キエロよ
> こっちは明確にやりたい事があって
オマエの脳内だけで明確なんだよ、無知でバカなだけなんだからキエロ
544デフォルトの名無しさん:2006/05/14(日) 03:28:34
CCheckListViewCtrlとCSortListViewの両方の機能を持った
ListViewを使用するための一番賢い方法はなんでしょうか?
545デフォルトの名無しさん:2006/05/14(日) 08:42:54
コピーペースト
546デフォルトの名無しさん:2006/05/14(日) 09:00:08
だろうなぁ。
547544:2006/05/14(日) 13:02:14
やっぱりそうですか…。
そう思ってCCheckListViewCtrlを継承したクラスの中に
CSortCheckListViewImplの中身をコピーペーストしたらうまく動いています。
これってライセンス的にはどうなるんですかね?
548デフォルトの名無しさん:2006/05/14(日) 13:10:57
WTLヘッダ群とファイルが分かれてたら、Donutとかもそうだし問題ないんでは…。
CPLの中をちゃんと読んだことないんで断言はできんが…。
549・∀・)っ-○◎● ◆toBASh.... :2006/05/14(日) 20:46:23
改造して作ったCSortChechListViewCrtlImpl<>を公開
てか、ライセンス問題発生せんだろ。そのクラスで金取るわけでもあるまいし。

むしろ、オーナーデータにしてもちゃんとチェックボックスの描画されるCCheckListViewCtrlを
550デフォルトの名無しさん:2006/05/14(日) 22:10:40
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`) 能登かわいいよ能登(;´Д`)
551デフォルトの名無しさん:2006/05/14(日) 22:56:56
>>547
両方から継承したら駄目?
それとも頓珍漢なことを言っている?<俺
552デフォルトの名無しさん:2006/05/16(火) 08:42:47
553デフォルトの名無しさん:2006/05/16(火) 10:13:18
>>551
それは、いわゆるダイアモンド継承(多重継承)というやつでは…。
554デフォルトの名無しさん:2006/05/16(火) 13:45:21
ATLのIDLインターフェースで、CHAR型ってサポートされてるんでしょうか?
他の言語(C#等)の相互運用性(Interop)の観点からアドバイス頂けますと幸いです。
555デフォルトの名無しさん:2006/05/16(火) 20:17:23
文字列型であるBSTRでいいと思うが、
-127〜+127の範囲の数値型がほしいわけ?
556554:2006/05/16(火) 20:27:37
>>555
はい、-127〜+127の範囲の数値型が取れればと思ってます。
557デフォルトの名無しさん:2006/05/16(火) 20:50:38
MIDL Predefined and Base Types
によれば、8bitのデータ型は、
byte, char, small
が存在する
558556:2006/05/16(火) 21:43:10
>>557
よくよく見てみるとMSDNにあったのですね。
smallで対応したいと思います。どうもありがとうございました。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/midl/midl/midl_predefined_and_base_types.asp
559デフォルトの名無しさん:2006/05/17(水) 06:04:20
なんかWTLAppWizardが変だと思ったら
JavascriptONにしないといけないのかい

560デフォルトの名無しさん:2006/05/17(水) 08:03:11
WTLってもう更新しないのかな。
VS2005だとウィザードで警告が出る問題だけでも、対応してほしいのに。
561デフォルトの名無しさん:2006/05/17(水) 16:37:35
>>547
俺ならこうする
template<class T1, class T2>
struct MyWinTraitsOR : T1, T2
{
static DWORD GetWndStyle(DWORD dwStyle) {
return T1::GetWndStyle(dwStyle) | T2::GetWndStyle(dwStyle);
}
static DWORD GetWndExStyle(DWORD dwStyle) {
return T1::GetWndExStyle(dwStyle) | T2::GetWndExStyle(dwStyle);
}
};
template<class T, class TBase = WTL::CListViewCtrl, class TWinTraits = MyWinTraitsOR<WTL::CSortListViewCtrlTraits, WTL::CCheckListViewCtrlTraits> >
class ATL_NO_VTABLE CSortCheckListViewImpl : public WTL::CCheckListViewCtrlImpl<T, TBase, TWinTraits>, public WTL::CSortListViewImpl<T>
{
typedef CSortCheckListViewImpl<T, TBase, TWinTraits> thisClass;
typedef WTL::CCheckListViewCtrlImpl<T, TBase, TWinTraits> baseClass;
public:
DECLARE_WND_SUPERCLASS(NULL, TBase::GetWndClassName())
bool SortItems(int iCol, bool bDescending = false)
{
return WTL::CSortListViewImpl<T>::DoSortItems(iCol, bDescending);
}
BEGIN_MSG_MAP(thisClass)
CHAIN_MSG_MAP(baseClass)
CHAIN_MSG_MAP(CSortListViewImpl<T>)
END_MSG_MAP()
};
562デフォルトの名無しさん:2006/05/17(水) 19:16:21
仮想リストビューでは使わない(使えない)組み合わせですけどな。
データモデルにはSTLのvector使ってソートはstable_sortで実装するのが好み。
563デフォルトの名無しさん:2006/05/18(木) 09:41:12
新しいのキター!
Expressでのウィザードのインストールがラクになった
564デフォルトの名無しさん:2006/05/18(木) 10:03:10
Release Name: WTL 8.0.6137
Changes: Bug fixes and App Wizard setup for VS2005 Express
565デフォルトの名無しさん:2006/05/18(木) 10:11:16
AppWizardに</OBJECT>タグが入れたら警告無くなるのね
566デフォルトの名無しさん:2006/05/18(木) 12:10:33
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー杏マナー
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏ーナマ杏
567デフォルトの名無しさん:2006/05/18(木) 16:11:52
568デフォルトの名無しさん:2006/05/19(金) 00:29:17
567の絵見てたらかゆくなった
569デフォルトの名無しさん:2006/05/19(金) 00:31:22
思わず拡張子を確認しちまった
570デフォルトの名無しさん:2006/05/19(金) 23:38:01
>>564
隣家にGdi32.lib 指定しないとコンパイルできなかったよ。(Exp)
571・∀・)っ-○◎● ◆toBASh.... :2006/05/19(金) 23:42:44
Express+WTLなかなか使えるなこれ

リソースエディタがないのが難点だが
572デフォルトの名無しさん:2006/05/20(土) 22:06:19
フリーのやつがあるじゃん
573デフォルトの名無しさん:2006/05/21(日) 06:54:42
Expressだけでやろうとするとリソースエディタとハンドラの追加がネックだわな。
アドイン使えないしね。外部ツールなら使えるが...
574デフォルトの名無しさん:2006/05/24(水) 09:20:20
enterprise 持ってるけどあんまり
Wizadもリソースエディタも使わんなぁ・・・

575デフォルトの名無しさん:2006/05/29(月) 23:01:33
なんですと
576デフォルトの名無しさん:2006/05/30(火) 00:50:28
VC8でCOMを勉強しようと思ったらOLE Viewがないぞ
577デフォルトの名無しさん:2006/05/30(火) 06:36:28
PlatformSDKに入ってるぞ
578デフォルトの名無しさん:2006/05/31(水) 00:49:42
AddSimpleReBarBand()でCTrackBarCtrlを追加しようとすると
ATLASSERT()で蹴られるんだけどなんとかならないでしょうか?
WTL Version 7.5 (build 5333)
579デフォルトの名無しさん:2006/05/31(水) 00:56:06
IsWindowでひっかかるなら
先にちゃんとCTrackBarCtrlはCreateされてるの?
ほかならわかんない
580578:2006/05/31(水) 00:56:15
すいません自己解決しました。
AddSimpleReBarBand()の前にSetLineSize(0)を
呼べばいいみたいです。お騒がせしました。
581・∀・)っ-○◎● ◆toBASh.... :2006/06/05(月) 22:54:47
atlstr.hってATL7.x以降じゃないと使えない?
もしくは代替手段茄子?
VS2003で書いてたプログラムを2005Express+WTLでもビルドできるように書き換えやってるんだけど
582デフォルトの名無しさん:2006/06/05(月) 23:12:41
ねえねえ
面白いもの見つけたよw



432 名前:玉様 ◆Epl6xC/3s2 [] 投稿日:2006/06/05(月) 23:04:01.66 ID:2PEp7UdI0
カオ
http://kjm.kir.jp/mailbbs2.php?pt=21455
カラダ
http://kjm.kir.jp/mailbbs2.php?pt=21498
マムコ
http://kjm.kir.jp/mailbbs2.php?pt=21461


おいらは↓ここにいます。虐めてねwww

玉様〜君がくれた春〜
http://tmp6.2ch.net/test/read.cgi/tubo/1140841526/
583デフォルトの名無しさん:2006/06/05(月) 23:18:06
J. Machin の公式で円周率を 2037 桁計算したりもしてる > ENIAC
意外に使える奴。
584583:2006/06/05(月) 23:19:02
誤爆スマソ
orz..
585デフォルトの名無しさん:2006/06/05(月) 23:23:17
アセンブラ… (゜□゜) ↑アッー!↓
http://pc8.2ch.net/test/read.cgi/tech/1148402614/

こちらへどうぞ
586デフォルトの名無しさん:2006/06/05(月) 23:30:10
>>581
CString目当てならWTLの<atlmisc.h>にWTL::CStringがある。
587・∀・)っ-○◎● ◆toBASh.... :2006/06/05(月) 23:42:59
>>586
とりあえずアレはGetWindowTextやSetWindowTextで使えないんで個人的に×

ATL::CString(A/W)のいいところはUNICODE⇔ANSIの変換が簡単にできることなんだな
588デフォルトの名無しさん:2006/06/06(火) 00:12:03
>GetWindowTextやSetWindowTextで使えない
意味不明
589デフォルトの名無しさん:2006/06/06(火) 00:14:11
   , -‐−-、  ヽ∧∧∧ //  |
.  /////_ハ ヽ< 釣れた!> ハ
  レ//j け ,fjlリ / ∨∨V ヽ  h. ゚l;
 ハイイト、"ヮノハ     //   |::: j  。
  /⌒ヽヾ'リ、     //     ヾ、≦ '
. {   j`ー' ハ      // ヽ∧∧∧∧∧∧∨/
  k〜'l   レヘ.   ,r'ス < 初めてなのに >
  | ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!>
.  l  \ `ー‐ゝ-〈/´   / ∨∨∨∨∨∨ヽ
  l 生団子 `ー-、___ノ
  ハ   ´ ̄` 〈/‐-、
590・∀・)っ-○◎● ◆toBASh.... :2006/06/06(火) 00:14:16
>>588
コンパイルエラー出るはずだけど?

ためしにCWindow::GetWindowTextの引数に指定してみて

ATL::CStringならOK。WTL::CStringだとアウト
591デフォルトの名無しさん:2006/06/06(火) 00:35:14
GetBufferとか知らない世代?
592デフォルトの名無しさん:2006/06/06(火) 00:42:25
団子は一級釣師
みんな釣られすぎ
593・∀・)っ-○◎● ◆toBASh.... :2006/06/06(火) 00:42:27
まぁどのみちWTL::CStringは使い道がない罠
594デフォルトの名無しさん:2006/06/06(火) 00:42:54
MFCなら、(LPCTSTR)XXXで行けそだけど、WTL3.0はダメ?
595・∀・)っ-○◎● ◆toBASh.... :2006/06/06(火) 00:49:42
最悪#ifdefで切り分けてUNICODE/ANSI変換をAPI使ってやるしかないかと。。。
WTL使うなら面倒でもStandard以上はないと不便ですな。

というかATL::CStringが便利すぎるんですよ。ATL Serverも無いと寂しいし。
596デフォルトの名無しさん:2006/06/06(火) 00:58:41
MSがATLもフリーにしてくれれば解決
597デフォルトの名無しさん:2006/06/06(火) 00:59:39
operator LPCTSTRがないのが問題だな。誰か作れ。
598デフォルトの名無しさん:2006/06/06(火) 02:30:03
atlmisc.h(754):operator LPCTSTR() const; // as a C string
599デフォルトの名無しさん:2006/06/06(火) 02:32:06
atlmisc.c(739):CString(LPCSTR lpsz);
atlmisc.c(740):CString(LPCWSTR lpsz);
600・∀・)っ-○◎● ◆toBASh.... :2006/06/06(火) 02:42:43
ん?なんとかなりそうかも
601デフォルトの名無しさん:2006/06/06(火) 03:04:31
釣られちゃダメダヨー
602デフォルトの名無しさん:2006/06/06(火) 16:53:43
                 ,. -一   ̄ ̄`  - 、
                  /             \
               |====ミx,、、_        \
            、__>ァ¬一ァ―r¬ミi、         \ オヤシロさまはスレの守り神さま。
               ̄7'/'/ ////  ,ハヘ.,ニヽ、     } …板のルールを守らずに糞スレを立てる人を
                // / /:,'/,'  '  i┴`≠| i }`T''トrイ 絶対に許さない。 レナはちゃんと良スレを立てた!
             //i , ; !:!:| !:i  |   | |,ハ. l. l. }::| でも>>1は糞スレしか立てなかった。 だから!
              | i {. { l | トi;、l_ト、 | _,. ィく!ノi. }:| :! l :| オヤシロさまの祟りにあってしまったに違いないのッ!!
             N.\ヽ.ヽ.ヽi!.{::::ji!ヽ!.'{_:::::} ji. |,リノ ' , |
                >ト、_トトr`´ ,______  ̄´イ/',.イ/ :/
                 /:イ ハトゞゝ  Y¨ ̄} ≦,イィ1 イ /|  オヤシロさまの祟りは信じようと信じまいと、
     _. --- 、    /〃 ,'// /:/_> `二  イ //ノ ,ハ{ノ!  確かにッ、
  , ‐',.-      \. ,'./.| /!|:|レ'|:{r一 ''  ̄iスニム.ム!_ル'
  l   |   /⌒   | V | | ||/_ヽ-〉   _,イ/ , --  \
  l__,/|  :|     |  /.N /  } |__,///>/        !
     ー1  ,ノ ,:'1 ,Kニ.ヽ|   \__, イ { 〈        '
      丁  /´ ヽ.   ヽ}     '⌒ヽニ=ヘ.  イ /
       `iー.′   l   /!          /l ヾニ゙イ
          !     }/_,ノ          〃 ` ̄´/
        ヽ __/フ'´         〈{     /
         _/ /   /     、____ ,.!   ,/ \
        / '  /   |    ヽ . _   ー '´      



603デフォルトの名無しさん:2006/06/06(火) 17:45:04
今年でひぐらしも完結か…('A`)
604デフォルトの名無しさん:2006/06/17(土) 22:15:23
どうしてここまでとまるの?
605デフォルトの名無しさん:2006/06/17(土) 22:33:22
            ____
         __,,/  _, ----`ヽ  :.
     :.  / _     ___   、\
       / /   i      \   \\ :.
     :. ,'./       i  ヽ:.   ヽ:.:.. ヽ.ヽ
      ,'/    / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
     :. |i .i i  .i /  ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
       |i .i l  :N_, -弋 \弌弋ナ:}:.:}
    :. |i∧ ', :{ ,ィjモト \  イjミトイイV :.  な…
       .|  :メヽ.', `ozZ}      izN。ハ::{     なんなんですか?
      :. |  :ヾ_! ゝ "゙゙    '  `゙ ハ.:', :.   ここ、どこですか?
      |  :.:_イ .:.ヽ.   (二フ , イ :.:.:!:.ヽ     なんで壁にお尻付けると
   :.  / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:.   前屈出来なくなるんですか?
      / ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
 :.  / .{. ',ヾ、ヽi .:.:.{ /(^`  |.:.:.:.//: : :.}: . ヽ.:.
   / /  ) ヽ ヾ、ヽ:.ハ ヤ{   ∧/.-‐'": : |:.:. i ',
  ./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、  : : : l:.:.: .ハ ',
  { /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
  V | .:.:/:.:|_,ィ' ̄  ヽ三{ `ー-ノ : イ : : :/:.:i.:{  リ
    ヽ:.:{、.:.V     : : ヘ     : : {: : :/:.::∧|
     ヽ! )人    : : :人      : : : / \! :.
      "  ヽ : : : : :/イ{     :.ノ: : : :.\ :.
       :.  \__///: :\______/: : : : : : : ヽ
           / //: : :|;|: : : : : : i: : : __: : : : ',
       :.     / 、 {;{   |;|   . : i/. : : : : : :|
          / `Y;{. . . .|;|. : : : /i: : : : : : : : :l
606デフォルトの名無しさん:2006/06/18(日) 09:15:22
ム板の巨大AA貼り付けスレはここですか?
607デフォルトの名無しさん:2006/06/18(日) 14:25:40
ATL7からは_Moduleは宣言しなくてもいいのですか?
608デフォルトの名無しさん:2006/06/19(月) 16:18:32
WTL8 のダウンロード数を見てちょっと不安に
609デフォルトの名無しさん:2006/06/27(火) 01:54:36
CListViewをダイアログのコントロールアイテムではなくSuperClassにしてCreateして作った場合にも、
WM_MEASUREITEMメッセージをつかまえることはできるでしょうか?
よろしくお願いします。
610デフォルトの名無しさん:2006/06/27(火) 09:29:36
試してから言え
611デフォルトの名無しさん:2006/06/27(火) 22:43:12
ATL/WTLのメッセージマップはMFCみたいにC++例外キャッチしてくれないと思うけど
メッセージハンドラで発生した例外はどう対処してますか?
各ハンドラをtry〜catch囲んでるのでしょうか?
612デフォルトの名無しさん:2006/06/28(水) 02:35:29
>>610
試していてはまっていたので質問しましたが、解決しました。

CFrameWindowImpl
↓子
WindowImplを派生した自前のSplitter
↓子
CWindowImpl<CMyList, CListViewCtrl>
で、WM_MEASUREITEMを捕捉しようとしてもうまくいかず、
調べていたら、自前のSplitterの
FORWARD_NOTIFICATIONS()とREFLECT_NOTIFICATIONS()
の順番だとわかりました。
REFLECT_NOTIFICATIONS()をFORWARD_NOTIFICATIONS()より前に
書くとちゃんと動きました。

WTL付属のSplitterの子でもWM_MEASUREITEMは捕捉出来ませんでした。

613デフォルトの名無しさん:2006/07/03(月) 03:33:34
Flashなんかを扱う場合にWTLを使うのとATLを使うのは
どちらを使ったほうが軽快でしょうか?
614デフォルトの名無しさん:2006/07/03(月) 04:33:31
意 味 が わ か ら ん
615デフォルトの名無しさん:2006/07/03(月) 05:00:50
こんなにおもしろいレスは久しぶりだw
616デフォルトの名無しさん:2006/07/03(月) 11:50:45
随分とまあ生きのいい燃料が来たもんだ
617デフォルトの名無しさん:2006/07/03(月) 14:52:32
>>613
お互い内容が重複しているものは殆ど無い。
だから、比べようが無い。
618デフォルトの名無しさん:2006/07/03(月) 14:56:15
>>613

APIで ウィンドウをflashする関数があるから、呼び出してみ。ペカペカするぞ。
619デフォルトの名無しさん:2006/07/03(月) 15:48:13
>>615

レスって >>614 のことか?

少なくとも >>613 はレスじゃないよな?

620デフォルトの名無しさん:2006/07/03(月) 16:06:51
>>619
わかってるくせにw
くだらん揚げ足とってんじゃねぇよ
621デフォルトの名無しさん:2006/07/05(水) 09:23:46
とられるようなこと書くな。
622デフォルトの名無しさん:2006/07/05(水) 09:29:44
いいぞ。もっとやれ。
623デフォルトの名無しさん:2006/07/05(水) 09:41:28
Flashなんかを扱う場合にWTLを使うのとATLを使うのは
どちらを使ったほうが軽快でしょうか?
624デフォルトの名無しさん:2006/07/05(水) 10:43:00
意 味 が わ か ら ん
625デフォルトの名無しさん:2006/07/05(水) 11:29:16
こんなにおもしろいスレは久しぶりだw
626デフォルトの名無しさん:2006/07/05(水) 11:39:31
随分とまあ生きのいい燃料がみのもんた
627デフォルトの名無しさん:2006/07/05(水) 11:57:48
>>623
お互い内容が重複しているものは殆ど無い。
だから、比べようが無い。
628デフォルトの名無しさん:2006/07/05(水) 14:56:25
キャバクラで女の子を落とすのに、生尺と顔射どっちのオプつけた方が良いですか?
629デフォルトの名無しさん:2006/07/05(水) 21:27:18
WTLを用いたプログラムで
::CoInitialize(NULL)
が入ってるコードをしばしば見かけるんですが
これは具体的に何を使いたい時に入れれば良いんでしょうか
630デフォルトの名無しさん:2006/07/05(水) 21:29:36
>>629
MSDN見ろ。
COMを使いたい時だ。
631デフォルトの名無しさん:2006/07/05(水) 21:41:07
>>630
下記URL内のサンプルにも ::CoInitialize( NULL ) が含まれているのですが
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl13-01/index.html
これのどこでCOMが使われているのかがわかりません
ためしにコメントアウトしても動いているので、もやもやが残ってます
とりあえずおまじない的に書いておけば良いというやつでしょうか…
632デフォルトの名無しさん:2006/07/05(水) 23:20:19
ATLがCOM前提、みたいな感じだったから、かなー。
633デフォルトの名無しさん:2006/07/05(水) 23:53:59
実はサンプル書いた奴もベースはウィザードで作っただけで、
よくわかっとらんというオチだったりして。
634デフォルトの名無しさん:2006/07/06(木) 00:29:34
>>631
コモンコントロール(ツールバーとか Cmnctl32.dllだったか)はCOMなので
COMの初期化(CoInitialize)が必要のはず。
635・∀・)っ-○◎● ◆toBASh.... :2006/07/06(木) 00:42:40
CoolBar使ったAPIのサンプルコードあるけど、CoInitialize使ってないよ
http://hp.vector.co.jp/authors/VA016117/coolbar.html

もしCOMのラッパーでもDllMain内で呼ばれてる場合はWinMainからは呼ぶ必要ないとかいうオチじゃね?
636デフォルトの名無しさん:2006/07/06(木) 00:55:15
>>631
そのコード内で、CoInitialize()は、まったく必要ないな。
削除しても問題ないよ。
637デフォルトの名無しさん:2006/07/06(木) 01:31:49
>>631
単にAppWizardが吐いたコードなだけじゃん?
638634:2006/07/06(木) 01:34:17
失敬、嘘ついてました。(Cmnctl32.dllの初期化はAtlInitCommonControls?)
COMを使用する必要がなければ、CoInitializeとCoUninitializeは必要ないようです。

http://www.codeproject.com/wtl/wtl4mfc4.asp
639デフォルトの名無しさん:2006/07/06(木) 01:49:23
>>638
Cmnctl32.dllなんてDLLないから
640デフォルトの名無しさん:2006/07/06(木) 11:51:54
久方ぶりに、このスレらしい話題でちょっと幸せ。
641デフォルトの名無しさん:2006/07/06(木) 14:18:59
「ATLオブジェクトの新規作成」から「ダイアログ」を追加しました
この追加したダイアログにinterfaceを定義するには*.idlファイルを手動で
書き換えないと定義できないのですか?

読んでいる本(ATL COMプログラミング)では「プロジェクトへの追加」-「コンポーネントおよびコントロール」で
追加できそうな記述があるのですが、「コンポーネントおよびコントロールギャラリ」ダイアログがででファイル選択するようになるのですが
どのファイルを選択してやればよいのかよく解りません。
VC6です。
642638:2006/07/06(木) 22:32:28
>>639
うげ、スマソ…orz
comctl32.dll
643デフォルトの名無しさん:2006/07/07(金) 23:51:30
WTL+DirectXがお気に入り
644デフォルトの名無しさん:2006/07/09(日) 06:22:54
軽量・高速なネイティブコードが吐ける言語はATL/WTLしか無いと自分は思うんだが、
なぜこんなに閑古鳥が鳴いてるような状況なの?
もしかして、ATL/WTLよりも軽量・高速なクライアントアプリ作れる言語があるの?

皆、何故つかわん?クライアントアプリは必要とされてないの?
ホントに疑問なんだけど・・・
645デフォルトの名無しさん:2006/07/09(日) 06:30:21
Qt使っています
646デフォルトの名無しさん:2006/07/09(日) 06:38:41
>>645
Qtも軽量・高速なWinアプリつくれるの?
647デフォルトの名無しさん:2006/07/09(日) 06:57:59
んふぅ〜ん、Qちゃん、ぶっちゅ〜ん。
648デフォルトの名無しさん:2006/07/09(日) 07:13:55
なぜ流行らん・・・わからん。。
なかなか最強なクラスライブラリだと思うんだが。。
みんな食わず嫌いしてない?
649デフォルトの名無しさん:2006/07/09(日) 07:34:21
ここにいる奴は使ってるだろ。
650デフォルトの名無しさん:2006/07/09(日) 07:42:26
ここに居る奴が少なすぎるから言ってる。
651デフォルトの名無しさん:2006/07/09(日) 07:53:31
三千八百万人のROMがいるから安心しろ!
652デフォルトの名無しさん:2006/07/09(日) 08:03:37
ホントにみんな使ってるの?使って何つくってるの?

使ってるの俺だけじゃないかと不安になってくる。。

653デフォルトの名無しさん:2006/07/09(日) 08:06:33
漏れは Hello, World を作ってるよ。
654デフォルトの名無しさん:2006/07/09(日) 08:36:31
そもそも軽量・高速なネイティブコードが必要とされていない現実
655デフォルトの名無しさん:2006/07/09(日) 08:42:56
たしかにUIをネイティブコードで書く時代はオワタかもしれん。
656デフォルトの名無しさん:2006/07/09(日) 09:08:22
ネイティブでWindowsクライアントアプリ作る奴が、
趣味以外では、ほとんどいないからだろう。
WTLって、本もないしね。
>>652
おれはIE拡張をATL + WTLで作ってるよ。
657デフォルトの名無しさん:2006/07/09(日) 09:25:51
プラグインの設定用のちょっとしたダイアログとか、
おまけ程度にUIをつけたい時に重宝するんだけどね
そういやWTLを専門に扱った本はないなぁ…
658656:2006/07/09(日) 11:06:59
amazonで検索したけど洋書でもないっぽいんだな。
659デフォルトの名無しさん:2006/07/09(日) 11:35:22
スレをたくさん作ってみてはどうか
660デフォルトの名無しさん:2006/07/09(日) 11:51:15
それじゃただの荒らし
661デフォルトの名無しさん:2006/07/09(日) 12:00:00

需要は創るものです

って電●のおじちゃんが言ってた
662デフォルトの名無しさん:2006/07/09(日) 12:37:06
ATLを無料で入手するには一手間かける必要があるのが普及を妨げていると思う。
663デフォルトの名無しさん:2006/07/09(日) 12:53:18
だなぁ
ATLとの分離も、話だけで終わりそうだし…
664デフォルトの名無しさん:2006/07/09(日) 12:59:59
昔こういうのに興味があった層は、
今はportableなlight-weightGUIライブラリを使っていると思われる。
665デフォルトの名無しさん:2006/07/09(日) 14:45:03
>664
portableなlight-weightGUIライブラリって例えば?
666デフォルトの名無しさん:2006/07/09(日) 18:07:59
WTL
667デフォルトの名無しさん:2006/07/09(日) 18:15:55

ATL
WTL
OTL

名前が良くないな
668デフォルトの名無しさん:2006/07/09(日) 18:21:57
WTLはportableじゃないから駄目だな
669デフォルトの名無しさん:2006/07/09(日) 21:03:01
Orz
670デフォルトの名無しさん:2006/07/09(日) 21:07:43
軽いことがメリットになりにくい世の中だしな。
671デフォルトの名無しさん:2006/07/09(日) 21:43:52
最新のATLもフリーになったら使いたいが
SDKのは未だに3.0なのがなぁ
672デフォルトの名無しさん:2006/07/10(月) 02:12:01
ATLのフリーってVS2005Expressでってこと?
ライブラリ使うのにお金がかかるの?
673デフォルトの名無しさん:2006/07/10(月) 02:27:58
>>672
VS2005Expressじゃなくて、PlatformSDKにATL付いてるっしょ
3.0だか3.1だかその辺のが
最新版は8.0だっけか
これはVS2005Standard以上を買わないと付いてこない
WTLだけオープンソースにされてもね
674デフォルトの名無しさん:2006/07/10(月) 02:32:06
SDKのはX86の32ビット版じゃない。
実際にソースを検証してOKになったのではなくて
試してみたら使えるようだよというレベルでしょ。
675デフォルトの名無しさん:2006/07/10(月) 02:44:10
実際問題

atlthunkだっけ?
あれふつうにアロケートしてるだけだから別に不具合ないよ
むしろx64のほうが怪しげ
676デフォルトの名無しさん:2006/07/10(月) 07:19:07
ほかには、DDKにもATL3は入っている、しかもatlthunk.lib付きで。
あと、まだ試していないが、VS 2005の評価版にはATL 8が入っているはずで、それも使えるのでは?と思う。
677デフォルトの名無しさん:2006/07/10(月) 07:42:47
>VS 2005の評価版にはATL 8が入っている
それはライセンス的に問題があるんじゃないのか。
678デフォルトの名無しさん:2006/07/10(月) 15:22:06
>>676
出来たとしても犯罪だろ・・・
679デフォルトの名無しさん:2006/07/10(月) 15:47:05
まあ流石に評価版を使うのは無いだろ。
680デフォルトの名無しさん:2006/07/10(月) 17:47:23
COM作るときだけATL
簡単なアプリはMFCのダイアログベース
WTLって便利?
681デフォルトの名無しさん:2006/07/10(月) 18:21:48
生成コードにおまじないが沢山くっついて
シンボルに「ボタン1」だの「フォーム2」だの数字がくっつく
MFCよりはWTLの方が、ラクかもしれない。
682デフォルトの名無しさん:2006/07/10(月) 18:59:45
自分ひとりですむ程度のPGなら、WTL よりも、
http://www.torjo.com/win32gui/
を最近は良く使う。boost との親和性もいい品。
683デフォルトの名無しさん:2006/07/10(月) 19:04:12
↑がwin32限定じゃなくてportableなら使うんだけどなあ。
684デフォルトの名無しさん:2006/07/10(月) 22:41:08
DDKはKMDFに含まれるので合法的に完全無料で入手できる
685デフォルトの名無しさん:2006/07/10(月) 22:58:42
それがどうした?
686デフォルトの名無しさん:2006/07/10(月) 23:06:42
>>678>>676の前半についても言及してると思ったんじゃね?
687デフォルトの名無しさん:2006/07/11(火) 00:17:59
今の状況だと、ATLとWTLの結びつきが強いから
WTLだけオープンソースになってもあまりメリットが無い
完全に分離されてれば良かったんだがな
688デフォルトの名無しさん:2006/07/11(火) 00:50:27
ATLなんぞでコスト掛けるより
>>682の奴がよさげだな。
問題は漢字関連か。
689デフォルトの名無しさん:2006/07/11(火) 22:08:53
>>652
俺はWTLアプリを客先にも納品してるよ。

正直な話、仕事で使ったりしてWTLを大方理解すると、もはやこのスレから
得る物はあまりないから、このスレにプロはあまりいないかもね。
690デフォルトの名無しさん:2006/07/11(火) 22:10:12
知りたいことがあってもYahooにあるMLを
検索するほうが早いしね・・・
691デフォルトの名無しさん:2006/07/11(火) 23:49:39
いま勉強中なんだけどね用語が独特でよく解らん>>ATL
相変わらずマクロが色々あってなかなか厄介だし

まぁ、ExcelVBAで使えるようなモノを作りたいのが目標だから
なんとかしてるけどみんなすごいね
#WTLはもっとドキュメントが少ないのか・・・
692デフォルトの名無しさん:2006/07/11(火) 23:55:47
DDKにもATL発見
693デフォルトの名無しさん:2006/07/12(水) 00:32:17
ATL3 とか言うオチじゃないだろうな。
694デフォルトの名無しさん:2006/07/12(水) 16:57:12
>>692-693
散々有名。
695デフォルトの名無しさん:2006/07/12(水) 20:49:44
>>694
>>693まで含める意味がわからんね。
696デフォルトの名無しさん:2006/07/12(水) 23:09:05
WTLは良い意味でも悪い意味でも単純だから、
分からないことがあってもソース見れば何とかなるし、
感覚を掴めばそれなりに使えちゃうから、あまり質問の機会がないんだよな。
そこが好きなんだけども。
697デフォルトの名無しさん:2006/07/13(木) 00:59:38
凝った事はやりにくいけどな
698デフォルトの名無しさん:2006/07/13(木) 01:28:55
BCBのTStringGridのようなコントールがないのが厳しい
699デフォルトの名無しさん:2006/07/13(木) 01:54:57
Gridなんか一回自作したら終わりだろう?
700デフォルトの名無しさん:2006/07/13(木) 02:01:36
>699
ならばなぜ標準も準標準も存在しないのか。
701デフォルトの名無しさん:2006/07/13(木) 02:02:17
Gridは
ttp://web6.codeproject.com/wtl/wtlgrid2.asp
を使ってるなぁ。
702デフォルトの名無しさん:2006/07/13(木) 02:02:53
>>700
Exceltが売れなくなるから
703デフォルトの名無しさん:2006/07/13(木) 02:21:28
>>700
マジレスすると、WTL自体の知名度が低く、
CodeProjectを中心にいろいろなコントロールは発表されているけど
それを標準化、準標準化しようとするコミュニティが存在しないから。
704デフォルトの名無しさん:2006/07/13(木) 03:13:26
WTLでメーラー作ってるんだけど、Releaseモードでコンパイルしてみたら
オーナードローしてるGUI部品でも、めちゃめちゃ表示が軽かった。
やっぱりAPI並に速度の速いネイティブコードを吐いてくれるクラスライブラリは
他には無いと思う。あとウィンドウの機能をtemplateに分けて実装するスタイルが好き。

CHAIN_MSG_MAPマクロに渡すチェインクラスに引数が複数ある場合でもtypedefしとけば
渡せることに最近気づいた。。

もっと流行って欲しいなぁ。。みんなもっと盛り上げようよ。。
705デフォルトの名無しさん:2006/07/13(木) 05:41:33
スレをたくさん作ってみてはどうか
706デフォルトの名無しさん:2006/07/13(木) 05:56:00
VIPでやるかw
707デフォルトの名無しさん:2006/07/13(木) 10:25:29
渋谷でメイドキャンペーンするようなもんだなw
708デフォルトの名無しさん:2006/07/13(木) 19:55:01
Exceltって何?
709デフォルトの名無しさん:2006/07/13(木) 20:01:54
>>701他にもよさげなコントールがたくさんあるようなのでダウンロードしようとしたら
アカウント登録しろって言われた。なんじゃこり(゜□゜) ↑アッー!↓
710デフォルトの名無しさん:2006/07/13(木) 20:03:33
>>709
無料だし登録しておいて損はないと思うが
711デフォルトの名無しさん:2006/07/13(木) 20:03:57
CodeProjectなんぞ、Windowsのコード書いて食ってるやつはみんな登録してるんじゃねえの?
712デフォルトの名無しさん:2006/07/13(木) 20:07:20
ほむほむ。そんなに有名なの。
ちなみに追加コントロールって標準コントロールみたいに、
リソースエディタからダイアログ上にペタペタ貼っ付けたり、プロパティ設定できます?
713デフォルトの名無しさん:2006/07/13(木) 20:11:06
>>712
ここはWTLのスレなわけだが
714デフォルトの名無しさん:2006/07/13(木) 20:17:43
あ、すんません о-|*´д`*|-о
715デフォルトの名無しさん:2006/07/13(木) 20:36:09
>>709
www.で始まるサイトの方は登録無しで使えるよ
ttp://www.codeproject.com/wtl/wtlgrid2.asp
それ知らずに俺も登録させられてしまったことがあるけど・・・
716デフォルトの名無しさん:2006/07/13(木) 20:43:47
>>715
登録してログインしないとダウンロードできないと思うけど・・・
717デフォルトの名無しさん:2006/07/13(木) 20:47:14
(;゚∀゚)=3ドンマイ!!!
718715:2006/07/13(木) 20:49:28
>>716
ごめん、早とちりした。
www.の方はログインしたままcookieに残ってたみたいだ。
やっぱり登録しないとダメだね。
719デフォルトの名無しさん:2006/07/15(土) 10:48:36
vc8でwtl8のコンパイルそのままじゃ通らないよ〜
だめじゃん
720デフォルトの名無しさん:2006/07/15(土) 11:14:44
うちは通ったけど…?
721デフォルトの名無しさん:2006/07/15(土) 11:25:52
俺も通ったよ。
722デフォルトの名無しさん:2006/07/15(土) 11:26:57
>>719は便秘
723デフォルトの名無しさん:2006/07/15(土) 11:27:48
>>719はVC8Expressを使っているに500ペリカ
724デフォルトの名無しさん:2006/07/15(土) 11:35:19
>>723性快!
725デフォルトの名無しさん:2006/07/15(土) 19:29:03
BCCを使っているのですが、ATLやMFCのヘッダやバイナリは無料で手に入るのでしょうか?
726デフォルトの名無しさん:2006/07/15(土) 19:36:34
MFCはわからないけど
ATLはSDKに含まれてるのでは?
ただ、バージョンは3.0と古いとどっかに書かれてました
727デフォルトの名無しさん:2006/07/15(土) 19:36:45
古いのならね。BCCで動くかはシラネ
728デフォルトの名無しさん:2006/07/15(土) 19:43:47
そもそも評価版注文してあれするだけではw
729デフォルトの名無しさん:2006/07/15(土) 20:00:25
注文するまでもなく、今だとwebからdlできるみたいだよ。
ちょっと前にVSスレでurlを見たような。
730デフォルトの名無しさん:2006/07/16(日) 11:17:27
WTL 8.0.6137 のダウンロード数が、やっと 4000 を超えましたね。
全世界で 4000 人も使っているんだ。
731デフォルトの名無しさん:2006/07/16(日) 12:17:08
意外と少ないと思った
732デフォルトの名無しさん:2006/07/16(日) 14:26:18
>>731
世界で4000人も使っているんだから、
日本でも100人くらい使っているかもしれないですよ?
それでも少ないと思う?
733デフォルトの名無しさん:2006/07/16(日) 14:32:11
常に最新版を追いかけてないだけで、WTLのユーザはもっといるでしょ。
7.5 Finalは14000超えてるし。俺もまだ7.5のまま。
734デフォルトの名無しさん:2006/07/16(日) 14:39:49
8.0はVC++8.0で動くってだけで、中身は7.5と変わらないからな。
VS.NET2003を使ってる漏れはわざわざアップデートするのもマンドイので7.5のまま。
735デフォルトの名無しさん:2006/07/16(日) 14:40:22
WTLって重いですよね。
ダイアログエディタが活躍するような小型アプリ位しか使い道が無いような気がする。
736デフォルトの名無しさん:2006/07/16(日) 14:41:41
うそを言うなw
737デフォルトの名無しさん:2006/07/16(日) 14:41:49
WTLが重いと感じるならMFCや.NETはクソ重すぎて使ってられないだろうな
738デフォルトの名無しさん:2006/07/16(日) 14:44:06
>>737
MFCのほうが軽いですよ??
もしかして、なんとなくこっちのほうが速そうとか印象で語ってません?
それに、重くてもWTLの良さは無くなりません。
WTL自体がなくなりそうで不安だけどw
739デフォルトの名無しさん:2006/07/16(日) 14:45:31
釣りツマンネ
740デフォルトの名無しさん:2006/07/16(日) 14:48:19
DoPaintとか見ると軽くすることに力点を置いていないんだろうな。
多重継承を基本としているところが魅力的なわけで、
多少重くても不満ない。
741デフォルトの名無しさん:2006/07/16(日) 15:14:49
>>735
MFCのメッセージハンドラがどういうロジックで呼ばれてるか知らないようだ。
WTLの呼び出し仕組みは、ここをみるといいよ
http://hp.vector.co.jp/authors/VA022575/c/msgmap.html
742デフォルトの名無しさん:2006/07/16(日) 15:19:00
でもまあ、なんでも良きに計らってくれるわけじゃないから、
下手に書けばいくらでも遅くなるだろうよw
743デフォルトの名無しさん:2006/07/16(日) 15:49:26
それにしても重いね。
もう少し軽くならないと使いようが無い。
744デフォルトの名無しさん:2006/07/16(日) 16:55:19
ここをJavaや.NETスレと間違ってないかwww
745デフォルトの名無しさん:2006/07/16(日) 16:58:58
重い重いと言われても、何が重いのか言ってくれないとさっぱり見当が付かん。
ここはこうだから重い、ああすれば軽くなるのにとでも書いてみなさい。
746デフォルトの名無しさん:2006/07/16(日) 17:28:55
バカは相手にしないことが一番。
747デフォルトの名無しさん:2006/07/17(月) 01:45:37
MFCのメッセージハンドラのロジックを詳しくプリーズ
えとね

ヘッダ嫁

WindowProcを隠蔽したマクロで、各パラメータごとの処理を各関数に飛ばしてるだけ
ウィンドウメッセージを補足してパラメータの値ごとにif(mgsID == ID_HOGEHOGE) { foo_proc(...); }
みたいな感じでやってるだけ

WinでWTLほど軽いクラスライブラリ他にないと思うけど
STLとの親和性の高さならWinSTLくらいか?
っていうか、MFCが重いのは深い階層構造のクラスでオブジェクトが巨大なのと
仮想関数テーブルのオーバーヘッドが要因として大きいかと。

WTLは多重継承を前提とするテンプレートベースのクラスライブラリなんで
仮想関数テーブルを持てない。


代替メッセージマップによる似非ポリモーフィズムはC++じゃなくて
Windows自体の機能によるものですな
>仮想関数テーブルを持てない。
大嘘言ったかも
751デフォルトの名無しさん:2006/07/17(月) 03:19:45
WTLが軽いのは、テンプレートベースのおかげで
コントロールやウインドウに対する操作がかなりインライン化されて、
SDKで書いた場合とほとんど変わらないコードに展開されるからってのも大きい気がする
752デフォルトの名無しさん:2006/07/17(月) 03:41:35
MFCの呼び出しはざっくり書いてこんな感じだったと思う

1、WindowProcで、CWndクラスポインタをHWNDとCWndの対応からget
2、uMsgと対応するメッセージハンドラのメンバ関数ポインタを、MessageMapを
線形探査してget(線形探査部分はアセンブラで書いてあった気がする)
3、メンバ関数ポインタをCWndクラスポインタでcall。

というかなりの力業だったような。

WTLはWindowProcでの引数のhwndがthisで呼ばれてくるからくりを
使っているので、this->ProcessWindowMessage()しているだけ。
753デフォルトの名無しさん:2006/07/17(月) 05:14:02
>>751
テンプレート化されているおかげで、コードサイズが大きくなりすぎる。
最初にスケルトンアプリを作るとコードサイズが小さいことに感動するけど、
その後アプリとして必要な機能を追加していくとどんどんサイズが増えていく。
同じ基本クラスを使っていてもコードが別になるんだから当たり前だよね。
結局、WTLマンセーな人って、スケルトンをコンパイルして喜んでる人だけなんじゃないの?
自分は、リリースできるレベルまで作りこんでがっかりしました。
なんか夢を見すぎた感じ。
754デフォルトの名無しさん:2006/07/17(月) 05:18:04
テンプレートは下手なやつが使うとどうしようもなく馬鹿でかくなるよねww
755デフォルトの名無しさん:2006/07/17(月) 05:21:41
>>754
自分が下手じゃないとは言わないけど、それにしても馬鹿でかくなりすぎだよ。
それに実行も遅くなりがち。
コマンドバーがすべてのメッセージをフックするでしょ。
ああいうのってどう思う?
ああいうつくりでも軽くなると思う?
普通に重くなって当然でしょ。
756デフォルトの名無しさん:2006/07/17(月) 05:22:45
>>753
>その後アプリとして必要な機能を追加していくとどんどんサイズが増えていく。

お前のコードじゃねえかw
757デフォルトの名無しさん:2006/07/17(月) 05:28:48
>>756
自分のコードじゃないよ?
テンプレートのマジックで、同じ基本クラスであっても
継承するたびに別のコードが生成されるみたい。
これは無駄だよね〜〜〜〜。
せっかく多重継承を使うデザインなのに、
性能を意識すると機能を分離できないじゃん。
いったいどう使えというのかな?
世界で4000人しか使っていないのはここら辺に理由があるんじゃないの?
758デフォルトの名無しさん:2006/07/17(月) 05:33:08
世界で4000人(笑)
759デフォルトの名無しさん:2006/07/17(月) 05:35:50
>>758
驚きだよね。
少なくても百万人くらいは使ってると思ってた。
日本だけでも数万人とか。
世界で四千人じゃ、そのうち無くなるよね。
760デフォルトの名無しさん:2006/07/17(月) 05:37:10
例えばどの基本クラスのコードがダブるとそんなにアホみたいにでかくなるんだよw

4000人は確かに驚きw
761デフォルトの名無しさん:2006/07/17(月) 05:43:55
>>760
テンプレートクラスは全部じゃない?
あとね〜〜〜。
ATLってオブジェクトサイズが小さいじゃん。
WTLも同じだと思ってるなら騙されてるよ。
めっちゃくちゃ大きい。
その場で計算したらいいような値でも、メンバ変数になってたりするからね。
なんかみんなイメージに騙されてるんじゃないかなぁ〜〜〜〜??
762デフォルトの名無しさん:2006/07/17(月) 05:46:08
朝っぱらから香ばしいのが沸いてるな
763デフォルトの名無しさん:2006/07/17(月) 05:48:17
>>762
反論できないんだよね?
まぁ仕方ないけど。
764デフォルトの名無しさん:2006/07/17(月) 05:50:05
WTLのクラスなんて薄っぺらい被せもんばっかりじゃねえか。
インラインに展開されることを前提にしたようなコードばっかだよ。
読んでみろってw
765デフォルトの名無しさん:2006/07/17(月) 05:52:55
ぶっちゃけMFCをstaticリンクするより全然マシ
766デフォルトの名無しさん:2006/07/17(月) 05:55:24
>>764
じゃぁ使う意味ないじゃん。
ラッパーばっかりなのにあんなにくそ重いんじゃ意味ないし。
ラッパーごときがあんなにサイズ大きいんじゃね〜〜〜。
だめジャン。
767デフォルトの名無しさん:2006/07/17(月) 05:58:16
で、具体的にどこが重いの?
768デフォルトの名無しさん:2006/07/17(月) 05:59:11
>>766
お前がSDKだけで直書きしても、もっと軽快で小さいコードにはならないよw
769デフォルトの名無しさん:2006/07/17(月) 06:00:46
>>765
MFCはスケルトンでも静的リンクなら200KiBを超えるよね。
動的なら30KiBクラス。
WTLは同じような構成なら40KiB。
もちろん構成が違えばサイズは変わるけどね。
だから、最初にWTLを使ってスケルトンをコンパイルすると感動するよ。
自分も感動した。
その後機能を加えていくと、実はMFCより効率が悪いことに気がつく。
MFCだと自分の書いたコードの分だけサイズが増えていくけど、
WTLは、基本クラスの分が何重にも増えていってすぐにMFCの場合よりサイズが大きくなる。

てわけで、マンセーしてるのはスケルトンコンパイルして喜んでる人だけなんじゃないの?
770デフォルトの名無しさん:2006/07/17(月) 06:06:25
まあ、どんなものも使う人次第ってことだ
771デフォルトの名無しさん:2006/07/17(月) 06:07:47
>>770
スケルトンをコンパイルするお仕事してる人には、
WTLが良いって意味?
772デフォルトの名無しさん:2006/07/17(月) 06:10:11
でもまあ、たまにテンプレート原理主義者みたいのがいて困るのは事実w
773デフォルトの名無しさん:2006/07/17(月) 06:10:58
WTLがそこまでデカいと感じたことはないなぁ。
とあるCAD用ソフトのUIモジュールをMFCからWTLに書き換えたことがあるが、
サイズはせいぜい50kbしか違わなかったぞ。

WTLではテンプレートの実体化で大きくなるサイズなんてタカが知れてるしな。
サイズがデカくなるんだとしたらインライン化によるものが大きいとは思うが、
それでも100KB単位で増加することはまずない。
極端にでかくなるんだとしたら、相当アフォな設計でアフォな継承関係を作ってるとしか思えないなぁ。
774デフォルトの名無しさん:2006/07/17(月) 06:11:48
華麗にスルーしろよ
775デフォルトの名無しさん:2006/07/17(月) 06:14:02
過疎スレで暴れていい気になってる可哀想な猿が一匹沸いた、でFA
776デフォルトの名無しさん:2006/07/17(月) 06:15:01
つうかみんな早起きだよねw
777デフォルトの名無しさん:2006/07/17(月) 06:17:24
>>773
UIモジュールってことはオブジェクトをホストしてるだけでしょ?
それほとんどATLじゃん。
だから50KBの増加で済んだんだよ。
WTLをたくさん使ったらもっと増えるよ。
みんな目を覚まして!
778デフォルトの名無しさん:2006/07/17(月) 06:22:20
UI以外の何にWTLを使うんだよw
779デフォルトの名無しさん:2006/07/17(月) 06:25:40
>>778
その言い訳苦しすぎない?
ていうかみんなWTLほんとに使ってるの??
コマンドバーには誰も反応しないよね。
不思議だ〜〜〜〜。
780デフォルトの名無しさん:2006/07/17(月) 06:27:05
あ、わかった!
スケルトンコンパイルしてマンセーしてるだけで、
実はよく知らないとかじゃない??
もしかして俺が一番知ってる?
そんなことないよね?
781デフォルトの名無しさん:2006/07/17(月) 06:33:55
>>780
いや、お前が一番知ってると思うよ。
WTLウィザードといっても過言ではないね。
782デフォルトの名無しさん:2006/07/17(月) 06:35:41
>>780
そう思う。まさに天才。
確かにMFC>WTLだ。

〜完〜
783デフォルトの名無しさん:2006/07/17(月) 06:38:07
>>781
そうなの?
ってことはさ、みんなある程度WTLを知ると
限界に気がついて離れていっちゃうんだろうね。
で、使い始めの人だけ使っててマンセーしてて、
ウィザードクラスの人は育たないんじゃないの?
それに、4000人しか使っていないんじゃいつ無くなるかわかんないしね。
WTL使うことに不安は無いの??
784デフォルトの名無しさん:2006/07/17(月) 07:13:58
実はおまい以外誰もつかってないんだ
785デフォルトの名無しさん:2006/07/17(月) 07:26:15
俺も使ってるのでそんなことはないw

ごちゃごちゃ書いていくうちにコンパイルの遅さにも鳴れた
786デフォルトの名無しさん:2006/07/17(月) 07:27:13
>>785はテンプレート原理主義者
787デフォルトの名無しさん:2006/07/17(月) 07:34:17
次Verマダー?
788デフォルトの名無しさん:2006/07/17(月) 08:02:08
 WTL 8.0.6137 のダウンロード数が、やっと 4000 を超えましたね。
 全世界で 4000 人も使っているんだ。

日本でも100人くらい使っているらしい。
789デフォルトの名無しさん:2006/07/17(月) 08:23:50
なんか良くわかんないすけど、WTLのコマンドバーは、ウィンドウリサイズの
度に再描画が走って(試したのはVistaの1個前のベータ)、こりゃデフォルトでは
使えんかもと思いました。WTLのウィンドウメッセージの流れについて
知ってる人が見れば(WTL本体を)直せるんでしょうが、知らない私にはどうもなぁ〜と。

ソース量が少なくて、無駄がないように見えて、実はMFCより実行時に
流れるウィンドウメッセージの数が桁違いに多いというようなことは
ないんでしょうか?
790デフォルトの名無しさん:2006/07/17(月) 08:38:09
漏れのアプリはリサイズしても再描画されない。
特別変わったことはしてない。
791789:2006/07/17(月) 09:08:36
あ、すいません、詳細を書くのを忘れてました。
WindowsXP SP2とかで"デザインを優先する"にした時、
ウィンドウリサイズでRebarのグリップ部分の再描画が走り、
Vistaのデザインモード?だと確かツールボタンまでも
再描画された気が…。Vistaは今環境持ってないんでなんともですが…。
792デフォルトの名無しさん:2006/07/17(月) 09:14:00
えらくスレが伸びてるが・・・
テンプレートだから別の型で使うたびに増えていくというのは
間違いじゃないのでは?
たとえばHogeってテンプレートクラスを
Hoge<Poge>とHoge<Puge>って使ったら、
Hogeテンプレートのコードは型の部分以外、
全く同じコードが2回展開されるでしょ?

793デフォルトの名無しさん:2006/07/17(月) 09:15:46
で、それはMFCなら再描画されないの?
794デフォルトの名無しさん:2006/07/17(月) 09:16:40
>>792
誰も「テンプレートを使ってもサイズが増えない」とは書いてないと思うが
795デフォルトの名無しさん:2006/07/17(月) 09:22:18
>>792
ソースの字面上は同じだろうけど対象としてる型が違うじゃん。
WTLはかなり薄いラッパだから、そこでダブる程度のコードは、
代わりに手で書いてもそれほど共通化はできないんじゃないの?
796792:2006/07/17(月) 09:26:07
>>794
>>753-754 >>757 >>760あたりの話で、そう捕らえてる人がいるようにみえたのだが。
てかスレ伸びてるけど、WTLのDL数からして、数人のカキコか・・・
797デフォルトの名無しさん:2006/07/17(月) 09:29:00
>>754書いたのは俺だが、考え無しに何でもかんでも闇雲にテンプレートにしてたら大変なことになるっていう話ね。
798デフォルトの名無しさん:2006/07/17(月) 09:35:18
一見メンバ関数が大量にある分、テンプレートで容量食いそうって誤解があるけど
実際はImplが仮想関数を使ってないから、
「使わないメンバ関数は実体化されない」ルールのおかげでかなり小さくなってるんだよな。
799791:2006/07/17(月) 09:54:56
>793
うへー。MFC自体にコマンドバーがないんで何ともですが、
MFCウィザードで生成するRebarでも、XP SP2で再描画がかかって
しまいますね…orz。
Vistaではどうだったか良く覚えてませんが…。
800デフォルトの名無しさん:2006/07/17(月) 10:06:13
>>799
じゃあ、コモンコントロール(なの?)自体の問題だろ。
801792:2006/07/17(月) 10:07:08
>>798
あーそうだ、長いことテンプレ使ってなかったから、そのルール忘れてた。
なんで使わないコードもメモリに乗っちゃうMFCと、
プログラムのサイズは、どっこいどっこいってことかな。
802デフォルトの名無しさん:2006/07/17(月) 10:09:31
実際に比べてみろって
803デフォルトの名無しさん:2006/07/17(月) 10:11:25
明確な差が出るほど巨大なプログラムを試しに作ってみる方が無理があると思うが
804デフォルトの名無しさん:2006/07/17(月) 10:19:29
まあなんでもいいやw >>801の言う通りだよw
805792:2006/07/17(月) 10:25:40
どっちのがデカいにせよ、そんなPC激重になるくらいメモリ圧迫しないでしょ?
俺的にはC#よりメモリ食わなきゃいいよ。
そんで、MFCみたいにめんどくせーフレームワーク押しつけられず自由に組めれば。
806デフォルトの名無しさん:2006/07/17(月) 12:53:51
何やってんだお前ら〜
ム板で低LVな煽りあいとか、がっかりさせんな〜
807デフォルトの名無しさん:2006/07/17(月) 13:51:54
C++相談室 part51のテンプレでこのスレが削除の対象になりました。
ねらーにも見捨てられるなんて……
808デフォルトの名無しさん:2006/07/17(月) 14:14:18
夏休みだからね
809デフォルトの名無しさん:2006/07/17(月) 14:15:59
C++で書かれているとはいえ、どっちかつーとWin32APIの方が関連性強いし
まあいいんじゃね?
810デフォルトの名無しさん:2006/07/17(月) 14:28:16
CodeProjectが見捨てなければ全然おけ。
811デフォルトの名無しさん:2006/07/17(月) 14:30:58
WTLは無くならない、他に代わりが無いから
8.0なんてどこにDLリンクがあるのか一見わからないしむしろMSが公式に配布してる7.5のほうが安心して使える
813デフォルトの名無しさん:2006/07/17(月) 19:18:41
頻繁にWTLのバージョンアップについて行くのは面倒。
せっかく動作しているプログラムの動作試験をやり直さなきゃいけない。
現時点では7.5で十分。
814デフォルトの名無しさん:2006/07/17(月) 23:06:34
>>755
いやならコマンドバー使わずに、普通のメニューバーにすればいいだろwwwww
815デフォルトの名無しさん:2006/07/17(月) 23:08:00
速度速度って、テンプレートで気になるほど動作速度に影響出るのかなぁ

コンパイルは糞遅いけど
816デフォルトの名無しさん:2006/07/18(火) 09:26:02
おれ4回くらいダウンロードしたけどw
817デフォルトの名無しさん:2006/07/18(火) 09:31:26
奇遇だな
おれも4回だ
きっとまだ世界で1000人程度なんだろう
818デフォルトの名無しさん:2006/07/18(火) 09:32:23
MSのチームは実際に使ってるんだっけ?
なんだか不安になってきたぞ・・・
819デフォルトの名無しさん:2006/07/18(火) 17:39:58
おいおいなんか盛り上がってますねおまいら。
820デフォルトの名無しさん:2006/07/20(木) 14:54:44
盛り上がるのは休みの日だけ
821デフォルトの名無しさん:2006/07/20(木) 16:30:54
アンチが来るときだけだろ
822デフォルトの名無しさん:2006/07/23(日) 22:24:59
640,480みたいに希望のクライアントサイズ渡すと
窓サイズをピッポッパッと計算してくれるメソッドは無いですか
もしくは自動的に変更してくれるしろもの
823デフォルトの名無しさん:2006/07/23(日) 22:44:52
ありますよ
MFCのAdjastなんたら相当のメソッドなら自分で作ってた。
825デフォルトの名無しさん:2006/07/24(月) 00:52:01
>>822
AdjustWindowRectというAPIがあるので、WTLのウィンドウクラスにもあるだろう。
826デフォルトの名無しさん:2006/07/24(月) 01:26:42
>>825
そいつはウィンドウハンドルを引数に取らないから、ATL::CWindowには含まれていない。
ダイアログ関係とかそっちの方は知らない。
827デフォルトの名無しさん:2006/07/24(月) 01:53:46
>>822じゃないが、AdjustWindowRect()などというAPIがあったのか、
いままでGetWindowRect()とGetClientRect()を使って自前でやっていた。
828デフォルトの名無しさん:2006/07/24(月) 08:41:43
メニューの折り返しとかあるとダメだけどね
829デフォルトの名無しさん:2006/07/24(月) 09:46:54
やっぱMFCだなw
830デフォルトの名無しさん:2006/07/24(月) 10:08:42

OSというかWin32APIがショボイんだと思う

ATL/WTLやMFCのせいじゃないけど
クライアント領域のサイズが指定出来ないって
根本的になんか間違ってるよ

831デフォルトの名無しさん:2006/07/24(月) 18:28:47
AdjustWindowRectで解決できるから、APIは何も問題ないよ。
メニューが複数段になった場合の問題も3行書き加えるだけで解決。
そもそもクライアント領域をきっちり指定したいのはゲームとかマルチメディア系
くらいで、ほとんどのアプリケーションにとってはどうでもいいこと。

それにクライアント領域のサイズが重要になるのはウィンドウ作成時の1回だけで
その後のウィンドウ操作はウィンドウ全体のサイズしか使わん。
(ウィンドウの移動制限、複数のウィンドウの整列…etc)
832デフォルトの名無しさん:2006/07/25(火) 00:13:13
APIが便利ならWTKなんか用無いわ
833デフォルトの名無しさん:2006/07/25(火) 00:39:51
テキストをスクロールさせる時に、画面の下端が行間にピッタリ合わないと
読みにくいし、ちらつきがち。
そのためにクライアント領域のサイズをフォントの縦サイズの倍数にしたいわけよ。
834デフォルトの名無しさん:2006/07/25(火) 04:05:05
24.5倍
835デフォルトの名無しさん:2006/07/25(火) 22:15:56
>>832
WTK ?

そりゃ、用無いわな。(w
836デフォルトの名無しさん:2006/07/26(水) 13:20:13
でも、クライアントサイズがフォントのたてサイズの倍数にしかならないソフトなんて…
ちょっと使いたくないな。

ちらつき対策のロジック入れた方が良いんじゃねーの?
837デフォルトの名無しさん:2006/07/26(水) 15:57:37
      /             ミ
    /`ヽ _               ミ
   ,イ,.- 、 |  ̄_ ̄丁 '' ー┬‐- -ミ
  /,|.l  l ! (  ) ! (´ ) !  r‐
  /イ,! `ー' _L =- --┴-ニ二ト、_'ー'
 |'J」-''_二 =-- ‐一 ー‐t‐-ト、 二__
 レ'/´ィ 、_________  ヾミ| l
 V ,、 F≡三r一tァー,    | l:.:. .::    _________
  |ノ^>、     '^ミ二´    | l:.:.:.::   /
  V/イソ            .::ヽ、二_ < ちらつき対策のロジック入れた方が良いんじゃねーの?
  | / ,'    _        .:.:.:.::i|,)ノ   \
  |.〈、 、 _〉 `丶、     ;:ィil| ノ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |  笊yfミミミミヾ、     '!l|il|li!fj'
  ヽ |i''r ''_二二ニミ;ヽ、  ,|l||il|l|,「゚|
   |,l| V´ :::::::::;;/     トi|l|i|i|l|!Ll
   |i! ゞ=-‐''"     ,i||i|l|l|l|!|i{
   |il!  ーォii|「、 ,,.,.ィi||l|i|l|l|i|l|シ'
  ,/i|l||livil|||l|i|l|l|lil|l|i|l|i|i|i|l|l|l|{'
  {l|!|l|i|l|i|l|i|||i|i|l|i|i|i|i|l|l|!|l|l!r'
  ヾ!||i|i||i|i|l||l||i|i|l|l|l|l||l|l!イ
   ``,ヘi|l|i|l|i|l|l|i|r''`''"´ i      ,
    (_~`^~"゙'ヾ     ノ   / ,
   ト─'     ノ      / /i
838デフォルトの名無しさん:2006/07/26(水) 16:46:35
ちらつきがおきないとしても表示サイズが例えば12.6行だったりすると
文字の上半分か下半分が見切れてしまって使いにくい。
そうすると、見切れの関係で=と-をうっかり見間違えたりする。
839デフォルトの名無しさん:2006/07/26(水) 18:11:36
その機能を使うか使わないか選べるなら、搭載してもいいと俺は思う。
840デフォルトの名無しさん:2006/07/27(木) 00:17:53
個人的には、最下行が見切れてようが気にしないが、
見切れないようにするなら、ウィンドウサイズじゃなく、
文字の方を合わせるべきだろ、メモ帳みたいに。
メモ帳は全体が表示できない場合は描画自体しないね
842デフォルトの名無しさん:2006/07/27(木) 03:01:02
端を空欄にするのは適切な妥協だと思う。
ただ、RADとか使わないでガリガリやる時はそのぐらいこだわりたいとちょっと思った。
843デフォルトの名無しさん:2006/07/27(木) 03:47:38
むしろウィンドウサイズで誤魔化す方が妥協だと思うけど。
最大化したときに隙間空くのカコワルイ
845デフォルトの名無しさん:2006/07/27(木) 05:54:54
行間を変えて誤魔化すんだ
846デフォルトの名無しさん:2006/07/27(木) 09:48:15
何このいつのまにかソフトの仕様考えてるスレ
847デフォルトの名無しさん:2006/07/28(金) 23:40:16
WTLで書いたソフトをMFCで書き直したらサイズが半分になった・・・
orz...
848デフォルトの名無しさん:2006/07/28(金) 23:54:50
もう次スレはいらないかも試練ね
849sage:2006/07/29(土) 03:25:10
>>847
MFCの共有DLLにすればサイズは小さくなるわなぁ・・・
850デフォルトの名無しさん:2006/07/29(土) 04:05:43
誰かMFCのSuperGridをWTLに移植してくれー
851デフォルトの名無しさん:2006/07/29(土) 09:18:32
>>847
MFC厨おつ
852デフォルトの名無しさん:2006/07/29(土) 11:02:42
いやここはこうだろ

>>847
すげえ、この人。ダイナミックリンクしといて(ry
853デフォルトの名無しさん:2006/07/29(土) 11:09:21
WTLって速いの?
854デフォルトの名無しさん:2006/07/29(土) 11:10:01
MFCの方が500倍速いからやめとけw
855デフォルトの名無しさん:2006/07/29(土) 15:46:43
>>853
まじレス。
ATLは軽量コンパクトで、速くする余地がある。
設計次第。

WTLは、そうではない。
WTLのコードをちょっと見るだけでも直感的にわかるだろうけど、
その直感は全体を通して当たってる。
速くするとかコンパクトにすることには主眼を置いていないと見える。

WTLは素晴らしいという人が例に出すWTLの美点は大抵ATLのコードで、
WTLのコードを例にとって素晴らしいという人はいない。
856デフォルトの名無しさん:2006/07/29(土) 16:05:16
え、何この人?
857デフォルトの名無しさん:2006/07/29(土) 16:06:36
そうそうwだからやめとけww
858デフォルトの名無しさん:2006/07/29(土) 16:07:55
>>856
WTLを使うとコーディング時間が10倍に!?
きめぇwwwwww

ただ、x64対応とか考えると結構不安要素多いんだよな
(いちおうサンプルコードはx64用のMakefile書くことでそのままビルドできた)
860デフォルトの名無しさん:2006/07/29(土) 16:14:50
>>859
x64に限らず不安定要素は多い。
枯れるまでにはまだまだ時間がかかりそうだが、
その前に消滅してるかもしれん。

自分の環境で動けばそれでいいって場合はいいかもな。
861デフォルトの名無しさん:2006/07/29(土) 16:46:38
WTLはバグが多いからね。
結局WTL自体のソース読む事になる。
862デフォルトの名無しさん:2006/07/29(土) 16:48:00
んまあ、フレームワークにしろ言語にしろ、
普通の人はケースバイケースで使い分けてるでしょ。
頭の弱い人は○○最強!とか言い出してもう大変だけどw
863デフォルトの名無しさん:2006/07/29(土) 17:10:08
夏厨うぜえ
864デフォルトの名無しさん:2006/07/29(土) 17:14:37
夏厨を定義してみます。

夏厨:
使えてもいないのに、WTL最強とか言い出す子。
使っている人が「WTLいまいちだね」などと言い出すと発狂しだす。
865デフォルトの名無しさん:2006/07/29(土) 17:37:31
ATL/WTL使ってる人は、SDKも大体分かってるね。(MFCも使えるという人が多い)
MFCしか使えない→厨、ウィザード厨、応用力無しって感じ
866デフォルトの名無しさん:2006/07/29(土) 17:45:29
>>865
WTL使ってる子は、ATLは大体わからないね。(MFCは挫折したという人が多い)
ATL使ってる人は、「WTL使う意味ってどこに有るの?」って思ってる。

ATL+MFCの方が効率いいじゃん。
いろんな意味で。
867デフォルトの名無しさん:2006/07/29(土) 18:02:19
そうそうwだからWTLはやめとけwww
868デフォルトの名無しさん:2006/07/29(土) 18:08:25
ここはWTLを好んで使う人の為のスレです。

MFC信者はこちらへどうぞ。
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
869デフォルトの名無しさん:2006/07/29(土) 18:32:53
>>868
ATLを好んで使う人なんだけど・・・
で、WTLは糞だなって思ってる。
870デフォルトの名無しさん:2006/07/29(土) 18:34:44
は?
871デフォルトの名無しさん:2006/07/29(土) 18:40:09
いやもうまったくもっておっしゃる通りwだからおまいはWTLやめとけwww
872デフォルトの名無しさん:2006/07/29(土) 18:41:41
アンチWTLの方はこちらで存分にどうぞ。

WTLはATLやMFCより糞!!!
http://pc8.2ch.net/test/read.cgi/tech/1154166059/
873デフォルトの名無しさん:2006/07/29(土) 18:45:07
んまあアレですよw重要なのは何使うかより何作るかだからwww
874デフォルトの名無しさん:2006/07/29(土) 18:45:22
>>871
WTLなんか使うわけないでしょ。
常識で考えなよ。
重くて遅いし、インテリセンスも利かないしコンパイルも遅いし。
統合的なアプリのソリューションビルドしたら3日はかかるよね。
まぁWTLでそこまで大きなアプリは作れないけど。

次スレは、「(WTLのいないクリーンな)ATL Part5」だね。
夏ですな
876デフォルトの名無しさん:2006/07/29(土) 18:53:31
次スレが立ったが、タイトルが悪すぎ。
http://pc8.2ch.net/test/read.cgi/tech/1134388951/
877デフォルトの名無しさん:2006/07/29(土) 22:11:59
ダンゴリオンがまともに見える日が来るとは思わなんだw
878デフォルトの名無しさん:2006/07/29(土) 22:21:09
で、WTLってどういうときに使うと嬉しいわけ?
879デフォルトの名無しさん:2006/07/29(土) 22:53:10
新人に自慢するとき
880デフォルトの名無しさん:2006/07/29(土) 22:57:04
       , -: ': : : : : : :"⌒: ̄:` : 、
      /: : : : へ._ : : : :へ、: : : \
    __,く;へ_: : :| : : : : : : : \ ̄:ヽ、\
.   /:__/: : :/: : |: :l: : : : : : : : \.: :ヽ: ヽ
  /_//: : :/: / :|: l: : :ヽ: ヽ: : : : ヽ: : ヽハ
//: /: : : : : |: : l: : |: : |: : ヽ: :ヽ: : ヽ: : : : : : :ヽ: : ヽハ
. /:/: /: /: l: |: :,|: : ハ: : |: : : ヽ: :ヽ: : ヽ: : : : : : :ヽ : ヽ|
//: : l: :l: ::|: :|: :|: : :| ヽ lヽ : : :\: ヽ.: :\: : : ヽ:ハ: : : |
| l: : |: :|: : |: :|: ハ__,L. ヽ \" ̄「 T ト- 、;_: : : : :|: : :.|
| |: : |: :|: : |: ;|イ「 ヽ|   \´\ヽ __」__i.\ \ : : |: : :|  もう・・・仕方の無いことばかり言って・・・
| |: : |: :|: : くv' _」=i    ヽ /「 i::::::o「\|ヽト: |: :/|
i l: : ハ: l: : :.ト / {:::::::〉       レヘ:.::::}゚i|/|: ::| .}レ': :|
 ∨:| Vヘ: ::ヘヽ vヘ:ハ       ..く_二iつ|: :.:レ: :| : :|
  ヽヽ∨へ:ハ  ヾツ        ////ハ:/::|: :|: : :|
      ∧: :i:ヘ.l //   `        /: {:::::|: :l: : ハ
     /:/: ∧: \     。     ,.イ:|: :|::i:::|: :l: ::∧
     //: : :}: ヽ`i:: 、.      / .|::| :|:::i::::|: i:: : ∧
    ://: : : ハ: ヽ::::::ノT ' ‐ '    |::|: :V::::i∧: : : : ヘ
   //: : ノ二 ヽ: :\ 〈ー 、 _____,トヘ: :∨::i::∧: : : :.∧
 //:/ /⌒ \  ヽト、: :ヽ\_______ハ \:∨ハ:::∧: : : :} \

CPUを破壊するプログラム書けるプログラマって居たら神じゃね?wwww
882デフォルトの名無しさん:2006/07/30(日) 00:01:50
WTLがATLより〜とか言ってるやつって、ATL/WTL使ったことないだろw
WTLはATLに依存してるから、ATLとWTLを別に考えるなんて出来るわけ無いんだが
WTL単体じゃロクな物作れないだろ
誤爆
つーか、ATLのCWindowImplをもっと便利に使おうと思って生まれたのがWTLなわけで
WTLを開発したのはATLのチーム。
ATLはバージョン更新時に一部WTLの機能を取り込んでるしね

ATL使ったWindowsアプリ書こうと思ったらWTLが一番手軽。
884デフォルトの名無しさん:2006/07/30(日) 00:42:43
CWorkerThreadにさせる処理はどこに書けばいいんだろうか
885デフォルトの名無しさん:2006/07/30(日) 00:49:15
>>881
AMDのモバイルCPUと一部のママンなら簡単だぜ?
電圧上げるだけでいいんだから。
886デフォルトの名無しさん:2006/07/30(日) 09:32:16
IWorkerThreadClientのExecute
887デフォルトの名無しさん:2006/07/30(日) 09:32:49
最近のってファンとめられるじゃん
888デフォルトの名無しさん:2006/07/30(日) 14:06:04
unDonutのソースを参考に、donut2.52のソースをVisualStudio2005
でビルド出来るようにしましたが、動作させてみるとセキュリティや
マルチメディアの制御が機能していません。

本家donutのようなatlhost.hの直接書き換えではなく、unDonutのソース
(AmbientDispatch.とDonutView.hとDonutView.cpp)
をそっくり真似して、CAmbientDispatchなるIDispachインタフェースを
実装した外部からアンビエントプロパティを変更する
クラスで制御を行うように変更しました。

ダウンロードコントロールを制御するフラグを変更しようとすると、CAmbientProperty
のput_DLControlFlagsが呼ばれ、その中で呼ばれるRefreshAmbientで
CAxHostWindowのFireAmbientPropertyChangeをInvokeを介して呼び出しています。
しかし今回変更を加えたdonut2.52では、CAxHostWindowのInvokeで
FireAmbientPropertyChangeが呼ばれません。

さらに調べたところ、CComTypeInfoHolder::GetTI内のLoadTypeLibで失敗しています。
ここが原因なのではとにらんでいるんですが、ATL/WTLは勉強し始めて日も浅く、
ここからどうすればいいのか分からず頭を悩ませています。

どうかお力を貸して頂けないでしょうか?
889デフォルトの名無しさん:2006/07/31(月) 17:20:31
>>888
unDonutにはAPIという(ひどい名前の)タイプライブラリがあって
LoadTypeLibではそれが読み込まれている。
本家Donutはそれがないのでエラーになる。
タイプライブラリを付け加えれば多分うまくいくだろうけど面倒なので、
無理やりっぽいけどRefreshAmbientを次のように書き換える。

void RefreshAmbient(DISPID dispid)
{
    CAxHostWindow* pHost = static_cast<CAxHostWindow*>(m_pHost.p);
    pHost->FireAmbientPropertyChange(dispid);
}

890デフォルトの名無しさん:2006/07/31(月) 23:31:19
>>889
アドバイスありがとうございます。
やはりタイプライブラリが必要だったのですか。

教えて頂いた方法を早速試したところ、なぜか動作しませんでした。

試しに、VisualStudio2005でビルド可能にしたunDonutに同様の変更を
加えてみたところ、こちらは正常に動作しました。
教えていただいた方法に間違いは無い事を確信。
(私のミスであることも確信)
よくソースを見比べてみます。

おかげさまで活路が開けました。
ありがとうございます。
891デフォルトの名無しさん:2006/08/02(水) 20:19:22
    /三ミミ、y;)ヽ
   /三 ミミ、ソノノ、ヾ、} アンタ、デフラグしないと死ぬわよ。
   ,':,' __  `´ __ `Y:}
   }::! { : :`、 ,´: : j !:!
   {:|  `・、 i ! ,・;'  |:}   
  r(   / しヘ、  )j   
  g !  ` !-=‐!´ ,ノg
    \._ヽ _´_ノ ソ
  __,/ ヽー ,/\___
  |.:::::.《  ヽー/  》.::.〈

        _,,,,,,,...........,,,,,_
      ,/:::::::::::::::::::::::::::::ヽ.
      /:::::::::::::::::::::::::::::::::::::::ヽ.
     .|:::::::::i"""""""""""ヾ::!
     |:::::::ノ         ゙l;!
    /`ヾ;/   -‐ 、   -‐ 、 }
    | r 'i     zェェ、   zェェ、 |
    ヽ` !          !   |
     `7    /、,, _ ,,)、  l
,....--―'"|ヽ.   ´  _     / <放っておくと大変なことになりますよ
::::::::::::::::::::| \  ´ ̄ ー ̄ /ー:::
:::::::::::::::::::::|.   \____,/|:::::::
892デフォルトの名無しさん:2006/08/06(日) 20:13:49
過疎
893デフォルトの名無しさん:2006/08/07(月) 00:53:42
リバーコントロールのバンドを下の図の用に配置するにはどうすればいいのでしょうか?
http://gamdev.org/up/img/6960.jpg
やはり、一つのバンドを複数行に渡って表示させるのは無理なのでしょうか?
894デフォルトの名無しさん:2006/08/07(月) 08:53:34
リバーコントロールにリバーコントロールをバンドとして挿入してみるとか
895デフォルトの名無しさん:2006/08/14(月) 15:45:49
だれもいない
896デフォルトの名無しさん:2006/08/15(火) 10:54:28
>>749
>WTLは多重継承を前提とするテンプレートベースのクラスライブラリなんで
>仮想関数テーブルを持てない。

ATLの時点ですでに仮想関数テーブル持ってるけどな。
ここの人たちは何か勘違いしているようだけど、
WTLは効率を追求した形跡なんてどこにもないぞ?
実装の継承によって手早くコードを完成させたいときにはいいかもしれない。
もちろんこれはOO的にはやっちゃいけないことの部類に入る。
便利だっていう感想は有り得るけど、速いとか小さいって言うのは有り得ないし、
設計上も本来は問題があるわけでマンセー出来るようなものじゃない。
実装も依然かなりのバグを含んでいて修正される気配もないし、
プロジェクトのアクティビティーも低い。
自分がプロジェクトを引き継ぐくらいの気概が無いと使うのは無理なんじゃないか?
まぁ、2チャンネルだから仕方ないけど。
897デフォルトの名無しさん:2006/08/15(火) 11:08:07
実装の継承をやっちゃいけないとは言いすぎだと思う。
898デフォルトの名無しさん:2006/08/15(火) 11:17:24
>>897
言い過ぎなのはわかってるよ。
ATLをデザインした人はわかった上でやってるだろうし、何しろ便利だ。
ただ、このスレの流れが気になってね。
嘘ばかり書いてマンセーしてるから。
このスレを見てWTLの使用を検討する人がいたら気の毒だ。
899デフォルトの名無しさん:2006/08/15(火) 11:54:15
え、何この人?
900デフォルトの名無しさん:2006/08/15(火) 12:14:32
アンチと信者の書き込みを鵜呑みにするような人間は
このスレに限らず、そもそも2chを見るのやめた方がいい。
アンチと糞コテのレスがこのスレの流れだと思ってるのも痛いな。
ここを見るような人間の大半はMFCもWTLも使うし用途によって自分で判断する。
くだらない話に乗らないからアンチと糞コテのレスが目立つだけだ。
901デフォルトの名無しさん:2006/08/15(火) 12:20:23
>>900
自分で判断できる技量のある人ばかりなら問題はないが、
世の中そういう人ばかりではない。
そもそも、自分で判断できるならWTLを実用にすることはないだろ。
研究するならわかる。
だいたい、WTLを使う用途って何?
そのソフトウエアを使うユーザーだって気の毒だ。
902デフォルトの名無しさん:2006/08/15(火) 12:33:45
別にUIがソフトウェアの本質じゃないし、好みや親和性で適当なの使えばよろしかろ。
903デフォルトの名無しさん:2006/08/15(火) 12:35:27
>>902
UI以外のどこにWTLを使おうと?
904デフォルトの名無しさん:2006/08/15(火) 12:41:23
ソフトウェアの機能がUIに引っ張られるようじゃ本末転倒でしょってことだよ。
豪華なUIに中身なしなんてのを作るわけじゃないだろ。
905デフォルトの名無しさん:2006/08/15(火) 12:44:30
>>904
それならなおさらWTLの使いどころなんてないだろ。
906デフォルトの名無しさん:2006/08/15(火) 12:46:30
>>901
いい加減想像力膨らまそうや。
ユーザが自分だけかもしれないし
気の毒なほどパフォーマンスに差のでるソフトを作るのかどうかもわからんし
何を誰のために作るのかも決めずに
実用にすることはないだの気の毒だの不毛もいいとこ。
907デフォルトの名無しさん:2006/08/15(火) 12:47:39
コマンドバーを使う。
908デフォルトの名無しさん:2006/08/15(火) 12:48:19
だからUIが主役じゃないんだから、好きなもん使えばいいだろって話。

個人的には、MFCはアプリそのものの構造に口をはさんでくる傾向があるから、
UIと機能が切り分けにくくて使いにくいと感じるけどね。
909デフォルトの名無しさん:2006/08/15(火) 12:48:52
簡単にDialogResizeを使ったダイアログを作りたいとき。
910デフォルトの名無しさん:2006/08/15(火) 12:49:57
信者とアンチ以外は全員わかってる<好きなもん使えばいい
このスレに限らず言語だろうがOSだろうが。
911デフォルトの名無しさん:2006/08/15(火) 12:59:42
>>906
ユーザーが自分だけで気の毒なほどパフォーマンスが悪化してもいい場合の話を
一般化して語ってるから問題なんじゃ?

ユーザーが自分だけで気の毒なほどパフォーマンスが悪化してもいい場合のみ使える
ライブラリがWTLだって明示した上なら問題ないと思う。
912デフォルトの名無しさん:2006/08/15(火) 13:04:46
>>911
誰も一般化はしてないと思う。
みんなそれぞれが自分の想像した環境だけで話してるからこうなるんだって。
ありがちなパターンじゃん。

ちなみにこれだと意味が変わる。
>気の毒なほどパフォーマンスが悪化してもいい場合のみ使える
913デフォルトの名無しさん:2006/08/15(火) 13:04:48
>>910

そういう話じゃないから。
>>896からよく読む。
914デフォルトの名無しさん:2006/08/15(火) 13:09:50
>>913
>>896は何が言いたいんだよ。
>>896がプロジェクトマネージャでこのスレの住人がプロジェクトメンバーならわかるが。
そいつはいろんな板のいろんなスレで「それよりこっちが良いからそれは使うな」と言って回ってるのかね。
915デフォルトの名無しさん:2006/08/15(火) 13:12:13
>>914
いくら2CHとは言え、嘘書いてまでマンセーしちゃだめってことだろ。
916デフォルトの名無しさん:2006/08/15(火) 13:13:16
趣味で独自OS作ってる人とかにもつっかかってそうだな。
「そんなOS役に立たないからWindows使え」とか。
917デフォルトの名無しさん:2006/08/15(火) 13:15:36
>>914
SFのWTLプロジェクトの話だろ。
もうほとんどメンテナンスされなくなってるから、
誰かが引き継がないといけない。
Latest Newsが去年の11月だぞ?
918デフォルトの名無しさん:2006/08/15(火) 13:16:00
>>915
嘘を指摘するなら歓迎だが、
後半のプロジェクトのアクティビティーやら
使うのは無理やらはいらんだろ。
919デフォルトの名無しさん:2006/08/15(火) 13:19:29
>>917
前半でWTLの設計を否定してるかと思ったら
プロジェクトの存続を危惧する内容だったのか。
そういう意味で「2chだから仕方ない」と言ってるなら
それはそうだろうな。
920デフォルトの名無しさん:2006/08/15(火) 13:19:43
>>918
このスレにはそういうことが書いてないからな。
すでに消えそうなライブラリだって>>1にはっきり書いておけば良い。
921デフォルトの名無しさん:2006/08/15(火) 13:22:11
>>917
Latest Newsは実際あてにならないから、俺はファイルリストのRSSとYahooGroupを見てる。
922デフォルトの名無しさん:2006/08/15(火) 13:22:49
>>921
WTL自体が当てにならない。
923デフォルトの名無しさん:2006/08/15(火) 13:25:40
確かにSF自体の活気は無いが、
リリースは常に2〜3ヶ月ごとにされてるし
今更消えそうだとか騒ぐこた無いと思うが。
924デフォルトの名無しさん:2006/08/15(火) 13:26:54
名前変えただけのリリースとかなw
925デフォルトの名無しさん:2006/08/15(火) 13:28:11
一言煽るだけのアンチが湧いてきたな
926デフォルトの名無しさん:2006/08/15(火) 13:34:56
>>923
2〜3ヶ月でリリースなんてされてないはずだが。
927デフォルトの名無しさん:2006/08/15(火) 13:39:25
>>926
どこ見てるのよ。
928デフォルトの名無しさん:2006/08/15(火) 13:40:26
>>927
SF
929デフォルトの名無しさん:2006/08/15(火) 13:42:18
930デフォルトの名無しさん:2006/08/15(火) 13:44:01
>>929
去年でとまってるな。
931デフォルトの名無しさん:2006/08/15(火) 13:45:27
>>930
7.5系だからだろ。おまえはちょっと頭の弱い子っぽいな。
932デフォルトの名無しさん:2006/08/15(火) 13:50:51
>>931
そういう書き込みが嘘っぽいんだよな。
で?何で8系出さない?
やっぱり、2〜3ヶ月でリリースなんてされてない。

昔は活発に開発されていたこともあったって認識で良いだろ。
今はもうたまに気が向いた人が少しの変更を加えるってくらいだ。
来年にはプロジェクト自体削除される可能性だってある。
933デフォルトの名無しさん:2006/08/15(火) 13:54:13
プロジェクトを作った始めのうちは開発者も熱心だったが今はもう放置されている。
ありがちだね。
934デフォルトの名無しさん:2006/08/15(火) 13:55:46
よく立つ作ろうスレと同じか
935デフォルトの名無しさん:2006/08/15(火) 13:57:49
>>932
嘘っぽいって何だよ。
8系だと2リリースしかされてないから7.5出したんだろうが。

つーかその削除される可能性があることをアピールする目的がわからん。
もう削除されそう、だから使うのやめよう、と思ったら使うのやめればいいだろーが。
アピールなんていらんぞ。好きにやめれ。
936デフォルトの名無しさん:2006/08/15(火) 13:59:50
とりあえず、2〜3ヶ月ごとにリリースされてるのは嘘だった。
しかも、8系だとたった2回しかリリースされなかった。
今後リリースされる予定もない。
937デフォルトの名無しさん:2006/08/15(火) 14:01:28
>>936
直近の一回が5ヶ月かかっただけで嘘っぽいって子供の喧嘩かよ・・・
938デフォルトの名無しさん:2006/08/15(火) 14:02:04
>>935
8系出せば2〜3ヶ月でリリースされていないってはっきりするでしょ。
だから嘘ってこと。
939デフォルトの名無しさん:2006/08/15(火) 14:02:07
ATLと同じ状態ってだけだ
気にすることは無い
どうせサンクとラッパーがほしいだけなんだから
あとはどうでもいいだろう
940デフォルトの名無しさん:2006/08/15(火) 14:03:29
>>937
それも嘘。
半年かかってる。

嘘書いてマンセーすると鵜呑みにする人がいるからやめよう。
941デフォルトの名無しさん:2006/08/15(火) 14:05:55
>>938
あ?8の1番目のリリースまで2〜3ヶ月だろ。
最後のリリースが5ヶ月だから全部嘘だと思いたいならそれでもいいが。
942デフォルトの名無しさん:2006/08/15(火) 14:06:12
ここでだんごが登場すると面白いんだが
943デフォルトの名無しさん:2006/08/15(火) 14:06:59
ああすまん、たしかに半年だ。
944デフォルトの名無しさん:2006/08/15(火) 14:07:41
>>941
すでに開発が止まってしまったのは認めねばなるまい。
945デフォルトの名無しさん:2006/08/15(火) 14:09:35
>>941
5ヶ月と書くと、それを見て鵜呑みにする人がいるからやめよう。
946デフォルトの名無しさん:2006/08/15(火) 14:10:56
今月がちょうど3ヶ月目だからなんとも言えないのと、
開発ペースが遅くなった、または止まったとして
ここで騒ぐ意味あるのか。
「WTL終わったな」と言いたいだけならム板の慣習通り専用スレ作った方がいいぞ。
947デフォルトの名無しさん:2006/08/15(火) 14:12:30
>>946
嘘書いてマンセーするのはやめようってことだ。
本気にしてWTL使う人がいたらかわいそうだろ?
948デフォルトの名無しさん:2006/08/15(火) 14:13:10
おまえらよくこんな過疎スレで一昔前の「Java VS .NET」みたいなことやる気になるよな
949デフォルトの名無しさん:2006/08/15(火) 14:14:14
>>947
心底つまんね
950デフォルトの名無しさん:2006/08/15(火) 14:14:53
>>948
WTL v.s. 何?
951デフォルトの名無しさん:2006/08/15(火) 14:17:09
夏休みの風物詩というか
952デフォルトの名無しさん:2006/08/15(火) 14:22:54
WTLのパフォーマンスやコードサイズが問題だとかいう馬鹿はとりあえず
サンプルコードなりベンチマークなり用意しろな。
953デフォルトの名無しさん:2006/08/15(火) 14:25:31
>>952
開発も止まったことだしもう良いでしょ。
954デフォルトの名無しさん:2006/08/15(火) 14:26:36
スレが伸びてたから、新バージョンでも出たのかと期待した俺が馬鹿だった。
955デフォルトの名無しさん:2006/08/15(火) 14:27:16
>>954
もう出ないよ。
956デフォルトの名無しさん:2006/08/15(火) 14:29:49
>>953
はいはい、うざいから書き込まないでね
957デフォルトの名無しさん:2006/08/15(火) 14:32:09
Yahoo! Groupsも今年に入ってから停滞してる。
958デフォルトの名無しさん:2006/08/15(火) 14:35:37
見ればわかるが。
959デフォルトの名無しさん:2006/08/15(火) 14:41:31
できの悪い糞ツールキットでも作ってる業者の
工作員かと勘ぐってしまう
960デフォルトの名無しさん:2006/08/15(火) 14:43:10
そこまで被害妄想が酷いようなら普通に病院行ったほうがいいんじゃね?
961デフォルトの名無しさん:2006/08/15(火) 14:44:23
>>960お前が逝け池沼
962デフォルトの名無しさん:2006/08/15(火) 14:45:31
あーあ怒っちゃった。
963デフォルトの名無しさん:2006/08/15(火) 14:47:19
>>959
君のまわりは陰謀が渦巻いてるんだよ。
俺は良い病院は知らない。ごめんな。
964デフォルトの名無しさん:2006/08/15(火) 14:47:30
とりあえず糞でもなんでもいいから
WTLよりいいライブラリ作って出してくれよ。
言いだしっぺの何とやら。
965デフォルトの名無しさん:2006/08/15(火) 14:54:14
止まったな
所詮WTLより優れたものを作れないクズが騒いでるだけ
966デフォルトの名無しさん:2006/08/15(火) 14:56:19
病院行ったんだろ。
967デフォルトの名無しさん:2006/08/16(水) 19:49:15
cmcmFinalZwtew3.d(w
968デフォルトの名無しさん:2006/08/17(木) 00:06:59
どうしてWTLは死滅したのか
http://pc8.2ch.net/test/read.cgi/tech/1155725575/
APIで書くにはめんどくさく、MFCとか.NETとかの使うまでもない小物ツール作るには
十分重宝してるし、代替手段ってパッと思い浮かばない。

更新が滞ったっていいじゃん。「枯れてきた」ってことで。
970デフォルトの名無しさん:2006/08/17(木) 00:33:19
そんなバグおおいの?
結構、ごりごり書き始めてるんだけど・・・
バグだらけになるほど厚いラッパーじゃない。
せいぜいあってもAPI・コントロールの仕様変更に伴う互換性の問題くらいじゃないかな。

覚えれば圧倒的に楽だから、問題箇所を自前で修正してでも使う価値はある。
972デフォルトの名無しさん:2006/08/17(木) 01:13:56
デバッガでコード追えるしね。
WTLクラス -> 継承して汎用的な機能を付加 -> 継承して使い回し
って使ってるから、↑ここでバグフィックスしたメソッドを入れれば大丈夫かな。
973デフォルトの名無しさん:2006/08/17(木) 09:54:28
実際に中規模ソフトに WTL を使おうと思ってるんだけど、
具体的にどこがバグで、どこが実際に遅くなるの?
974デフォルトの名無しさん:2006/08/17(木) 13:46:39
WTLのバグやら非効率やらで困ったことは特にないなあ。
ATL Serverとかだとアレだが。
975デフォルトの名無しさん:2006/08/17(木) 16:46:54
                 ,. -一   ̄ ̄`  - 、
                  /             \
               |====ミx,、、_        \
            、__>ァ¬一ァ―r¬ミi、         \ オヤシロさまは開発の守り神さま。
               ̄7'/'/ ////  ,ハヘ.,ニヽ、     } …プログラミングの決まりを守らずにWTLを使う人を
                // / /:,'/,'  '  i┴`≠| i }`T''トrイ 絶対に許さない。 私はちゃんとMFCを使った!
             //i , ; !:!:| !:i  |   | |,ハ. l. l. }::| でも>>1はWTLしか使えなかった。 だから!
              | i {. { l | トi;、l_ト、 | _,. ィく!ノi. }:| :! l :| オヤシロさまの祟りにあってしまったに違いないのッ!!
             N.\ヽ.ヽ.ヽi!.{::::ji!ヽ!.'{_:::::} ji. |,リノ ' , |
                >ト、_トトr`´ ,______  ̄´イ/',.イ/ :/
                 /:イ ハトゞゝ  Y¨ ̄} ≦,イィ1 イ /|  オヤシロさまの祟りは信じようと信じまいと、
     _. --- 、    /〃 ,'// /:/_> `二  イ //ノ ,ハ{ノ!  確かにッ、
  , ‐',.-      \. ,'./.| /!|:|レ'|:{r一 ''  ̄iスニム.ム!_ル'
  l   |   /⌒   | V | | ||/_ヽ-〉   _,イ/ , --  \
  l__,/|  :|     |  /.N /  } |__,///>/        !
     ー1  ,ノ ,:'1 ,Kニ.ヽ|   \__, イ { 〈        '
      丁  /´ ヽ.   ヽ}     '⌒ヽニ=ヘ.  イ /
       `iー.′   l   /!          /l ヾニ゙イ
          !     }/_,ノ          〃 ` ̄´/
        ヽ __/フ'´         〈{     /
         _/ /   /     、____ ,.!   ,/ \
        / '  /   |    ヽ . _   ー '´      
976デフォルトの名無しさん:2006/08/17(木) 17:02:33
j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;   
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;   
  ヾ;;;ハ    ノ       .::!lリ;;r゙  
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
977デフォルトの名無しさん:2006/08/19(土) 05:32:55
質問です。
VS2005 に WTL8を入れてるんですけど
アプリケーションウイザードで生成したダイアログのOKボタンをダブルクリックで
LRESULT CMainDlg::OnBnClickedOk(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
こんなコードが自動で生成されますが、これが生成された途端コンパイル通らなくなります。
どうやら、
>error C2504: 'CUpdateUI' : 定義されていない基本クラスが宣言されています。
これが原因らしいのです。
で、マウスをCUpdateUIの上に試しに載せてみても、どうやら未定義らしいのです。

このせいで、コントロール貼り付けてもそれに対応したコードをかけなくなっています。
CUpdateUIを使いまくるみたいなんで・・。

どうすれば解決するのでしょうか?
978デフォルトの名無しさん:2006/08/19(土) 09:27:09
>>977
WTL/ATLを使うなら、ダブルクリックで作成されたコードは使えないよ。
あれはMFCを想定して生成しているから...

maindlg.cpp が自動的に生成されていると思うので、それのコンパイルでエラーが発生している
maindlg.cppには、WTL/ATLで必要なヘッダー定義が自動生成されていないためにエラーがでるんだよ。

対応方法は2通り
1.maindlg.cpp を削除して、maindlg.hに実装コードを書く
2.maindlg.cppのヘッダー定義を<プロジェクト名>.cppを見ながら、ゴリゴリ書く

おれは、1を推奨する。
WTL/ATLを使うと、どうしても .hに実装コードを書くことが多くなる
979デフォルトの名無しさん:2006/08/19(土) 10:43:20
980デフォルトの名無しさん:2006/08/19(土) 13:28:22
ume
CUpdateUIは atlframe.h だな
982デフォルトの名無しさん:2006/08/19(土) 14:55:10
>>978
最初に.cppを生成するかどうかは選べるでしょ。

漏れは小規模なテストプログラムみたいの以外では、
無理やりヘッダに詰め込む事はしないようにしてる。
ヘッダが肥大化すんのよね。

CMainFrameは巨大化しがちなので、実装(cpp)は複数ファイルに分けたりすることもある。
984デフォルトの名無しさん:2006/08/19(土) 15:36:52
>実装(cpp)は複数ファイルに分けたりすることもある。
テラキタナス(wwwwwwwwwwwwwww
985デフォルトの名無しさん:2006/08/19(土) 15:44:26
CMainFrameに貼り付けるコントロールをそのままメンバ変数にして
イベントハンドラ書きまくってたら肥大化する。
CMainFrameに貼り付けるコントロール毎にクラス化すべし。
各コントロールクラスはCMainFrameのポインタもってね。
コントロールははメッセージリフレクション使って実装してるからいいんだけど
メニューの項目が膨大になると・・・ね。
987デフォルトの名無しさん:2006/08/19(土) 15:51:49
メニューの項目一個一個をActionクラスにしよう
988985:2006/08/19(土) 15:53:44
>>987
そうそうメニューもそうすべし。
自分はC#でだけど、ベタベタ書いてたら、ソースふくれまくったよ。
989デフォルトの名無しさん:2006/08/20(日) 06:47:28
うめ
990デフォルトの名無しさん:2006/08/20(日) 13:43:06
991デフォルトの名無しさん:2006/08/20(日) 17:21:55
埋め
992デフォルトの名無しさん:2006/08/20(日) 17:28:21
ウメ
993デフォルトの名無しさん:2006/08/20(日) 17:44:02
あっ!

埋め
994デフォルトの名無しさん:2006/08/20(日) 19:24:22
Ume
995デフォルトの名無しさん:2006/08/21(月) 00:53:59
996デフォルトの名無しさん:2006/08/21(月) 05:20:08
梅酒
997デフォルトの名無しさん:2006/08/21(月) 11:47:00
埋めに何日かけるつもりだ
998デフォルトの名無しさん:2006/08/21(月) 13:07:05
まったくだ
999デフォルトの名無しさん:2006/08/21(月) 13:07:48
うめっうめっうめっっ
1000デフォルトの名無しさん:2006/08/21(月) 13:08:34
1000なら、ATL/WTL開発終了
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。