トップページ⇒tech
1001コメント259KB

ATL/WTL Part6

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2007/12/27(木) 21:19:13
ATLとWTLについて語り合って下さい。

WTL配布元
http://wtl.sourceforge.net/

過去ログ
■(Part1) ATL/WTL
http://piza.2ch.net/test/read.cgi/tech/978029639/l50
■(Part2-1) ATL 相談室
http://pc5.2ch.net/test/read.cgi/tech/1029029882/l50
■(Part2-2) WTLお勉強スレッド
http://pc5.2ch.net/test/read.cgi/tech/1078150663/l50
■ATL/WTL Part3
http://pc8.2ch.net/test/read.cgi/tech/1095442366/l50
■ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/l50
■ATL/WTL Part5
http://pc11.2ch.net/test/read.cgi/tech/1155951708/
0002デフォルトの名無しさん2007/12/27(木) 21:20:10
関連サイトなど
■The So-Software Studio
ttp://home.att.ne.jp/banana/akatsuki/
■WTL研究所
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
■WTL support list
ttp://tech.groups.yahoo.com/group/wtl/
■The Code Project - ATL, WTL
ttp://www.codeproject.com/KB/atl/
ttp://www.codeproject.com/KB/wtl/
■viksoe
ttp://www.viksoe.dk/code/
■MSDN
ttp://msdn2.microsoft.com/ja-jp/library/t9adwcde.aspx
ttp://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/ATLwindowing/
ttp://www.microsoft.com/japan/msdn/library/ja/vccore/html/_atl_ATL_Window_Classes.asp
■Virtual Truth Lab.
ttp://lamoo.s53.xrea.com/develop/
■日曜プログラマの仕事べや
ttp://hp.vector.co.jp/authors/VA022575/c/
0003デフォルトの名無しさん2007/12/27(木) 21:26:54
O2
0004デフォルトの名無しさん2007/12/27(木) 21:32:23
おつ
0005デフォルトの名無しさん2007/12/27(木) 21:58:48
>>1
乙
テンプレ細かいところがさりげなく整理されてるね
0006デフォルトの名無しさん2007/12/27(木) 23:25:49
今まさにWTLのリポジトリがbviksoeたんによって更新されてるな。
atldlgs.hをいじってる模様。
CDialogBaseUnitsというクラスが追加されてる。
0007デフォルトの名無しさん2007/12/27(木) 23:47:15
CStringがあるんだから
CWにみしらてにもせりとかもWTL側で作ってしまえば。
EEとかでもヘッダ持ってくるだけで使えるんじゃないの?
0008デフォルトの名無しさん2007/12/28(金) 01:17:03
最近流行りなの?わざとかな入力にするの。
オジサン、ついていけないよ(´・ω・`)
0009デフォルトの名無しさん2007/12/28(金) 02:33:49
>>7

upよろ
0010デフォルトの名無しさん2007/12/28(金) 20:56:04
atl/wtlスレもついに6か
遅ればせながら
>>1
乙
0011デフォルトの名無しさん2007/12/29(土) 21:22:42
あけましておめでとう〜
0012デフォルトの名無しさん2007/12/29(土) 23:39:02
全然あけてねーよ
0013デフォルトの名無しさん2007/12/30(日) 00:15:54
ネタくらいしか話題がないんだから仕方ないだろう
0014デフォルトの名無しさん2007/12/30(日) 10:37:23
なんで過疎なんだよ
0015デフォルトの名無しさん2007/12/30(日) 13:05:55
viksoeたんが頑張ってくれないから
0016デフォルトの名無しさん2008/01/01(火) 06:16:18
もうやだ
0017デフォルトの名無しさん2008/01/01(火) 23:00:24
江戸時代の触手プレイ漫画
ttp://www.geocities.co.jp/Playtown-Dice/6771/hokusai.jpg

江戸時代のオナホ・ディルド
ttp://hugo-sb.way-nifty.com/hugo_sb/imgs0411/adult_toys.jpg
0018デフォルトの名無しさん2008/01/03(木) 16:16:28
みんなどうやってWTL覚えたの?
覚えようにも本とか出てないんだよなぁ
0019デフォルトの名無しさん2008/01/03(木) 18:02:08
テンプレのサイトを読み書きすりゃそのうち手になじむよ。
とりあえずSo-SoとCodeProjectあたりをどぞー。
0020デフォルトの名無しさん2008/01/03(木) 18:52:59
本はいいからまずは整理されたドキュメントが欲しいな
0021デフォルトの名無しさん2008/01/03(木) 19:43:29
So-Soがあればドキュメントなんかほしいと思ったことはないな
0022デフォルトの名無しさん2008/01/04(金) 15:22:05
WTLってなぜMFC(のスタティックリンク)と比べて圧倒的に
バイナリサイズが小さくなるんでしょうか?
似たクラスが多いんで、そんなに変わらないような気がするのと、
ヘッダに全て記述することや、インライン・テンプレート化に
そこまでの効果があるようには思えないですし…。
0023デフォルトの名無しさん2008/01/04(金) 15:31:58
MFCはフローティングバーの実装だけで
WTLの全てのコード量を超えると思われる
0024デフォルトの名無しさん2008/01/04(金) 15:34:42
>>22
本当にMFCのコードなりクラスツリーなり見たか?
あれを見れば「WTLとそんなに変わらない」なんて言えないと思うんだが。
0025222008/01/04(金) 17:17:18
>>23
>>24
すいません。MFCはコードを深く読んだことないです。
でも、クラスツリーというレベルでいうと、MSDNでざっとは目を
通してはいます。
ちなみに、スタティックリンクって、"アプリ側で使用していない
オブジェクトコード(未使用クラス等)はリンク時に除かれて、
バイナリコードに含まれない"と認識してるんですが、
合ってますでしょうか?
0026デフォルトの名無しさん2008/01/04(金) 18:23:51
−−−−−−−−−−−−−−−−−−−−−−−−−−
俺様用・しおり
∧_∧   
( ・∀・)< 今日はここまで読んだ      
−−−−−−−−−−−−−−−−−−−−−−−−−−
0027デフォルトの名無しさん2008/01/04(金) 19:25:37
>>25
そんなに変わらない気がするだの効果があるように思えないだの、ごたごた言うまえに
自分で試せば一発で分かる話じゃないの?

WTLのウィザードでスケルトンをビルドしてexeのファイルサイズを比較するなり
mapファイル出力して覗いてみるなりすればいいだけだと思うが。
0028252008/01/04(金) 21:19:25
>>27
なるほど、mapファイルを見れば何か分かりそうですね。
ちょっと試してみます。ありがとうございます。
0029デフォルトの名無しさん2008/01/04(金) 22:44:22
>>28
テンプレートの仕組みさえわかれば、なんてことないと思うけどなあ
0030282008/01/05(土) 00:47:11
手持ちのVC6でSDIスケルトンで比較してみたところ、
MFCの場合、mapファイル内で大量の依存クラス(Array・
Exception・Thread・CmdTarget等)の呼び出し(nafxcw:*.obj)
が行われるのがサイズが肥大する原因のようです。
対してWTLはウィザードで生成された*.objからしか呼び出しが
行われていないので、圧倒的にサイズが小さくなると…。

>>28
テンプレートの仕組み(コンパイル時に展開)は、頭では
理解してたつもりだったのに…orz。
0031デフォルトの名無しさん2008/01/05(土) 15:15:31
よかったね!
0032デフォルトの名無しさん2008/01/06(日) 22:08:49
Windows Desktop Manager API用のヘッダが追加されてる。
http://wtl.svn.sourceforge.net/viewvc/wtl/trunk/wtl/include/atldwm.h?revision=356&view=markup
0033デフォルトの名無しさん2008/01/06(日) 23:29:17
viksoe超がんばれ
0034デフォルトの名無しさん2008/01/06(日) 23:45:23
WTLのCDialogImplを使ったダイアログクラスをモーダルダイアログとして開いた場合に、
OnIdleイベントハンドラを使う方法ってあります?
0035デフォルトの名無しさん2008/01/06(日) 23:46:54
モーダルで......あり得ねえだろ。
0036デフォルトの名無しさん2008/01/07(月) 06:13:06
質問です。

モーダルダイアログってありますが、アプリケーション全体でモーダルなダイアログが
作れなくて困ってます。

イメージとしては、タスクトレイから複数のウィンドウが開けるんだけど、
設定ダイアログを開くと、どのウィンドウをクリックしても、
タスクトレイを右クリックしても警告音?がして、
設定ダイアログがTopにくる感じです。

なんかいい方法があったら教えてください。
0037デフォルトの名無しさん2008/01/07(月) 06:53:44
ウィンドウをディスエーブルして自力でエミュレートするしかないんじゃね?
0038デフォルトの名無しさん2008/01/08(火) 18:38:53
atlfile.hってATLの3.0にはないの?
3.0以降をてにいれるにはVSを買うしかないのかなぁ
0039デフォルトの名無しさん2008/01/08(火) 19:42:15
古いDDKに入ってなかったか?
0040デフォルトの名無しさん2008/01/08(火) 20:01:01
>>39
それは3.0
0041デフォルトの名無しさん2008/01/08(火) 23:08:45
>>40
思わずインストールして確認しちまったじゃねぇか
build 6001.17121にちゃんとatlfile.hも入ってたわ
0042デフォルトの名無しさん2008/01/15(火) 12:39:52
CAppModule _Module;なくても動くけど何か弊害はないの
0043デフォルトの名無しさん2008/01/15(火) 13:03:38
>>42
分かりやすい例をあげると、_ModuleなしでSplitterWindowとか使ってみ?落ちるから。
詳しくはヘッダ参照。
0044デフォルトの名無しさん2008/01/15(火) 20:07:06
>>43
>詳しくはヘッダ参照。
WTLを使う時はこれが冗談じゃなくなるから困るw
0045デフォルトの名無しさん2008/01/15(火) 21:49:35
いや別に冗談ではないだろ
0046デフォルトの名無しさん2008/01/16(水) 11:16:18
WTL9.0っていつ出るの?
0047デフォルトの名無しさん2008/01/16(水) 15:34:03
TCHAR用だけじゃなくてascii用とUnicode用、両方用意して欲しかったなあ・・・
0048デフォルトの名無しさん2008/01/16(水) 15:53:37
std::basic_string<TCHAR>
0049デフォルトの名無しさん2008/01/16(水) 17:22:17
CStringA → ATL
CStringW → WTL
0050デフォルトの名無しさん2008/01/16(水) 18:07:03
おー、これだ。翼の入ったやつ。これが、一番好きなんだ。ウイングガンダムだ。格好いいだろ。翼、がーっと広げてな。格好いいぞ
0051デフォルトの名無しさん2008/01/17(木) 02:27:29
WTL8ってVS2008で動くの?
前試したら動かなかったんだが。
0052デフォルトの名無しさん2008/01/17(木) 02:37:57
うご
0053デフォルトの名無しさん2008/01/17(木) 14:13:18
け
0054デフォルトの名無しさん2008/01/17(木) 16:12:10
ぽ
0055デフォルトの名無しさん2008/01/17(木) 16:27:40
ま
0056デフォルトの名無しさん2008/01/17(木) 23:24:54
CStringS → STL
0057デフォルトの名無しさん2008/01/19(土) 18:39:48
class CMainWindow : public CWindowImpl<CMainWindow>
こんなかんじで
MSG_WM_SYSCOMMAND(OnSysCommand);
void OnSysCommand(UINT nID, CPoint point);
なんですけど
void CMainWindow::OnSysCommand(UINT nID, CPoint point)
{
 if(nID == SC_MAXIMIZE)
 {
  // 最大化ボタンなら無視する。
  return;
 }
}
と書くと最大化ボタン以外も無視されるわけです。
ほかのボタンの場合通常の処理へ戻すにはどう書けばいいんでしょうか?
0058デフォルトの名無しさん2008/01/19(土) 18:44:47
SetMsgHandled(FALSE)

so-soあたりで CWindowImplのメッセージ処理の基本を勉強した方が良いと思う
0059デフォルトの名無しさん2008/01/19(土) 19:23:38
あー思い出した。しばらくC#のにはまってたから。

ありがとん。
0060デフォルトの名無しさん2008/01/19(土) 19:47:37
嘘だな
0061デフォルトの名無しさん2008/01/19(土) 20:30:30
 早     /::::l:::l::、:::::、:::::ヽ::、::::::::::::\:::\::::::::ヽヽ::::::ヽ   駄
 .く      /:::!::::i:::!:::ヽ:::ヽ::::::ヽ::ヽ、::::::::::\:::ヽ:::::::ヽヽ::::::',   目 
 な.     /:l::::!::::ヽ!::ヽ:::::::ヽ:::::::\:::ヽ、::::::::ヽ:::ヽ::::::::!::i:::::::!  だ 
 ん   ハ:::l:::::、::::ヽ::::\:::::\:::::::\:::`ヽ、:::ヽ::ヽ:::::!:::!:::::l
 と   /:::::::l::::::!ヽ:ヽ::::、:::::ヽ:::、:\::::: \::::::\::::!::::ヽ:!:::i:::l:l  こ
 か  !:/!:::::!::::::!::ヽ:ヽ{:::\:::ヽ::::\:::\::ヽ:::::::ヽ!:::::::}!::::l::li|   い
 し  j/:::l:::::!:、:::!::ト、:、:ヽ:::::`ヽ{、::::::\::::\{、::::::::::::::::i::!::l:l !   つ
 な    l:i:l::::i::i:、:l::lテ=-、:ヽ、_、::\_,≧ェュ、_、\:::::::::i::li::!::リ   :
 い   !ハト:{:!:i:トN{、ヒ_ラヘ、{ >、{ 'イ ヒ_ラ 》\::l::!:ト!!:l::l!     :
 と     ヽ i、ヽ:ト{、ヾ ̄"´ l!\   `" ̄"´  |::!:l::! j:ll:!
  :      !::、::::i      l             u |:::/lj/l:!リ
  :        ヾト、:!u                 j!/ j|:::リ
          ヾ!    ヽ  ‐       u /イ´lハ/
            }ト.、  -、ー-- 、__      /' !:://
             リl::l゛、  `二¨´    /  |/:/
         rー''"´ト!::i{\       /  / !:/
        / ^ヽ  ヾ!  ヽ _,,、'´    /  j/
0062デフォルトの名無しさん2008/01/19(土) 20:33:32
証明不可能なことは書かないことだな。
0063デフォルトの名無しさん2008/01/19(土) 20:42:25
おまえもな
0064デフォルトの名無しさん2008/01/19(土) 21:44:53
if((nID & 0xfff0) == SC_MAXIMIZE)じゃね
0065デフォルトの名無しさん2008/01/19(土) 22:08:28
もう答え出てるだろうが
0066デフォルトの名無しさん2008/01/22(火) 23:38:24
C#でのGUI作成すげー楽だな…
なんかいろいろショック受けた
0067デフォルトの名無しさん2008/01/22(火) 23:47:37
C#が、じゃなくてWinFormsが、だろ
0068デフォルトの名無しさん2008/01/23(水) 08:45:48
気持ちはわかる。
0069デフォルトの名無しさん2008/01/23(水) 20:01:41
俺も初めて触ったときはびっくりしたな
もう6年前になるのか
0070デフォルトの名無しさん2008/01/23(水) 20:46:01
前から思ってたけど、ここの住人って.NETも使ってるって奴が意外と多いよな。
0071デフォルトの名無しさん2008/01/24(木) 00:26:27
そりゃ、何を使うかは、時と場合によって選択するもの。
常にネイティブC++一本で行けば万事解決な訳ない。
0072デフォルトの名無しさん2008/01/24(木) 17:18:53
>>70
C#でもperlでもjavaでもアセンブラでも
何でも使うよ、要求があれば
一度も使ったことなかったけどそれで覚えた言語とか結構あるしpythonとかphpとか
でも、一番泣けたのは2003年にvb5で作って欲しいといわれた事・・・
0073デフォルトの名無しさん2008/01/24(木) 19:15:51
>>72
その案件はこのスレはともかく、VBスレの住人ですら泣きそうだな
0074デフォルトの名無しさん2008/01/25(金) 15:21:55
>>73
開発環境が自社になくて、客から開発環境インストール済みPCを借りて開発した
ベースをこっちで作ってメンテはお客さんがやるという形だったから
担当者が使える言語という事でVB5が選ばれたんだけどね
せめてVB6だったら良かったが・・・
0075デフォルトの名無しさん2008/01/26(土) 04:44:17
嫌がらせとしか思えないな。
0076デフォルトの名無しさん2008/01/30(水) 18:39:34
CAtlExceptionは勝手に飛んでくることかあ゛るの?
0077デフォルトの名無しさん2008/01/30(水) 18:44:28
マク゛ロで切り替えられるよ
0078デフォルトの名無しさん2008/01/30(水) 18:46:21
むむ。絶滅危惧種?
0079デフォルトの名無しさん2008/01/31(木) 00:07:33
throw()が付いた関数なのにAtlThrowを呼び出してるのって
_ATL_CUSTOM_THROWで独自の例外をthrowする処理に入れ替えると
m9(^Д^)プギャーーーッでは。
0080デフォルトの名無しさん2008/01/31(木) 00:18:15
古いコンパイラだと例外指定はできても実装されてなくて
普通に例外投げれたりする。
0081デフォルトの名無しさん2008/01/31(木) 08:49:22
>>79
6箇所くらいあるよな。
0082デフォルトの名無しさん2008/01/31(木) 14:56:57
VC6のATLなプロジェクトを2005でコンパイルすると
エラーでまくりで、ためしにVC2005でATLプロジェクト作ってみたら
作成されるソースがまったく違ったんですが
古いプロジェクトをコンパイルするのに何か言い方法は
ありませんでしょうか?
0083デフォルトの名無しさん2008/01/31(木) 19:59:25
1カ所変な所を見つけたら、それと同じ箇所を一括して変更。
0084デフォルトの名無しさん2008/02/03(日) 10:51:33
Microsoft、データ実行防止技術を推進する新APIを提供 : セキュリティ - Computerworld.jp
http://www.computerworld.jp/news/sec/97289.html

> Howard氏によると、新しいAPIは多くの開発者、なかでもATL(Active Template Library)の旧バージョンを使っている開発者向けのもので、アプリケーションからDEPを呼び出すことを可能にするという。
>
> より具体的には、同APIを用いることで、アプリケーションが起動中であってもDEPを有効にすることが可能になるという。従来は、DEPを使ってアプリケーションを保護するかどうかを前もって決めておく必要があった。
>
> 「開発者がATLの旧バージョンを使っている場合でも、DEPによるアプリケーション保護が可能になる。DEPは、脆弱性を突く攻撃を防ぐ優れた技術であるため、われわれは開発者がこの技術をより簡単に使えるようにした」(Howard氏)
0085デフォルトの名無しさん2008/02/03(日) 11:35:00
旧ATLで何故DEPが問題になるか良く分からないんですが、
Window制御にマシン語(thunk?)を使ってるからですか?
0086デフォルトの名無しさん2008/02/03(日) 14:43:37
そういうこと。
動的に確保したメモリ上に、クラスの各オブジェクトへのメンバ関数に飛ぶコードを構築して、それをウインドウプロシージャにしている。
メモリを実行可能に設定してなかったんじゃない。
WindowsはDEPの例外をトラップして、ATLによって構築されたっぽいコードを検地した場合は、特別に処理している。
速度を考えた設計が、今は逆に遅くなっているわけだよね。
そんなことするぐらいだったら、mapでも使ったほうがどれほど早いか。
0087デフォルトの名無しさん2008/02/03(日) 17:00:56
新ATLはthunk使わなくなる?
0088デフォルトの名無しさん2008/02/03(日) 19:04:07
VC8にいてるATLのthunkはDEP対応だから、
いまさら使わなくなる事はないんじゃない。
0089デフォルトの名無しさん2008/02/03(日) 19:05:28
>86
というか、旧ATLはふつーにLocalAllocだからねぇ。
0090デフォルトの名無しさん2008/02/07(木) 00:16:38
>>86
ってことはATLで構築されたっぽい○ウェアを書けばおけ?
0091デフォルトの名無しさん2008/02/07(木) 07:02:19
それは違うだろw
0092デフォルトの名無しさん2008/02/07(木) 19:03:12
そういうことに関しては徹底的にやるからね、MSは。
http://www.radiumsoftware.com/0406.html#040625
Compatibility (2)
0093デフォルトの名無しさん2008/02/19(火) 19:42:09
WTL9マダー?
0094デフォルトの名無しさん2008/02/19(火) 19:51:10
1日前にまたちょっとだけ更新されてるけどまだかねぇ。
0095デフォルトの名無しさん2008/02/19(火) 21:00:21
VS2008に合わせて開発して欲しいよな

そうじゃないと日本語化されないし
まあ個人でしてくれてる人いるけど
0096デフォルトの名無しさん2008/02/21(木) 18:54:16
CDoubleBufferWindowImpl
を継承して
DoPaintで描画しているのですが、

ウィンドウが最初に表示されるときに
描画がされないのですが、なぜなのでしょうか?
0097デフォルトの名無しさん2008/02/25(月) 00:19:19
だめだ、テンプレの解説サイト見てるが難しい、C++やりなおそう
0098デフォルトの名無しさん2008/02/25(月) 18:14:04
ATL/WTL始めようと思ったけど良さそうな入門書見当たらねえ
まずWinAPIやってからATL/WTL行こう…
0099デフォルトの名無しさん2008/02/25(月) 21:16:05
soはかなりわかりやすいと思うけんども。
0100デフォルトの名無しさん2008/02/25(月) 21:17:52
>>99
ごめんなさい
プロバイダのせいか特定サイト見てると回線がぶっつりいってしまって要モデム再起動になるんです
あそこもそれに引っかかってるようでorz
Wikiもたまにそうなりますしちょっとプロバイダの変更でも検討しときます
0101デフォルトの名無しさん2008/02/25(月) 21:27:55
そういう症状聞いたことあるな、専門板に質問に行ってた頃だけど
CATVか
0102デフォルトの名無しさん2008/02/25(月) 21:43:14
>>100
そんなことで謝らんでもいいわい。
なんか面倒なんだな。
0103デフォルトの名無しさん2008/02/26(火) 00:34:21
wikiってどこのwikiだ?
0104デフォルトの名無しさん2008/02/26(火) 00:44:00
色々種類あるけど例えばWikipediaなんかでもまれに引っかかる
普通のサイトも然り、条件は何年も使っててさっぱりわからん
0105デフォルトの名無しさん2008/02/26(火) 21:15:20
すみません質問です。
ダイアログのボタンIDOKをDisabled = FalseからTrueにしたいんですが
WTL::Button idok = GetDlgItem( IDOK );
までは出来たのですがここから先が分かりません。
分かる方おしえていただけますか?
0106デフォルトの名無しさん2008/02/26(火) 21:20:49
idok.EnableWindow(FALSE);
でなくて?
0107デフォルトの名無しさん2008/02/26(火) 21:21:05
>>105
idok.EnableWindow();
http://msdn2.microsoft.com/ja-jp/library/5a6y4t2b(VS.80).aspx
0108デフォルトの名無しさん2008/02/26(火) 21:44:02
>>106-107
おかげで無事出来ました。ありがとうございます。
0109962008/02/28(木) 20:40:33
OnPaint以外で
CPaintDC使ってたのが原因みたいでした。

CClientDCに変更したら直りました。

0110デフォルトの名無しさん2008/02/28(木) 22:22:08
ATL/WTLをやるには情報の多いWinAPIをがっつりやってから入れと先輩から教わったのですが、そういうものなんでしょうか?
がっつりWinAPIをやった後それを使わずATL/WTLに進むのはやはり開発効率の違うですか?
0111デフォルトの名無しさん2008/02/28(木) 22:46:02
その質問はその先輩にすべきだと思うぞ
0112デフォルトの名無しさん2008/02/29(金) 00:04:32
>>110
ATLの入ってない無料版を渡されたんだろ?
01131102008/02/29(金) 00:06:48
>>111
ああ、やっぱりそれが正道ってわけじゃないんですね

>>112
ATLは入っていて、とりあえずWTLも使えるようにしました
0114デフォルトの名無しさん2008/02/29(金) 00:33:46
WinAPIの仕組みを理解しておけって意味だと思う
0115デフォルトの名無しさん2008/02/29(金) 04:20:27
WTLの場合ドキュメントがあんまないので、いきなり入るとわけわからなくなる
WinAPI知ってれば想像がつくので楽
0116デフォルトの名無しさん2008/02/29(金) 08:30:27
VisualStudio(2003)で付属PlatformSDKから
最新のPlatformSDKに移行したら

それまで使ってたATL,MFC,Boost等
のlibに影響出ますか?(リビルドが必要?

$(VCInstallDir)PlatformSDK\include\prerelease
$(VCInstallDir)PlatformSDK\include
01171102008/02/29(金) 10:01:46
>>114->>115
なるほど、何事も着実にですね、ありがとうございました
0118デフォルトの名無しさん2008/03/15(土) 21:39:17
WTLを勉強してみたいんだけど、2008 Express Editionじゃダメなんだよね?
フリー&一番新しいバージョンとなると、この組み合わせであってる?

Visual C++ 2005 Express Edition (with SP1)
Microsoft Windows Server 2003 R2 Platform SDK
WTL 8.0
0119デフォルトの名無しさん2008/03/15(土) 22:54:27
2005でも2008でもそう変わるとは思えないけど。
0120デフォルトの名無しさん2008/03/16(日) 10:07:43
WTLに2008用セットアップスクリプトが付いていないはず
自分で8.0を9.0に書き換えれば良いだけだけどな
01211182008/03/16(日) 12:37:08
>>119,120
ありがとう
今、2008使ってるんで、あとで試してみるよ
0122デフォルトの名無しさん2008/03/18(火) 08:44:36
WTLは手にはいるけど、ATLが手に入らなく無い?
0123デフォルトの名無しさん2008/03/18(火) 09:55:26
VSインスコしたらデフォで入ってますけど。
0124デフォルトの名無しさん2008/03/18(火) 11:58:47
EEには入ってないでしょ
0125デフォルトの名無しさん2008/03/18(火) 13:37:17
>Microsoft Windows Server 2003 R2 Platform SDK

これにATL入ってたような
古いけど

MSからのリンクは切れてるけどページ自体は残ってて
ググるとMSのdownloadページが見つかったような気がする
うろ憶え・・・
0126デフォルトの名無しさん2008/03/18(火) 18:44:52
Visual Studio 2008のProとかTeamの体験版にはきっと入っているはず。
そこからファイルコピーなんて考えませんよ、DreamSpark待ちですから。
0127デフォルトの名無しさん2008/03/18(火) 21:50:29
何度か出てるネタだが、SDK落として若干の修正をすればEEでもWTLを使える。

Using WTL with Visual C++ 2005 Express Edition
ttp://www.codeproject.com/KB/wtl/WTLExpress.aspx
0128デフォルトの名無しさん2008/03/18(火) 22:02:11
コンパイルは成功しても実行時にdepで落ちる悪寒。
0129デフォルトの名無しさん2008/03/20(木) 19:54:14
質問ですが、WTLのエディットコントロールの背景色を変更したいのですが、どうすれば良いでしょうか?
やりたいことは、エディット不可(READONLY)にしておいて、背景色は白にしておきたいだけなのですが。
0130デフォルトの名無しさん2008/03/20(木) 20:17:40
>>129
MSG_OCM_CTLCOLORSTATICとかREFLECT_NOTIFICATIONSとか・・・
せっかくスレ主が参考になるサイトのURL貼ってくれてるんだから、自分で調べてから書きこしようね
01311292008/03/20(木) 22:56:10
自分で調べた結果、分からなかったので質問しました。
MSG_OCM_CTLCOLORSTATICの具体的な説明とか、どこかに載っているのでしょうか?
申し訳ないですが私には見つけられませんでした。
0132デフォルトの名無しさん2008/03/20(木) 23:32:07
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl11-04/index.html
↑の例ではボタンだけどCEdit継承したクラスの中で指定した色の背景のブラシハンドルを返してやればいいと思うけど

親ウインドウの中で「WM_CTRLCOLOR」を処理しても同じ様な事は出来ます。
0133デフォルトの名無しさん2008/03/22(土) 01:25:12
WTL9.0っていつでんの?
0134デフォルトの名無しさん2008/03/22(土) 01:42:22
>>129

BEGIN_MSG_MAP(CColoredEditImpl)
MESSAGE_HANDLER(WM_NCPAINT, OnNcPaint)
MESSAGE_HANDLER(OCM_CTLCOLOREDIT, OnCtlColorEdit)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
0135デフォルトの名無しさん2008/03/22(土) 08:04:32
>>133
さあ。Vista周りの新機能の早期サポート期待したいならおとなしく2008のMFC使った方がいい。
最新のソースをSvnで追っかけてるが、ほとんどviksoe先生頼みだな。
0136デフォルトの名無しさん2008/03/22(土) 10:22:38
何かMSがWTL開発してた方が良かった気がしてきた
0137デフォルトの名無しさん2008/03/22(土) 10:27:17
WTLのsvnログ見ると2007/12/8に"Setup script for VC 9"と"ATL9.0 update"ってあるからsvn版だとOKなのかも。

でもログ見てると、あんまし活発じゃなさそうな気が…。
01381292008/03/22(土) 14:33:28
どうもWTLというよりWindowsでのプログラムについて、もっと学ばねばならないようですね。
質問ばかりで申し訳ありませんが、お助け願います。

>>132
これを参考に背景色を変更することが出来ました。
MSG_OCM_CTLCOLOREDIT(OnCtlColorEdit)でメッセージを受けて、
変更したい背景色のブラシを返すようにしました。
しかしエディットボックスをREADONLYにすると、変更出来なくなりました。
CTRCOLOREDITをCTLCOLOR_STATICにしても同じでした。
何が行けないのでしょうか?
01391292008/03/22(土) 19:53:04
自己解決しました。
CEditの継承の仕方が間違っていました…。
0140デフォルトの名無しさん2008/04/04(金) 09:41:23
error C2061: 構文エラー : 識別子 'PICONINFOEX'
ってのが出るんですが、これは一体何のエラーでしょうか。

あと、別のプロジェクトでは
fatal error RC1015: cannot open include file 'atlres.h'.
ってのが出てきて、これもコンパイルできません。
0141デフォルトの名無しさん2008/04/04(金) 10:18:25
エスパー募集じゃないなら詳しく書かないと。
0142ヽ・´∀`・,,)っ━━━━━━┓2008/04/04(金) 12:14:04
VistaのSDKのインクルードパスが入ってない落ち。




あとstdafx.hにこれ入れておけ

#define _WIN32_WINNT 0x0600
0143デフォルトの名無しさん2008/04/04(金) 20:53:33
その程度のレベルの奴がWTLを使うのか世w
0144デフォルトの名無しさん2008/04/05(土) 13:35:41
>>143 そういうおまいはどの程度のレベルなんだ?
0145デフォルトの名無しさん2008/04/05(土) 23:37:07
超スーパーハカーであったとしても人として終わってるは確実。
0146デフォルトの名無しさん2008/04/06(日) 06:40:07
>>140のエラー程度で一々質問するようじゃやっぱり駄目だろ。
0147デフォルトの名無しさん2008/04/06(日) 06:52:41
まずネタ提供にしては稚拙過ぎるからありえないとして
推論思考に先天的な欠陥を抱えているとか色々可能性があるから
全く触らないならばまだしも弄るのは良くないと思うよ。
0148デフォルトの名無しさん2008/04/06(日) 07:31:05
もう保守以外でこのライブラリは使ってやらない。
0149ヽ・´∀`・,,)っ━━━━━━┓2008/04/06(日) 12:55:39
まあ確かに、Vistaでの描画がちと怪しいな
0150デフォルトの名無しさん2008/04/06(日) 14:13:10
ダンゴさんの見識の広さには恐れ入るところがあるな
0151ヽ・´∀`・,,)っ━━━━━━┓2008/04/06(日) 17:39:27
あぼーん
0152デフォルトの名無しさん2008/04/06(日) 17:42:09
例えば、WTLのヘッダの中からCRectとかみたいな
ATLの不要なものだけコピペして使ってもいいの?
0153ヽ・´∀`・,,)っ━━━━━━┓2008/04/06(日) 17:54:54
全部使えよ
0154デフォルトの名無しさん2008/04/06(日) 18:27:43
さすがダンゴさん胴体着陸してもなんともないぜ!
0155デフォルトの名無しさん2008/04/06(日) 19:47:53
154 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
0156デフォルトの名無しさん2008/04/06(日) 20:35:46
>>152 MS-PL
0157デフォルトの名無しさん2008/04/12(土) 16:43:58
Implってなんの略ですか?
0158ヽ・´∀`・,,)っ━━━━━━┓2008/04/12(土) 17:50:07
Implementation(実装)
0159デフォルトの名無しさん2008/04/12(土) 21:13:41
implication long
二つの64ビット値をビット毎に包含演算した結果を返す
0160デフォルトの名無しさん2008/04/12(土) 23:27:03
Implementation(実装) だと思ってた。
159 すげーな
0161デフォルトの名無しさん2008/04/13(日) 13:44:55
2008EEだけ落とすとATLついてないんだけど2005もインストールしなきゃだめ?
どっかにATLだけ単体で落っこちてないかな
0162ヽ・´∀`・,,)っ━━━━━━┓2008/04/13(日) 13:53:20
2005EE入れても同じだ
たしかDDKに3.xのヘッダが付いてた。






てかStdくらいけちるなよ。
実はアップグレードでおkなので実質2万
0163デフォルトの名無しさん2008/04/13(日) 13:57:07
>>161
Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyId=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB
0164デフォルトの名無しさん2008/04/14(月) 02:04:50
VC2005EE+PSDK2003+WTL のめんどうな設定を自動でおこなうvbsスクリプト
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30239
0165デフォルトの名無しさん2008/04/17(木) 15:42:19
Windows Driver Kitには入ってないの?
0166ヽ・´∀`・,,)っ━━━━━━┓2008/04/17(木) 16:40:22
入ってる
0167デフォルトの名無しさん2008/04/17(木) 22:48:49
それよりも2008 TeamSystemやProfessionalの体験版でも入れたほうがいいかもしれない。
0168デフォルトの名無しさん2008/04/18(金) 00:07:02
>>166 >>167
ありがとう。
0169デフォルトの名無しさん2008/04/18(金) 19:59:56
atlconv.h の CA2W を使いたいんだけど,

error C3861: 'CA2W': 識別子が見つかりませんでした

って怒られる.include フォルダ見たけど,これは WTL8.0 には無いよね?
ATL7.0 以降みたいなんだけど,これはどこかで手に入るの?製品版?

Window2000
Visual C++ 2005 express edition
Microsoft Platform SDK for Windows Server 2003 R2
0170デフォルトの名無しさん2008/04/18(金) 20:06:11
なんで直前のスレの流れさえ読まないのか不思議
0171デフォルトの名無しさん2008/04/18(金) 21:23:45
ごめん,直前の話は ATL3.x だと思ってた…

Visual Studio 2005 Professional Edition 90 日間評価版

てのをちょっと入れてみます.
0172デフォルトの名無しさん2008/04/18(金) 22:05:44
>>169DDKに入っとるよ
0173デフォルトの名無しさん2008/04/19(土) 01:01:34
>>172
Windows Server 2003 SP1 DDK ダウンロードしてみたけど ATL3.0 だった (´・ω・`)

評価版まだ落ちてこない…
0174デフォルトの名無しさん2008/04/19(土) 08:19:05
>>173
内の環境では
C:\WinDDK\6001.17121\inc\crt\atl71
に入ってる
0175ヽ・´∀`・,,)っ━━━━━━┓2008/04/24(木) 19:04:04
WTLの開発2ヶ月くらい停まってるな。

Vista完全対応はあきらめるしかないのか?
0176デフォルトの名無しさん2008/04/24(木) 21:51:44
たしかViksoe氏がVS2008とvista
0177デフォルトの名無しさん2008/04/24(木) 21:53:05
途中で送信してもた・・
逝ってくる
0178デフォルトの名無しさん2008/04/25(金) 00:09:38
つか全体的にネタないよな。
本家もそうだしviksoe.dkもSoさんとこも最近は。
0179デフォルトの名無しさん2008/05/04(日) 22:56:22
質問です。CWindow::Create()で
::CreateWindow(..., CW_USEDEFAULT, CW_USEDEFAULT, w, h, ...)
と同等のことやりたい場合、RECTはどう設定すれば良いですか?

単純に{ CW_USEDEFAULT, CW_USEDEFAULT, w, h }と設定した場合、
うまく反映されないようです(非常に小さなウィンドウが出ます)
01801792008/05/04(日) 22:58:28
補足、少々言葉足らずでした。
要は幅、高さのみ指定でウィンドウ位置は
システムデフォルトにしたかっただけです。

どうかご指導いただければ幸いです。
0181ヽ・´∀`・,,)っ━━━━━━┓2008/05/04(日) 23:11:28
http://msdn.microsoft.com/ja-jp/library/kzah5bad(VS.80).aspx
0182デフォルトの名無しさん2008/05/04(日) 23:14:14
RECT rc = CWindow::rcDefault;
rc.right = rc.left + w;
rc.bottom = rc.top + h;
Create(NULL, rc);

俺はこうしてるが、正解かどうかは知らん
0183デフォルトの名無しさん2008/05/04(日) 23:19:18
ソース見ると幅と高さをright-left, bottom-topで求めてるな。
0184デフォルトの名無しさん2008/05/04(日) 23:23:02
だったら
{ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT + w, CW_USEDEFAULT + h }
にしたらいいんじゃね?
0185デフォルトの名無しさん2008/05/04(日) 23:30:42
...,CRect( rcDefault ) + CRect(0,0,w,h),...
というのは如何
01861792008/05/04(日) 23:56:48
>>184でうまくできました。
皆様ありがとうございます。
0187デフォルトの名無しさん2008/05/23(金) 03:54:44
WTLのappwizは、なんでFrameWndのスタイルに、
WS_CLIPCHILDRENを指定してないんだ?
ツールバーがちらつくじゃん。

まぁ、付ければいいんだけどさあ。
0188デフォルトの名無しさん2008/05/23(金) 06:55:21
今まで知らなくてずっとWS_EX_COMPOSIT付けてたよ・・・
0189デフォルトの名無しさん2008/05/23(金) 13:47:03
Win32のウィザードでも指定されないから、
MSの方針で、知らん奴はリサイズで点滅するアプリ作っとけって事だろうな。
0190デフォルトの名無しさん2008/05/23(金) 20:47:02
>>187
それどこのことよ
うちのはSvn最新だけど
0191デフォルトの名無しさん2008/05/23(金) 22:50:28
CFrameWindowImplに余計な指定しなければATL::CFrameWinTraitsが
適用されてWS_CLIPCHILDRENで作成されるはずだが。
0192デフォルトの名無しさん2008/06/02(月) 22:30:53
CAxDialogImpl を使って ダイアログに WebBrowser を貼り付けるといますが
表示しているHTMLにTABを押しても次のコントロールへ移動してくれません。

対応するにはどうしたらよいでしょうか?
0193デフォルトの名無しさん2008/06/03(火) 01:38:09
TAB押していったらHTMLのリンクを移動して
最後のリンクまできたら次のコントロールに移動するんじゃなかったっけ
0194デフォルトの名無しさん2008/06/06(金) 09:59:15
ATLのシンプルオブジェクトウィザードで、スレッドモデルを選択しますが、
シングルとアパートメントの違いってなんですか?
両方ともSTAですよね。
シングルはCOM初期化のプライマリスレッドでのみ実行されるとあるので、
アパートメントの方は、プライマリスレッド以外に作られるのかと思いました。
でも、両者のウィザードが生成するコードに違いが見あたりません。
FinalContruct()で、GetCurrentThreadId()を呼んで、スレッドIDを見ましたが、
両方ともプライマリスレッドのIDでした。
違いはあるんでしょうか?
0195デフォルトの名無しさん2008/06/06(金) 19:56:04
アパートメントだと、オブジェクトを作成したスレッドとは別のスレッドからメソッドを呼ぶと、
メッセージキューを利用してマーシャリングされて呼ばれる事になるが、
シングルの場合は、作成したスレッド以外からの呼び出しは不可。
ただし、アパートメントの場合マーシャリング時は引数の生存期間が変わってくるため、
それを意識した実装をしておく必要がある。

って感じでいいんだっけ?
0196ヽ・´∀`・,,)っ━━━━━━┓2008/06/06(金) 20:05:05
新MFCのRibbonとかテーマ機能がWTLで使えるようになるのはいつですか?><
0197デフォルトの名無しさん2008/06/06(金) 20:06:14
もう少し待って!
0198デフォルトの名無しさん2008/06/06(金) 20:17:07
自分で作ってパッチを送ればいいんじゃね?
0199デフォルトの名無しさん2008/06/06(金) 20:58:50
>>194-195
シングルは一番最初に作られたSTA(メインSTA)にしか属せない。
アパートメントはどのSTAにも属せる。

クラスの静的メンバのようなインスタンス間で共有されるデータに対して
排他制御が必要かどうかという違いのはず。

http://msdn.microsoft.com/en-us/library/ms681753(VS.85).aspx
02001942008/06/07(土) 22:51:46
あれかな、シングルだと、COMサーバー自信がプライマリスレッドからしか作れない、ということだろうか??
クライアントから作ることはできないのかな。
0201デフォルトの名無しさん2008/06/09(月) 17:38:30
VS2003+WTL7.5で開発していたアプリケーションを
VS2008+WTL8.0でビルドし直したら、ビジュアルスタイルが
適用されないんだけど、何が原因だろう?

埋め込まれているマニフェストを確認すると、ちゃんと
Microsoft.Windows.Common-Controlsの項目が入っているんだが。
0202ヽ・´∀`・,,)っ━━━━━━┓2008/06/09(月) 19:28:49
VS2005からだと思うが、stdafx.hのpragmaで指定するようになった。

こういうやつ

#if defined _M_IX86
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='31BF3856AD364E35' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='31BF3856AD364E35' language='*'\"")
#elif defined _M_X64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken=publicKeyToken='31BF3856AD364E35'language='*'\"")
#else
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='31BF3856AD364E35' language='*'\"")
#endif


とりあえず空でWTLプロジェクト作ってstdafx.hの該当行コピれ。
0203デフォルトの名無しさん2008/06/09(月) 19:47:30
IE8が出てくると、ATLの需要が増えるような希ガス。
まだまだ、ActiveX多いし。
0204ヽ・´∀`・,,)っ━━━━━━┓2008/06/09(月) 19:55:46
Vistaだとリバーの描画が崩れるのよね
たいがいやわ
0205デフォルトの名無しさん2008/06/09(月) 20:10:57
>>202
いや、それは自分で書いて追加してあるんだけど、駄目だった。

理由は分からないが、一応自己解決。
プロパティマネージャから「Upgrade From VC 7.1」を削除したら
何故かビジュアルスタイルが適用された。
その後、再現しようと思って古いプロジェクトファイルからもう一度
自動変換させたら、Upgrade From VC 7.1があっても適用される。
わけがわからんw

途中で一度PCを再起動したから、その影響?
Vistaだとマニフェストがキャッシュされるとかいう話があるから、
それが悪さしてたのかな?
0206デフォルトの名無しさん2008/06/16(月) 14:36:36
CCommandBarCtrlのボタンの無効化をしたいのですが、
MFCのUPDATE_COMMAND_UI
のような機能はあるのでしょうか?

EnableButtonだけではダメでした・・・
02072062008/06/16(月) 16:27:35
BEGIN_UPDATE_UI_MAPの後に
UPDATE_ELEMENT(ID_TEST, UPDUI_MENUPOPUP|UPDUI_TOOLBAR)

OnIdleで
UIEnable(ID_TEST,FALSE);

で出来ました。
0208デフォルトの名無しさん2008/06/16(月) 17:45:38
うん、それでできると思った。
0209デフォルトの名無しさん2008/06/16(月) 19:46:53
じゃあ俺もそう思った
0210デフォルトの名無しさん2008/06/17(火) 00:24:09
ツールバーのボタンをチェックスタイルにするには
どうすればできますか?

SetButtonInfoを試してみたのですが、
GetButtonInfoが失敗して撃沈。
TBUTTON系のAPIが失敗するのも妙
何でだろ・・・
02112102008/06/17(火) 17:31:18
UPDATE_ELEMENT(ID_TEST,UPDUI_MENUPOPUP | UPDUI_TOOLBAR)
を追加
UISetCheck
で変更でできました。
0212デフォルトの名無しさん2008/06/17(火) 17:47:47
うん、それでできると思った。
0213デフォルトの名無しさん2008/06/17(火) 22:20:21
じゃあ俺もそう思った
0214デフォルトの名無しさん2008/06/17(火) 22:30:44
質問はしょぼいけど、ちゃんと解決方法も書くのはえらいな
0215デフォルトの名無しさん2008/06/18(水) 02:09:41
自己解決しました^^
0216デフォルトの名無しさん2008/06/18(水) 09:22:30
↑ぐぐりまくって、おお、ようやく求めてた質問みっけた!
で、このオチだと泣けるよな。
0217デフォルトの名無しさん2008/06/19(木) 00:25:48
http://msdn.microsoft.com/ja-jp/magazine/cc534994.aspx
WTLヲワタ
0218デフォルトの名無しさん2008/06/19(木) 01:12:28
eGUI++
エグイぷらぷら?
イヤン
0219デフォルトの名無しさん2008/06/19(木) 02:43:14
流行るとは思えん。
ポータブルじゃないのに、
わざわざまったく異なる思想のコードを書きたいとは思わんし、
あと、識別子の命名がやたらに省略しててキモい。


つーか今どきstd::stringを使っていて、
しかもWindowsネイティブ限定とか、ふざけているとしか思えん。
0220ヽ・´∀`・,,)っ━━━━━━┓2008/06/19(木) 13:18:00
Viksoe先生頼みじゃ先細りだしな
ATLはともかく
0221デフォルトの名無しさん2008/06/19(木) 14:46:43
>>219
一応、こんな記述になっているようだが。

#include <string>
#ifdef UNICODE
typedef std::wstring string;
#else
typedef std::string string;
#endif
0222ヽ・´∀`・,,)っ━━━━━━┓2008/06/19(木) 18:33:19
きたねぇ実装だな。
_tstringよかマシだが
0223デフォルトの名無しさん2008/06/19(木) 19:30:00
>>221
なんじゃそりゃ。
ひでぇな。
0224デフォルトの名無しさん2008/06/19(木) 20:47:16
そんなにCStringが好きか
0225デフォルトの名無しさん2008/06/19(木) 20:56:11
std::stringの仕様が嫌いなだけだ
0226ヽ・´∀`・,,)っ━━━━━━┓2008/06/19(木) 21:11:49
ATL::CStringAとATL::CStringWは好き。
ANSIとUNICODEの変換が楽すぎる
0227デフォルトの名無しさん2008/06/19(木) 21:32:47
昔はUSES_CONVERSIONでT2CWとか書いてたんだよなあ。
テンプレートベースになって、明示的にCStringAとCStringWが使い分けられるのが最強すぎる。
0228デフォルトの名無しさん2008/06/19(木) 22:59:02
そんな便利だとは知らなかった。
VC++6時代と同じ使い方しかしてなかった。
このスレ見てて良かった。
0229デフォルトの名無しさん2008/06/19(木) 23:18:28
つーかC++なんだから、TCHARなんて使わずオーバーロードしてくれりゃいいのに
MFC/ATL/WTLって手抜きだよな
0230デフォルトの名無しさん2008/06/19(木) 23:48:00
WTLはTCHARしかないんだよなあ
CStringも他のウィンドウ関連のAPIも

たまにANSIとUNICODE両方用意して欲しいと思うことがある
0231デフォルトの名無しさん2008/06/20(金) 06:53:26
は?
0232デフォルトの名無しさん2008/06/20(金) 07:54:27
std:exceptionってUNICODEないよね
0233デフォルトの名無しさん2008/06/20(金) 08:24:23
STLの質問はSTLスレで。
eGUI++の愚痴は作者の掲示板で。
0234ヽ・´∀`・,,)っ━━━━━━┓2008/06/20(金) 08:32:40
>>230
あるじゃん。

ま、ATL::CStringのほうが便利だな。
ATLに依存しないコピー実装もCode Projectあたりにあったと思うが。
0235デフォルトの名無しさん2008/06/20(金) 08:42:05
>>232
なかったはず。おかげで例外に文字列渡すときは、いちいちW->A変換してる。
02362302008/06/21(土) 20:39:45
>>234
atlmisc.h見てみたらTCHARしか使ってないように見えたけど…
0237ヽ・´∀`・,,)っ━━━━━━┓2008/06/21(土) 22:32:00
>>236
これマジでおすすめ
http://www.codeproject.com/KB/string/stringwa.aspx
0238デフォルトの名無しさん2008/06/21(土) 22:55:47
話がずれてねーか?
メソッドなりのインタフェースが基本的にTCHARベースしかないのが
アレだって話じゃねーの

APIはCリンケージだからWとAの二つがあってマクロで切り替えだが
明示的に指定することも常に可能
WTLはC++だからオーバーロードが本当はベストだけど
TCHAR版の「一つ」しかない点でCのAPIにすら劣るよなって話
0239ヽ・´∀`・,,)っ━━━━━━┓2008/06/21(土) 23:15:26
C++の標準規格策定より遙か前に出来たMFCの命名規則をそのまま引きずってるので
多くは求めない方が良いかと
0240デフォルトの名無しさん2008/06/21(土) 23:19:13
WTLぐらいうっすぃラッパーなら徹底的にオーバーロードメソッドこしらえるよりも
必要なとこだけAPI直呼びすりゃいいんじゃねーの? でまかり通りそうだがな。
0241デフォルトの名無しさん2008/06/21(土) 23:27:57
>>239
いや、テンプレートで型パラメータ化しろって言ってんじゃないよ
「オーバーロード」だぞ?

いつからあると思ってんだよ
0242デフォルトの名無しさん2008/06/21(土) 23:36:50
TCHARで困るって、今時Win9x系に対応するつもりか?
まあMSLU使えば、それなりに何とかできるかもしれんが。
0243デフォルトの名無しさん2008/06/21(土) 23:53:01
>>242
TCHARオンリーは、TCHAR強要してるのと同じだろ
さもなくば-DUNICODE前提、とかいうソースになる

LPCSTR, LPCWSTRのオーバーライドがありゃ、CStringだろうがCStringWだろうが
CStringAだろうがstd::stringだろうがstd::wstringだろうが何でもそのまま使える
「正しい」ソースとしてだ
そしてAPIプログラミングならそれは可能だ

TCHARオンリーでちゃんとやりたきゃ、CA2Tとかそういう下らない変換テンプレートを
いつもいつも使うことになる
どっちがいいか、わかりきってるじゃないか

MSは単にMFCやATLを手抜きして、ユーザに手間を押し付けてるだけなんだよ
02442422008/06/22(日) 01:08:36
CString()で囲むのがそんなに面倒なのかね。
その一手間を惜しむが故に、文字列絡みの全メソッドにオーバーロードを付けるのか?
それこそナンセンスじゃね?
0245デフォルトの名無しさん2008/06/22(日) 01:14:57
>>244
マイクロソフト製品のユーザ数を理解しろよ
それが「製品」であることもな
それがよくデザインされていればされていれば、皆が幸せになれる

CString()で囲むだって?
手間なだけでなく、それが必要でないとき(例えば実際にはW->W変換であるような
場合)でもコンストラクタとコピーが実行されて確実に効率が落ちるじゃないか
冗談だろ
0246デフォルトの名無しさん2008/06/22(日) 02:30:23
もう自前で何とかするのに慣れっこ。
0247ヽ・´∀`・,,)っ━━━━━━┓2008/06/22(日) 07:29:52
ここで不満言ってどうする
msdnフォーラムでぼやけ。
中の人が聞いてくれるかも知れないよ



ああWTLの場合はsf.netに参加すればコミットできるか
0248デフォルトの名無しさん2008/06/22(日) 08:25:15
必然性が分からんな
0249デフォルトの名無しさん2008/06/22(日) 14:57:06
ダイアログに貼り付けたツリーコントロールに
WM_LBUTTONDOWNハンドラを追加するにはどうすればよいのでしょうか?

ダイアログにWM_LBUTTONDOWNを追加してみたのですが、
ツリーコントロールをクリックしても
ハンドラが呼ばれません。(その外だと呼ばれるのです)
0250ヽ・´∀`・,,)っ━━━━━━┓2008/06/22(日) 15:03:40
手動でやれば?
コントロールIDとイベントID入れて自前でハンドラ作成。

まさかWindowsプログラム自体はじめて?
02512492008/06/22(日) 16:03:52
NOTIFY_HANDLER(IDC_TREE1, NM_CLICK, OnNMClickTree1)
を追加

LRESULT OnNMClickTree1(int /*idCtrl*/, LPNMHDR pNMHDR, BOOL& /*bHandled*/);
でできました。
0252デフォルトの名無しさん2008/06/22(日) 16:05:25
うん、それでできると思った。
じゃあ俺もそう思った
0253デフォルトの名無しさん2008/06/22(日) 18:01:19
俺はサブクラス化だと思った
0254デフォルトの名無しさん2008/06/22(日) 18:08:41
ATLらしくCContainedWindowもあり
0255デフォルトの名無しさん2008/06/24(火) 14:59:33
MFCとWTLどっちが楽なんですか
0256デフォルトの名無しさん2008/06/24(火) 19:32:19
使ってみれば分かる
0257デフォルトの名無しさん2008/06/25(水) 09:20:37
WTLってかATLもだけど、ライブラリ化するときは割と気をつけないといけない。
内部的な仕組み理解せずにやってると、
リソースやメッセージポンプがEXEとDLLで違うとこを指したりして
おかしくなってはまったり。
MFCはそういう心配はあまりない。
0258デフォルトの名無しさん2008/06/25(水) 21:42:46
MFCが圧倒的に楽なのでは。WTLは仕事には使えないだろうし…。
0259デフォルトの名無しさん2008/06/26(木) 00:28:49
2008でMFCがだいぶ進化してる。
0260デフォルトの名無しさん2008/06/26(木) 23:34:51
で、またWinSxSにでかいDLLが追加と
0261デフォルトの名無しさん2008/07/06(日) 11:37:55
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/view12/index.html
の様に枠のないフォームを作り、class nameを入れて
別フォームではカスタムコントロールとして上記で作ったフォームを入れれば
割合簡単に独自定義のフォームが作れると思ったのですが、
class nameを設定することが出来ません。このプロパティは一体何なのでしょうか。

やりたいことはPhotoshopの様なレイヤー管理パレットを作りたいのですが……
0262デフォルトの名無しさん2008/07/07(月) 22:59:46
WTL9.0まだー?
0263デフォルトの名無しさん2008/07/08(火) 00:41:05
現状のリポジトリのバージョンでいいからとりあえず9.0版として出してほしいね
0264デフォルトの名無しさん2008/07/10(木) 21:36:38
ATL9.0まだー?
ただで配布しれ。金はびた一文出したくない
0265デフォルトの名無しさん2008/07/10(木) 23:05:23
体験版インスコしてatlmfcだけコピーしてくればいいお
0266デフォルトの名無しさん2008/07/11(金) 20:36:24
    ┌─────金・女 ────┐
    │                  .↓
 - - - - - - - - - - -裏- - - - - - - - - - - -
┌──────┐        ┌──────┐
│ アンパンマン ├─攻撃→│ バイキンマン │
└──────┘        └───┬──┘
    ↑                        │
  感謝・金                攻撃
   │                        ↓
┌─┴────────────────┐
│           市  民             ..│
└──────────────────┘
0267デフォルトの名無しさん2008/07/21(月) 22:35:47
ひさーーーーしぶりにリポジトリがちょっと更新されてるな。
でもbugfixか・・・
0268デフォルトの名無しさん2008/08/02(土) 13:14:55
WindowsXP上のVS2005でWTL8.0、ATL7.0使って
マルチスレッドSDIにしてCFileDialogなり自前でファイル選択ダイアログ表示させて
右クリックでコンテキストメニュー出したあとにダイアログ閉じると
プログラム終了するときになってヒープメモリのエラーが出るんだけれどどうすりゃいいんでしょう?
普通のSDIやMFCだと出ないし_CrtSetDbgFlagと_CrtCheckMemory使っても検出されない。
0269デフォルトの名無しさん2008/08/03(日) 06:28:43
>>268

うちは通常動作では問題はないけど、AppVerifierでBasicのテストをすると同様にヒープエラーが発生。
ただいま原因調査中。

ちなみに環境はVS2008Pro/WTL8.0ね。
0270デフォルトの名無しさん2008/08/09(土) 22:27:57
WTLとboostとResEditインスコしたけど、他にコレ入れとけってのありますか
0271デフォルトの名無しさん2008/08/10(日) 21:59:53
プロパティーシートを使っているのですが、ページからシートのメンバ変数に
アクセスするには、どうするのがWTLらしい記述になりますか?

0272デフォルトの名無しさん2008/08/11(月) 01:17:59
WTLあんま関係ないが、IPropertyPageを実装する
0273デフォルトの名無しさん2008/09/20(土) 22:20:57
Google Chrome にWTLのコードがあるらしいじゃないか。
0274デフォルトの名無しさん2008/09/20(土) 23:53:51
ATLかと思ったが
0275デフォルトの名無しさん2008/09/21(日) 10:07:41
ATLだったらオープンソースにできないじゃない
0276デフォルトの名無しさん2008/09/21(日) 18:54:22
ATLを使わないWTLってどこにあんの?
あるなら欲しいな。
0277デフォルトの名無しさん2008/09/21(日) 19:17:36
自分も欲しい。
0278デフォルトの名無しさん2008/09/21(日) 20:57:43
>>276
探せばいろいろ出てきそうではあるが一例

WTL++
ttp://code.google.com/p/wtl-plus/

WTL++ is not based on MFC, ATL or WTL.

これは一人でやってるぽい?ついさっき更新されてた
0279,,・´∀`・,,)っ-○◎●2008/09/21(日) 21:26:12
GPLwwwwww
クラステンプレートなんだからもっと緩いライセンスであるべきだろ
02802772008/09/21(日) 21:41:35
>>278
サンクスです。ライセンスがGPLなのは、団子氏の指摘通りちょっと残念だけど、
ヘッダとライブラリを読むようにすれば、VC++2005EEでもビルドできるので、
完全フリーな開発が可能という点では、オープンソースプロジェクトなんかで
結構使えるかも。
0281デフォルトの名無しさん2008/09/21(日) 22:31:12
使えねーよwwwwww
GPLうぇpおpぽあqwせdrftghyじゅきぉpwwwww
0282デフォルトの名無しさん2008/09/21(日) 23:23:07
ごめん・・・悪かった。
0283デフォルトの名無しさん2008/09/25(木) 05:41:00
>>280

そのページにはGPL3ってかいてるけど、
wtl.zipダウンロードして中をみると
wtlなヘッダ.h全てに

// This is a part of the Windows Template Library Plus.
// All rights reserved.
// The code and information is provided "as-is" without
// warranty of any kind, either expressed or implied.

ってあって、ちょっとみたかぎりでは同梱物にGPLのような
記述なさそうな気がする. GPLなライセンステキスト無いし
(ただ、うちの環境ではsetup.exe実行したらハングして
動かなかったので、そちらで何かライセンス表示されてたら
スマソ)

GPL3にして変更が追いついてないだけなのかGPL3が誤記なのか
わかんないけど
0284デフォルトの名無しさん2008/09/25(木) 07:16:33
>>283
その部分はWTLからのコピペな気がするw
というか全体的に(ry
0285デフォルトの名無しさん2008/09/25(木) 09:25:32
もし、WTLからのコピペが一部でもあれば、CPLからGPLへのリライセンスで違法な気がする…。ちょっと危ないかも。
0286デフォルトの名無しさん2008/09/25(木) 11:35:47
ttp://users.bigpond.net.au/programming/index.htm
ttp://www.beyondata.com/Index.html
ttp://www.torjo.com/win32gui/index.html
ttp://www.torjo.com/egui/

既出だっらすまん
0287デフォルトの名無しさん2008/09/25(木) 19:59:13
>>285
ATLからのコピペ改変もあるような。。。
0288デフォルトの名無しさん2008/09/26(金) 14:38:27
I am WTL++'s father
"All rights reserved." is removed from all header files
0289デフォルトの名無しさん2008/09/26(金) 18:49:41
そもそもエキスプレスにATLが入っていれば何の問題もないんだが
0290デフォルトの名無しさん2008/09/26(金) 18:50:53
そもそもエキスプレスにATLが入っていれば何の問題もないんだが
0291デフォルトの名無しさん2008/09/26(金) 18:57:08
そもそもエキスプレスにATLが入っていれば何の問題もないんだが
0292,,・´∀`・,,)っ-○◎●2008/09/26(金) 20:18:44
三度も言うほど大事なことでもないぞ
0293デフォルトの名無しさん2008/10/13(月) 20:31:56
warning C4996: '_vswprintf': This function or variable may be unsafe. Consider using vswprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 9.0\vc\include\wchar.h(773) : '_vswprintf' の宣言を確認してください。

このエラーは消えないの?
0294デフォルトの名無しさん2008/10/13(月) 20:47:14
>>293
どうしたら消えるかそこに書いてあるだろ。
0295デフォルトの名無しさん2008/10/13(月) 20:53:36
#ifndef _SECURE_ATL
#define _SECURE_ATL 1
#endif // _SECURE_ATL
0296デフォルトの名無しさん2008/10/14(火) 20:38:58
確かATL9では_SECURE_ATLは使われなくなったはず
0297デフォルトの名無しさん2008/10/14(火) 23:45:55
>>293
『_vswprintf』 : この関数または変数はおそらく安全ではないです。代わりにvswprintf_sを使うことを検討してください。この警告を無視するには、_CTR_SECURE_NO_WARNINGSを使ってください。詳細はオンラインヘルプをご覧ください。

って書いてるように見える。 _SECURE_ATLの話は関係ない話?
0298デフォルトの名無しさん2008/10/15(水) 02:26:58
>>297
問題部分のソース

#if _SECURE_ATL && !defined(_ATL_MIN_CRT) && !defined(_WIN32_WCE)
  return _vstprintf_s(lpstrBuff, cchBuff, lpstrFormat, args);
#else
  cchBuff; // Avoid unused argument warning
  return _vstprintf(lpstrBuff, lpstrFormat, args);
#endif
0299デフォルトの名無しさん2008/10/15(水) 02:37:53
いや293はwchar.hで発生してるのか。
298はatlapp.hのやつだ。
俺のとこじゃwchar.hでwarningは出ないな。
0300デフォルトの名無しさん2008/10/15(水) 02:44:42
俺のとこだとwchar.hの問題のとこは、直前に
#pragma warning(disable:4141 4996)
があるから、C4996は出ないんだが。

ひょっとして293はSP1当ててないVS2008なのかな?
0301デフォルトの名無しさん2008/10/15(水) 08:56:42
WTLのやつでしよ
0302デフォルトの名無しさん2008/10/17(金) 15:07:08
wtl使いたいけど、express editionを使っていて、sdkについているatlが使いたくないという趣味的な理由で、
wtlを使うために、atlから必要な部分だけを引っこ抜いて、
wtlも、その引っこ抜いたやつを使うように修正した場合、
1. コンパイルしたexeファイルを配布したらライセンス上アウトなのか
2. 引っこ抜いたり、修正したソースコードを配布したらライセンス上アウトなのか
3. すでにそういう行為をした時点でライセンス上アウトなのか
って、教えてもらえないですか。
手元にはatlから引っこ抜いてきたソースと、wtlをそれを使えるよう修正にしたソースと、
それをコンパイルしたexeがあるという仮定です。
大変な作業だけど。
0303デフォルトの名無しさん2008/10/17(金) 15:19:52
WTL自体の修正はソース開示義務が発生するのでは?
ATLはライセンス違反になりそう。
0304デフォルトの名無しさん2008/10/17(金) 19:47:15
それで問題にならないのなら誰も苦労してないって
0305デフォルトの名無しさん2008/10/17(金) 23:56:15
Ms-PLだと変更の公開義務は無いよ。
0306デフォルトの名無しさん2008/10/18(土) 15:57:30
ATL依存箇所を、ソース見ずに一から作り直せば良いんかな。CWindowImplとか…。
ちなみに、ATL3時代のCSimpleArrayやCSimpleMapは結構好きだったんだけど、
msvcpxx.dll非依存で代替になるオープンソースのクラスってなんかあんだろか?
0307デフォルトの名無しさん2008/10/18(土) 18:30:02
STL
0308デフォルトの名無しさん2008/10/18(土) 19:23:33
>307
STLとは相性が悪かった記憶が…
0309デフォルトの名無しさん2008/10/18(土) 20:07:42
stlベースにライブラリ作るとかありえないわ
気持ち悪すぎて
03103062008/10/18(土) 20:58:18
VCでSTL使うと、msvcpxx.dll依存になってしまうんで…。
実際に使うのって、vectorとmapくらいだし、iteratorの仕組みも
個人的にはあまり好きになれないんで…。
0311デフォルトの名無しさん2008/10/18(土) 21:08:15
依存になっちまうのは、お前がそう設定しているからだろ
静的リンクしろ
0312デフォルトの名無しさん2008/10/18(土) 21:41:03
STLがダサイのは同意
0313デフォルトの名無しさん2008/10/18(土) 21:49:47
STL=くさっとる
WTL=おわっとる
ATL=にあっとる
0314デフォルトの名無しさん2008/10/18(土) 21:49:55
std::cout << "そんなことないよ。" << std::endl



     *      *
  *  ウソです  +
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0315デフォルトの名無しさん2008/10/18(土) 22:21:28
STL使いまくりの自分は異端なんかね。
algorithm, functionalを中心にすべて必須だわ。
0316デフォルトの名無しさん2008/10/18(土) 22:27:08
むしろ設計が異端
0317デフォルトの名無しさん2008/10/18(土) 22:32:00
このスレ的には>>315は異端。
一般的にはこのスレが異端。
0318デフォルトの名無しさん2008/10/18(土) 22:40:08
そうは言うけどMFCってSTLより古いんだぜ
それと基本仕様を共有するATLはイケてるんじゃね?
0319デフォルトの名無しさん2008/10/18(土) 23:02:30
>>314
iostreamはどちらかというとSTL関係ない。
0320デフォルトの名無しさん2008/10/18(土) 23:14:00
勝手にスレの総意にするなよw
STL無しなんてありえんわ
0321,,・´∀`・,,)っ-○◎●2008/10/18(土) 23:29:44
C++ライブラリのiostreamじゃない部分は全てSTLだと思ってるんだが
vector<bool>を特殊扱いしてるのは言語処理系としての機能だっけ?
0322デフォルトの名無しさん2008/10/18(土) 23:55:34
STLはオブジェクト指向的にアリエナイ
0323,,・´∀`・,,)っ-○◎●2008/10/18(土) 23:58:00
C++はマルチパラダイム言語だから。

オブジェクト指向を追求したCの派生言語はあくまでObjective-C
0324デフォルトの名無しさん2008/10/19(日) 00:00:12
>>321
いや、言語規格として要求している。
そんなvector<bool>もコンテナの要件を満たしてイテレータが使えるんだからSTLの一部と言って差し支えないと思う。

>>323後半
あるいはJavaも
0325デフォルトの名無しさん2008/10/19(日) 00:02:49
stringはSTLじゃないよね
0326デフォルトの名無しさん2008/10/19(日) 00:22:57
コンテナに入らないスマートポインタが平然と放置されてたり
0327デフォルトの名無しさん2008/10/19(日) 00:24:44
でもCComPtrとCComQIPtrは入れられるよね?
0328デフォルトの名無しさん2008/10/19(日) 01:17:43
fun^10×int^40=Ir2
0329デフォルトの名無しさん2008/10/19(日) 07:43:47
auto_ptrはたまにreleaseが必要な時に使う
0330デフォルトの名無しさん2008/10/20(月) 15:29:00
>>302
2だけがだめだろう
1はどうでもいいし、3などモラルの問題
てか、みんなやっとる
0331デフォルトの名無しさん2008/10/20(月) 15:53:12
>>330
MS-PLだから、2もOKなんですね
0332デフォルトの名無しさん2008/10/20(月) 15:54:51
ATLもMS-PL?
0333,,・´∀`・,,)っ-●◎○2008/10/21(火) 03:20:17
だからStandardの3万くらい払え
0334デフォルトの名無しさん2008/10/22(水) 19:59:46
Upgでいいんだから、19800円
0335デフォルトの名無しさん2008/10/22(水) 21:51:01
いやだ、ソフトに金を払うという行為自体が気に食わない
0336デフォルトの名無しさん2008/10/22(水) 22:04:45
犬糞でもつかってろ
0337デフォルトの名無しさん2008/11/03(月) 09:27:37
wtl8.0でwin98サポートさせたいんだけど
サクッっと変えられちゃうフラグあります?
0338デフォルトの名無しさん2008/11/09(日) 02:25:53
Microsoft Windows Server 2003 R2 Platform SDK
落としてATL3.0ヘッダを探したけど、
atlwin.hとかatlctrls.hとかがどこにもない。
atlbase.hはあるけど・・・どこにあるの?
0339デフォルトの名無しさん2008/11/09(日) 08:25:55
SDKに入っているわけないだろw
DDKの方にあるんだよ
0340デフォルトの名無しさん2008/11/09(日) 14:17:57
>>339
ごめんsrcフォルダばっか見てた・・・。
Includeフォルダインスコしてみたら、あったわ。
0341デフォルトの名無しさん2008/11/09(日) 16:09:34
>>337
windows.hやatl,wtlのヘッダ読み込む前に
(コマンドラインで-Dするのもヘッダで#defineするのでも)
#define WINVER       0x0400
#define _WIN32_WINNT   0x0400
等のバージョン・マクロを定義して
win98にもある機能の範囲で使って作ってる分には動いたよ。
(どんなバージョンマクロがどれくらいあるのかは知らない)

wtl8.0よりむしろ、コンパイラ(ライブラリ、ランタイム)でwin98用の
exe作れるかが問題で、vs2003は大丈夫だったけど
vs2008はダメかも (少なくともスタンダードではダメだった)
0342デフォルトの名無しさん2008/11/09(日) 20:15:02
_WIN32_WINDOWS
_WIN32_IE
も設定してみたら?
0343デフォルトの名無しさん2008/11/11(火) 19:43:55
WTLなんとかしてVS2008ProfessionalEditionで使えるようになりませんか?
0344デフォルトの名無しさん2008/11/11(火) 20:00:25
なる
0345,,・´∀`・,,)っ-●◎○2008/11/11(火) 23:16:02
普通に使える。
AppWizardなら2005用のスクリプトを数行書き換えるだけでそのままインスコ
0346デフォルトの名無しさん2008/11/18(火) 20:59:47
あーWTLインスコに半日近くかかってしまった(´・д・`)
ディレクトリ設定がどこにあるのかわからんでvsvars32.batとインスコスクリプトをずっと弄ってたという
0347デフォルトの名無しさん2008/11/20(木) 13:16:07
VC2008 から ATL がWindows98でサポートされなくなった・・・
なんでだよおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

「うにこーどで全部書けて素敵ね☆」
じゃねええええええええええ!!!!!!!!!!!!
0348デフォルトの名無しさん2008/11/20(木) 13:20:25
ATL関係なく、VC2008自体がWindows 98で動くコードを出力できない。
0349デフォルトの名無しさん2008/11/20(木) 13:37:53
VC2008の出力する実行ファイルに特に特殊な点は無いし
普通にWindows98で動きそうだが
ランタイムライブラリなどは修正する必要があるかもしれないが
0350デフォルトの名無しさん2008/11/20(木) 14:00:20
>>349
リンカの/SUBSYSTEMでの最低バージョンの省略時の値が5.0になっていて、
しかも5.0未満の値を指定するとエラーになる。
そのため、4.1であるWindows 98では実行できないというわけ。
0351デフォルトの名無しさん2008/11/20(木) 14:02:07
VC2008 のコンパイラが勝手に埋め込んでるバージョンチェック処理って
マクロとかでつぶせないもんかね
あのメッセージさえ回避できれば動きそうじゃね?
M$のマーケティングかも知れないけど。
0352デフォルトの名無しさん2008/11/20(木) 14:11:50
バイナリエディタでそこを書き換えてみたが、たしか別のエラー吐いて駄目だった。
めんどくさくなって、それ以上原因追究しなかったけどさ。
0353デフォルトの名無しさん2008/11/20(木) 14:16:04
CRTをスタティックリンクしたところで
CRT自体が9x系サポートしてねえんじゃねえの

そこまでして2008に9x系向けのコードを吐かせたい理由がわからんが
MS自体が既にサポートしてねえOSなのに
0354デフォルトの名無しさん2008/11/20(木) 14:34:13
サポート終わっても意外と98ユーザいるじゃねーか
(開発としてはマジ迷惑な話だが)
98SEとかMeとかのユーザ向けにはVS2008はアウトか。

Meはさすがにいねーかww
0355,,・´∀`・,,)っ-○◎●2008/11/20(木) 22:40:38
MSDN会員ならダウングレード権があるから6.0でも使えよ
でも.NET 2002は黒歴史な。Intelコンパイラも放置してる失敗作。パネェ
0356デフォルトの名無しさん2008/11/22(土) 19:20:37
俺はずっとパネェ黒歴史を使ってきてたのか・・・or2
0357デフォルトの名無しさん2008/11/22(土) 23:04:15
本当は 2003 相当のものを出したかったんだろうが、
あまりにも間が空きすぎるのを避けて、
無理に 2002 に出したんだろうなあって感じの代物。
C++ 規格準拠率低いし。
0358デフォルトの名無しさん2008/11/23(日) 19:00:31
Vistaに似てるな
0359デフォルトの名無しさん2008/12/02(火) 14:34:23
>>355
2003でWTL使ってる漏れは勝ち組
0360,,・´∀`・,,)っ-●◎○2008/12/03(水) 00:04:19
.NET 2003は/G6 /G7とかの最適化オプションがあった最後のバージョン
0361デフォルトの名無しさん2008/12/03(水) 01:10:49
/Oa /Owもね!
0362デフォルトの名無しさん2008/12/03(水) 02:06:04
ATL3.0で
GetCurrentMessage()用のm_pCurrentMsgはどこで更新されてるの?
ソース見るけどどこにもない
0363デフォルトの名無しさん2008/12/03(水) 03:10:05
あとサンクをHeapAllocなりVirtualAllocで動的確保してるのはなぜ?
インスタンスが増えるだけメモリ使用量増えるから?
0364デフォルトの名無しさん2008/12/03(水) 11:52:59
>>362
CWindowImplBaseT< TBase, TWinTraits >::WindowProc
>>363
DEP対策
0365デフォルトの名無しさん2008/12/03(水) 18:10:42
>>364
つまりProcessWindowMessage内でしか有効でないわけですね?

>DEP対策
それはHeapAllocからVirtualAllocへの置き換えでしょ
_stdcallthunkを静的ではなく動的にAllocしてるのは何故かなってことです
0366デフォルトの名無しさん2008/12/03(水) 19:03:33
>>365
ウィンドウのインスタンスがどこに置かれてもいいようにじゃないの?
DEP以前でも、実行不可領域にインスタンス作られる可能性はあるし。
0367デフォルトの名無しさん2008/12/03(水) 20:08:37
>>365
サンクはウィンドウごとに作らないといけないため。
サンクにはそれぞれthisが刻み込まれていて、他のウィンドウには使いまわせない。
0368デフォルトの名無しさん2008/12/04(木) 02:18:45
>>366
なるほど。
このトリッキーさ(マシン語埋め込み)はまた将来的にDEPみたいな問題が起こることはないですかね
このサンクの部分をC++だけで実現できないものかな

>>367
いやそれはクラスのメンバであれば関係ないでしょ
0369デフォルトの名無しさん2008/12/05(金) 06:12:12
>368
>このサンクの部分をC++だけで実現できないものかな
無理。

>いやそれはクラスのメンバであれば関係ないでしょ
意味不明。
0370デフォルトの名無しさん2008/12/05(金) 10:31:59
>>369
> >いやそれはクラスのメンバであれば関係ないでしょ
> 意味不明。

ウィンドウクラスは何故_stdcallthunkを直接メンバにせず
_stdcallthunkを動的に作成するCDynamicStdCallThunkをメンバにしているのか
ってことだと思う。
0371デフォルトの名無しさん2008/12/08(月) 22:12:17
少なくともATL3.0では、メンバに
CWndProcThunkを直接持ってたヨ
0372デフォルトの名無しさん2008/12/08(月) 22:58:35
dep!
0373デフォルトの名無しさん2008/12/09(火) 00:23:09
>>371
CWndProcThunkは関係ないヨ
_stdcallthunkの話でしょ
0374デフォルトの名無しさん2008/12/09(火) 01:35:05
メンバとして直接もってたATL3.0(CWndProcThunk._WndProcThunk
がコード領域)がDEPに見事に引っかかるから、dyncamicに
持つようにしたんでそ
0375デフォルトの名無しさん2008/12/09(火) 02:10:49
3ループ目突入か・・・
0376デフォルトの名無しさん2008/12/09(火) 02:23:19
あえてループにつっこむ
>>374
DEP関係はHeapAlloc→VirtualAllocなんだって
0377デフォルトの名無しさん2008/12/13(土) 11:48:28
1ヶ月ぶりに見に来てみましたよっと サンクの件でループとな
サンクで一度はアタマこんがらがるのは、俺だけでいい。とか思ってたが
そうでもなかったようだ
0378デフォルトの名無しさん2008/12/13(土) 13:28:08
誰かまとめてくれよ。馬鹿にはついていけん。
0379デフォルトの名無しさん2008/12/16(火) 00:19:30
基本的に馬鹿な質問ですが教えてください。
(クラスの)代替メッセージマップって意味あるの?
どのようなときに使うのですか?
継承の利点が生かせてないような・・・?
0380デフォルトの名無しさん2008/12/16(火) 00:29:29
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/message04/index.html

ま、多用する代物じゃねーわな
0381デフォルトの名無しさん2008/12/16(火) 00:48:46
>>380
そうですか。どうもです。
なんかそこのリンク先解説や、MSDNの解説などを見ていても
あえてCHAIN_MSG_MAP_ALTを使う利点が曖昧だなーっと思っていたので・・・
0382デフォルトの名無しさん2008/12/16(火) 21:00:43
> CHAIN_MSG_MAP_ALT
WTLのコントロールで使われてるような使い方をすると思う
0383,,・´∀`・,,)っ-●◎○2008/12/17(水) 01:24:12
テンプレートの縛りの中でポリモーフィズムもどきを実現するために必要
0384デフォルトの名無しさん2009/01/04(日) 00:52:03
CMDIFrameWindowImplをメインウィンドウにしているときに子ウィンドウを最大化すると
メインウィンドウのタイトルに " - [子ウィンドウのタイトル]" が自動的につくようですが、
これをやめさせるにはどうしたらいいんでしょうか?
0385デフォルトの名無しさん2009/01/07(水) 18:53:30
Windowの上にDialogを表示したくて
SetWindowPosを使ったのですが、
すぐにWindowの下にDialogが行ってしまいます。
WTL内部でZオーダーを自動更新しているのかな?
0386デフォルトの名無しさん2009/01/07(水) 19:15:01
んなわけないと思うが
0387デフォルトの名無しさん2009/01/07(水) 19:20:15
>>385
そのウインドウをオーナーにしたらまずいの?
0388デフォルトの名無しさん2009/01/07(水) 21:58:35
Dialog::Createへ渡すハンドルを
Viewから
MainFrame
に変更したらうまくいきました。
0389デフォルトの名無しさん2009/01/14(水) 00:03:57
ドッキングウィンドウ実現するのって結構難しいんだな・・
実装に苦戦中
0390デフォルトの名無しさん2009/01/14(水) 00:13:14
viksoe氏の作りかけ版を参考にすればいいと思う
0391デフォルトの名無しさん2009/01/14(水) 18:58:48
WTL使ってまともに完成したソフトってあるの?
0392デフォルトの名無しさん2009/01/14(水) 19:05:30
その質問に何の意味があるのか
0393デフォルトの名無しさん2009/01/14(水) 19:17:24
どのくらい使われてるのか知りたい
0394デフォルトの名無しさん2009/01/14(水) 19:25:41
Donut
0395デフォルトの名無しさん2009/01/14(水) 20:09:51
忘れたけどどこかの商用ソフトも使ってた
0396デフォルトの名無しさん2009/01/14(水) 21:34:55
Windows Movie Makerとかもそうじゃなかったっけ。
あと、VMWareの画面がWTLっぽかった気がする。
(ウィンドウクラス名がそれっぽかった)
0397デフォルトの名無しさん2009/01/15(木) 20:56:31
WTL8+VC2008EEのAppWizardで作ったSDI+リストビューのリストの表示が
オーナーデータにしてもすげーレスポンス悪いんだけど何故かさっぱりわからねぇ
サンプルのWTLExplorerをビルドしたリスト部分はサクサクなのに

と思って弄ってたら
SetFont(AtlGetDefaultGuiFont());
これが原因だった
DEFAULT_GUI_FONTってデザインのどこのフォントだっけ?
0398デフォルトの名無しさん2009/01/15(木) 22:42:56
どれにも該当しない盲腸。
0399デフォルトの名無しさん2009/01/16(金) 21:01:13
Google Chrome にもWTLの一部が。
Chromeが使用してるライブラリの一覧にちゃんとWTLも書かれてる。
http://code.google.com/intl/ja/chromium/terms.html
0400デフォルトの名無しさん2009/01/17(土) 20:52:55
400
0401デフォルトの名無しさん2009/01/18(日) 11:28:42
>>399
何を今更
他プラットフォームに移植するの場合の盲腸だから
もうすぐGTKに取って代わられるって言うのに
0402,,・´∀`・,,)っ-●◎○2009/01/18(日) 11:30:40
GTK?w
Windowsでの安定動作は絶望的だなオイ

まだQtのほうがわかる
ってKonquerorやんけ。
0403デフォルトの名無しさん2009/01/18(日) 13:53:04
むしろGoogleがWTLを他プラットフォームに移植してくれ!w
0404デフォルトの名無しさん2009/01/18(日) 14:22:46
アホの子のスレか
0405,,・´∀`・,,)っ-○◎●2009/01/18(日) 15:51:18
GoogleがGIMP for Win32を安定化してくれるんならそれはそれで歓迎したい。

現実にはこうじゃねーの?

Win32: WTL
Linuxその他: GTK
MacOS: Cocoa or Carbon

流石にGTKオンリーは無いと思うよ。
MacOSネイティブの(X11を介さない)GTKって無いからその時点で導入の敷居が高くなっちゃう。

Chromeはシンプルで取っつきやすいUIによってFirefoxとの差別化をはかってるのに
たとえOSXのディスクに入ってるオプションであるにしても、標準でインストールされないX11を
わざわざインストールさせる手間を煩わせたら元も子もない。
とりあえずマカーでごめんなさい。


>>403
俺がWTLで作ったアプリもWineでそこそこ動いてるらしいんで(画面の再描画周りが多少怪しいが)
いっそWineベースでいいんじゃないかなと思ってる。
0406,,・´∀`・,,)っ-○◎●2009/01/18(日) 15:53:31
大ボケしてた。
MacOS XネイティブのGTKって既にあったんだね。
http://journal.mycom.co.jp/news/2008/09/26/009/
0407デフォルトの名無しさん2009/01/18(日) 16:36:24
akatsukiさんの記事(ATL/WTL 2)が追加されているのに今気付いた…orz。
XmlLiteとかも面白そうだしちょっと試してみるべ。
http://home.att.ne.jp/banana/akatsuki/top/main.html
0408デフォルトの名無しさん2009/01/21(水) 13:23:23
そこなんで1と2で分かれてるの
ほとんど内容一緒なんだからページを1つにして
注釈でこのバージョンではこう、ってやってくれたほうが・・・
そのほうが作りやすかったろうに1から作り直してるね
0409デフォルトの名無しさん2009/01/21(水) 13:30:32
VC6.0版と、.NET以降のIDE+AppWizardに合わせた版だろ
書籍の改訂と同じ感覚だな。
逆に、プロだなと思った。
0410デフォルトの名無しさん2009/01/21(水) 16:40:49
プログラマ的にはVCS上でブランチ切ったりする感覚
0411デフォルトの名無しさん2009/01/21(水) 17:36:21
>>408
漏れは今の方がすっきりしてて好きだわ
今と昔の違いを知る必要がなければ,新規は2版見ればいいし,
昔通りやりたければ1版見るだけでいいし
0412デフォルトの名無しさん2009/01/21(水) 19:54:42
各バージョンの変更点まで2つに分けてあるのはご愛嬌?

ところでWTLで、ATLのNotifyHandlerのidCtrl引数が消えてるのは
>This identifier is not guaranteed to be unique. by MSDN
のため?
0413デフォルトの名無しさん2009/01/26(月) 14:34:58
リストビューのちらつきが気になるのでCDoubleBufferWindowImplを基底クラスに指定しましたが改善されません。
何とかならないでしょうか・・・
0414デフォルトの名無しさん2009/01/26(月) 19:20:24
最後の手段だが
WS_EX_COMPOSITED
0415デフォルトの名無しさん2009/01/28(水) 07:45:34
T *pT = static_cast<T*>(this);
pT->メンバ関数;
↑これよくみるけどなんですか?普通に
メンバ関数;
だめなの?
0416デフォルトの名無しさん2009/01/28(水) 09:02:19
だめ。仮想関数のオーバーヘッドを排除するためだし。
0417デフォルトの名無しさん2009/01/28(水) 10:30:47
単純に親クラスのメンバにアクセスしても
オーバーヘッドが起こるの?
0418デフォルトの名無しさん2009/01/28(水) 10:51:55
何言ってるのか分からないけど、仮想関数を使わず派生クラスのメンバ関数呼んで貰う為のものだから。
0419デフォルトの名無しさん2009/01/28(水) 12:32:01
たとえばCFrameWindowImplのUpdateLayoutなんかもこのやり方ですよね。(WTL7.5)
これも仮想関数対策?
0420デフォルトの名無しさん2009/01/28(水) 17:10:40
>>415
キャストする前のthisのクラスには、そのメンバ関数が存在しない。要するにこんな感じ。
class Foo {
void f() {
static_cast<Bar*>(this)->g();
}
};
class Bar : Foo {
void g() {}
};
Bar b;
b.f();
0421デフォルトの名無しさん2009/01/28(水) 19:21:24
>>419
そのままだと基底クラスから派生クラスのメソッドは呼べねぇんだよ
0422デフォルトの名無しさん2009/01/28(水) 19:48:04
まあ汚いコードではある。
0423デフォルトの名無しさん2009/01/28(水) 20:05:20
しかし、CRTPという名前が付く程度には知られている。
0424デフォルトの名無しさん2009/01/28(水) 21:29:10
みなさんありがとう。>>416 >>418 >>420 >>421 >>422 >>423
仮想関数の代わりが出来るというのが理解できました
例えばCFrameWindowImpl::OnSizeのUpdateLayoutや
CFrameWindowImpl::CreateExのCreateなどなどは
自作の派生クラス(例えばMyWindow)でオーバーライド可能→
基底クラスCFrameWindowImplから派生クラスMyWindowのUpdateLayoutメソッドが呼べる
てことですね?でこれがCRTP
0425デフォルトの名無しさん2009/01/28(水) 21:37:21
少し違う。
CFrameWindowImpl 自体は UpdateLayout などを持たない。
だからオーバーライドではない。
UpdateLayout が定義されていれば OnSize が呼べるし、
UpdateLayout が定義されていなければ OnSize が呼べない。
0426デフォルトの名無しさん2009/01/28(水) 21:50:43
>>425
続いてありがとうございます。ということは
1.CFrameWindowImplBase::UpdateLayoutを
2.オーバーライドしたMyWindow::UpdateLayoutを
3.CFrameWindowImpl::OnSize内にて(自動で)呼び出せる機能
って解釈が正しい?
常にCFrameWindowImplBase::UpdateLayout使うだけならCRTPはイラナイと思うし・・・
0427デフォルトの名無しさん2009/01/28(水) 22:31:22
http://ja.wikibooks.org/wiki/More_C%2B%2B_Idioms/奇妙に再帰したテンプレートパターン(Curiously_Recurring_Template_Pattern)
0428デフォルトの名無しさん2009/01/30(金) 02:12:47
CRTPを使って実現したい事は、仮想関数による多相とほぼ同じ。
違うのはCRTPが静的に(コンパイル時に)解決されるため
子クラスの型、内部型を扱える事。
その帰結として子クラスの関数呼び出しに仮想関数呼び出しの
オーバーヘッドが掛からない利点がある。
欠点は当然ながら動的な(実行時の)多相性を得られない事だ。
0429デフォルトの名無しさん2009/01/30(金) 18:47:08
>>427
ttp://ja.wikibooks.org/wiki/More_C%2B%2B_Idioms/%E5%A5%87%E5%A6%99%E3%81%AB%E5%86%8D%E5%B8%B0%E3%81%97%E3%81%9F%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%28Curiously_Recurring_Template_Pattern%29
なが
0430デフォルトの名無しさん2009/02/06(金) 18:40:16
CButtonTとかCStaticTとかに指定するTBaseはCWindow以外にありえるんですか?
0431デフォルトの名無しさん2009/02/06(金) 19:02:15
自作
0432デフォルトの名無しさん2009/02/11(水) 00:42:32
>430
CWindowの派生クラス。
CButtonTとかでオーバーライドしてる挙動は変えずに
カスタムしたい場合に使ったり。
0433デフォルトの名無しさん2009/03/02(月) 11:33:49
VS2005で、CA2WやCA2CTなどはコンパイル通るのに、
CA2CWやCW2CAだと「識別子が見つかりませんでした」と言われるんですけど、
なにか別途インクルードするものでもありますか?
0434デフォルトの名無しさん2009/03/12(木) 11:22:23
AppWizardは入るけど、WTLHelperは2008では動かんのう。。。
0435デフォルトの名無しさん2009/03/12(木) 23:29:28
viksoe
0436デフォルトの名無しさん2009/04/05(日) 23:03:28
こやつめw
0437デフォルトの名無しさん2009/04/05(日) 23:37:30
なるほど
0438デフォルトの名無しさん2009/04/21(火) 21:18:25
so-soさんがモバイルコーナー始めてるよ
みんな見てる?
0439デフォルトの名無しさん2009/04/21(火) 21:42:51
WinMoでも使えるのか
機会があれば使ってみたいなぁ
0440デフォルトの名無しさん2009/04/22(水) 07:39:17
うぃんもとか変な略し方するんじゃねえ
0441デフォルトの名無しさん2009/04/22(水) 08:18:49
>>440

俺は439じゃないが、海外だとWinMoって略す事が多いんだよ。

ついでなので。

WindowsMobile でも普通に使える。
実際WTLで作って、アプリをリリースしたし。
0442デフォルトの名無しさん2009/04/23(木) 01:06:42
WTL って、サポートされていないライブラリってだけで、
商用で使ってもかなり満足できる性能・機能なのに、
なかなか国内では率先して使ってる企業ないよな。
ATL はそこそこ知ってる奴いるけど、WTL って何?ばかり。
0443デフォルトの名無しさん2009/04/23(木) 07:55:23
そうですね
0444デフォルトの名無しさん2009/04/23(木) 12:21:09
WTL使ってるてどうやったら確かめられるの?
MFCはDLL読むからわかるけど。
0445デフォルトの名無しさん2009/04/23(木) 18:55:21
そうですね
0446デフォルトの名無しさん2009/04/24(金) 23:17:28
まともに日本語化されたドキュメントが存在しない時点で終わってる気がする

0447デフォルトの名無しさん2009/04/24(金) 23:24:52
ソース解読汁
0448デフォルトの名無しさん2009/04/25(土) 23:52:22
WTL使おうにもexpressにATLがないのが致命的
0449 ◆0uxK91AxII 2009/04/25(土) 23:57:06
>>448
WTL80/readme.htm
0450デフォルトの名無しさん2009/05/05(火) 16:52:15
ちょっと質問です。
frame と view の切り分けってどうしてる?
view が超便利なのは、リソースの Dialog をそのまま拾えて、
さらに frame が使用する view を切り替えて1つのフレームで
複数のウィンドウを作れるところが魅力だけど、
view の上に TAB を置いたり、view で切り替えたくない固定の
コントロールを frame 上におきたい場合、どういう考え方で重ねてる?

frame の上に frame 、さらにその上に frame で view を乗せる、見たいにできるのか、
frame の上に複数の view を重ねたり並べたりするのが常套手段なのか、
メッセージの伝播をどうやるのかが分からなくて、暗礁に乗り上げています。

普通はこうやる、的なアドバイスをください。
駄文ですいません。
0451デフォルトの名無しさん2009/05/05(火) 21:14:22
>>450
普通はどうやるかは知らないけど、frameの上のメインのviewに、複数の子viewを重ねたり並べたりしてます。
04524502009/05/06(水) 09:31:50
>>451
なるほど、view は重ねて処理できるのか。
ちなみに、メッセージの受け渡しはどのようにやってますか?
frame→view のように PreTrancelateMessage を実装してもうまく動かないので、
なにかテクニックがあるかと思うのですが、どのようにやればいいんでしょうか。
0453デフォルトの名無しさん2009/05/07(木) 21:46:39
>>452
メッセージの受け渡しは、viewの親子関係でツリー状にやってます。
PreTrancelateMessageは、親viewのクラスのから子viewのクラスのを呼び出すようになってます。
複雑なメッセージ処理はしてないので、役に立たなかったらスマソ

0454デフォルトの名無しさん2009/05/09(土) 20:49:31
WTL 8.1.9127
http://sourceforge.net/project/showfiles.php?group_id=109071&package_id=321560
0455デフォルトの名無しさん2009/05/09(土) 21:51:47
バージョン番号変えただけ・・・?
0456デフォルトの名無しさん2009/05/09(土) 22:28:54
http://www.egrath.net/blog/archives/2009/05/wtl-81-wtl-8191.html
0457デフォルトの名無しさん2009/05/09(土) 23:27:21
Changes:
- changed version number
- updated CPL link in headers
- fixed warning for _vstprintf
- added wizard setup programs for VS2008
0458デフォルトの名無しさん2009/05/10(日) 09:54:17
- added wizard setup programs for VS2008

遅すぎるわw
0459デフォルトの名無しさん2009/05/10(日) 21:34:55
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/appendixc19/index.html
いっしょうけんめい載せてくれてる
0460デフォルトの名無しさん2009/05/12(火) 00:23:39

CScrollWindowImplさんはどうやってスクロールバーを表示させてるのでしょうか
WS_VSCROLLとか見当たらないですが
0461デフォルトの名無しさん2009/05/12(火) 03:11:11
スタイルについてなくても
SetScrollInfo(SB_HORZ, ...
とかやれば表示される
0462デフォルトの名無しさん2009/05/12(火) 22:44:50
>>461
そうなんだ!!
若干スレ違いでしたねアリガトウ
0463デフォルトの名無しさん2009/05/17(日) 22:03:05
ちょっと細かいとこなんだけど、たまたま使ってて見てみたら
CCustomWaitCursorって親でLoadCursorして子でLoadImageしてるけどいいの?
0464デフォルトの名無しさん2009/05/27(水) 21:11:33
VS2003にてATLコントロールを作成してるんですが、
メソッド追加ウィザードのパラメータの属性のoutとretvalが無効になっていて
指定出来ない理由が全くわかりません。

どなたか教えてください。
0465デフォルトの名無しさん2009/05/31(日) 00:52:50
>>463
システムカーソルをロードしてるだけだから問題ないと思う
0466デフォルトの名無しさん2009/05/31(日) 17:34:03
>>465
どうもありがとう
0467デフォルトの名無しさん2009/06/14(日) 23:58:47
クラス名 + T
クラス名 + Impl
この命名規則もしくは意味を誰か詳しい方教えてください・・・・
0468デフォルトの名無しさん2009/06/15(月) 06:24:14
template implement
0469デフォルトの名無しさん2009/06/23(火) 07:17:05
CFrameWindowImplを継承したクラスで、メンバーにスプリッタウィンドウを入れ、OnCreate()内で
m_hWndClient = m_splitter.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
m_splitter.SetSplitterExtendStyle(SPLIT_RIGHTALIGNED);
m_splitter.SetSplitterPosPct(75);
としてみたところ、ウィンドウ枠をドラッグしてサイズを変更した際に左ペインのサイズが突然最小になってしまいました。
何か対処法はありませんか?
0470デフォルトの名無しさん2009/06/23(火) 23:57:23
UpdateLayoutをしないといけません
04714692009/06/24(水) 14:34:08
UpdateLayoutを実行しましたがうまくいきませんでした。ただ、スプリッタウィンドウの初期位置が適当な値になれば良かったので、GetClientRect()を使ってクライアント領域サイズを取得し、SetSplitterPos()で設定することにしました。
0472デフォルトの名無しさん2009/06/24(水) 22:10:09
むう、m_hWndClient に代入した後でUpdateLayoutすれば上手くいきそうな気がするけどなあ
0473デフォルトの名無しさん2009/06/25(木) 07:36:51
他の場所に問題があるんだろう
0474デフォルトの名無しさん2009/06/25(木) 07:43:30
ペインがスプリッタの子ウィンドウになっていないとか
0475デフォルトの名無しさん2009/06/25(木) 09:06:41
UpdateLayout()を*呼んでから*SetSplitterPos()呼んでないんじゃね?
0476デフォルトの名無しさん2009/06/25(木) 09:40:15
もっと!もっと!
0477デフォルトの名無しさん2009/07/04(土) 07:04:23
WTL環境作り段階のものです
VSC++ 9.0、WTL81_9127(setup90x)、Microsoft Windows Server 2003 R2 Platform SDK、
WDK SP1 for Windows Server 2008(6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso)
をインスコしインクルード&ファイルパスへの関連付けもしました。いろんな場所を見てstdafx.hをいじったりしましたがお手上げです。
1>stdafx.obj : error LNK2001: 外部シンボル "__forceAtlDllManifest" は未解決です。
1>ok.obj : error LNK2001: 外部シンボル "__forceAtlDllManifest" は未解決です。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlCallTermFunc@4 が関数 "public: void __thiscall ATL::CAtlModule::Term(void)" (?Term@CAtlModule@ATL@@QAEXXZ) で参照されました。
0478デフォルトの名無しさん2009/07/04(土) 07:05:28
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlWinModuleAddCreateWndData@12 が関数 "public: void __thiscall ATL::CAtlWinModule::AddCreateWndData
(struct ATL::_AtlCreateWndData *,void *)" (?AddCreateWndData@CAtlWinModule@ATL@@QAEXPAU_AtlCreateWndData@2@PAX@Z) で参照されました。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlWinModuleExtractCreateWndData@4 が関数 "public: void * __thiscall ATL::CAtlWinModule::ExtractCreateWndData(void)"
(?ExtractCreateWndData@CAtlWinModule@ATL@@QAEPAXXZ) で参照されました。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlUpdateRegistryFromResourceD@20 が関数 "public: long __stdcall ATL::CAtlModule::UpdateRegistryFromResourceDHelper
(wchar_t const *,int,struct ATL::_ATL_REGMAP_ENTRY *)" (?UpdateRegistryFromResourceDHelper@CAtlModule@ATL@@QAGJPB_WHPAU_ATL_REGMAP_ENTRY@2@@Z) で参照されました。
1>ok.obj : error LNK2019: 未解決の外部シンボル __imp__AtlCreateRegistrar@4 が関数 "public: long __stdcall ATL::CAtlModule::UpdateRegistryFromResourceDHelper
(wchar_t const *,int,struct ATL::_ATL_REGMAP_ENTRY *)" (?UpdateRegistryFromResourceDHelper@CAtlModule@ATL@@QAGJPB_WHPAU_ATL_REGMAP_ENTRY@2@@Z) で参照されました。
1>Debug\ok.exe : fatal error LNK1120: 外部参照 6 が未解決です。
1>ok - エラー 8、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
原因がわかられるのでしたらよろしくお願いします。
0479デフォルトの名無しさん2009/07/04(土) 17:44:38
>>477
素直にSTD以上のエディションを買え。
0480デフォルトの名無しさん2009/07/04(土) 22:15:53
Expの話だったのかよ
0481デフォルトの名無しさん2009/07/04(土) 22:47:09
> VSC++ 9.0
?
0482デフォルトの名無しさん2009/07/05(日) 22:20:24
アップグレード版はインストール時の仕様が気になって仕方がない
0483デフォルトの名無しさん2009/07/06(月) 20:32:49
>>478
・プロジェクトのプロパティ「追加の依存ファイル」 atlthunk.lib
・stdafx.h 「#define _WTL_SUPPORT_SDK_ATL3」の行を削除
0484デフォルトの名無しさん2009/07/07(火) 22:45:29
遅れました。
>>479、>>480、>>481、>>482
申し訳ないです
>>483
無事にビルドできました。

皆様ありがとうございました。
0485デフォルトの名無しさん2009/07/29(水) 13:15:53
7/28のアップデートはATLを使っているプロジェクトに影響があるんだろうか
0486デフォルトの名無しさん2009/07/29(水) 16:16:03
ATL9についてだと、
http://support.microsoft.com/kb/971092
によると atlcom.h と atlhost.h の更新が影響大きそう。
中身の違いはまだよく精査してないけど、リビルドする必要がありそうね。

変更されたファイルの一覧を見ると、ATLのバグ修正のはずなのに
なぜか libcmt.lib なんかも更新されているね。
Cランタイムの変更の方は、バージョン変更によるアセンブリの更新のようだけど。
0487デフォルトの名無しさん2009/07/29(水) 22:41:56
http://msdn.microsoft.com/ja-jp/ee309358.aspx
ここに詳しく書いてある。
0488デフォルトの名無しさん2009/07/30(木) 00:22:01
なつかしフローチャート
0489デフォルトの名無しさん2009/08/02(日) 07:55:20
class CHoge
{
private:
CAtlMap<int, int> map ;
};

int _tmain(int argc, _TCHAR* argv[])
{
CAtlMap<int, CHoge> map ;
CHoge hoge ;
if ( map.Lookup( 0, hoge ) == false )
return 0;
}
こういうのは無理なんです?
0490デフォルトの名無しさん2009/08/02(日) 09:07:50
>>489
CHogeの代入演算子は既定のものなのでpublicだが、
CAtlMap自体の代入演算子はprivateで宣言されているため、
CHoge間の代入時にアクセスできないのでエラーとなる。
クローンを手作業で作るかポインタで持つか、そこら辺は好みで。
0491デフォルトの名無しさん2009/08/02(日) 10:03:27
なるほど今見たら
CAtlMap& operator=( const CAtlMap& ) throw();
これが確かにprivateでした
ポインタでやってみます、どもです
0492デフォルトの名無しさん2009/08/02(日) 10:05:33

http://itpro.nikkeibp.co.jp/article/NEWS/20090729/334737/
(1)[MS09-035]Visual StudioのActive Template Libraryの脆弱性により、リモートでコードが実行される (969706)
(2)[MS09-034]Internet Explorer用の累積的なセキュリティ更新プログラム (972260)
0493デフォルトの名無しさん2009/08/02(日) 10:08:17
Active Template Library (ATL) のセキュリティ上の脆弱性からコンピューターを守る
公開日: 2009年7月30日
http://www.microsoft.com/japan/security/atl.mspx
0494デフォルトの名無しさん2009/08/02(日) 10:52:36
365MB・・だと・・・
0495デフォルトの名無しさん2009/08/13(木) 22:13:45
WTL::CToolTipCtrl をオーナードローするにはどうすればいいの?
0496,,・´∀`・,,)っ-○○○2009/08/14(金) 22:13:54
http://msdn.microsoft.com/en-us/library/bb760246(VS.85).aspx

Win32のラッパーなんだからとりあえずリファレンス嫁
0497デフォルトの名無しさん2009/08/15(土) 00:43:11
呼んだけどWTLではどうやるの?
0498,,・´∀`・,,)っ-○○○2009/08/15(土) 01:24:04
なつやすみですね
0499デフォルトの名無しさん2009/08/15(土) 14:27:46
,,・´∀`・,,)っ-○○○
「・」と「´」どっちが目なの?
0500デフォルトの名無しさん2009/08/15(土) 14:50:14
>>495
OwnerDrawは出来ない。
CustomDrawは出来るけど。
0501デフォルトの名無しさん2009/08/22(土) 08:59:52
WDK 7.0.0のATL7.1ってバグ修正されてるのかな?
0502デフォルトの名無しさん2009/08/22(土) 09:43:05
さあ?
一応atlcom.hには、PROP_ENTRY_TYPEとか追加されてるし、
atlcomcli.hのCComVariant::ReadFromStream()の引数も増えてるが・・・
0503デフォルトの名無しさん2009/08/31(月) 08:08:34
Summer has gone.
0504デフォルトの名無しさん2009/09/11(金) 01:16:20
新規作成 ATL/WTL Application Wizard、何もいじらずにfinishしてReleaseビルド
出来上がったexeのサイズ

2005 -> 76K
2008 -> 156K

どちらもマルチスレッド/MT
どうも2008はCランタイムをリンクしてるっぽい
2008で、CRTを使用しないって自動的になるんじゃないの?
ちなみに新規作成のWin32プロジェクトではそんなことは起こらない
0505デフォルトの名無しさん2009/09/11(金) 03:54:24
少し前のバージョンからそれ変更されてたような。
個人的にはCRTあり/MDだったんでsetup90.js書き換えてそのまま忘れた。
0506デフォルトの名無しさん2009/09/12(土) 04:48:54
2008から_ATL_MIN_CRTが廃止されたって。
でいろいろコンパイルオプション変更してもだめだった
/NODEFAULTLIB:libcmt.libで、グローバル変数破棄だと思うけど、_atexit使われてるし
あきらめるしかないのか
0507デフォルトの名無しさん2009/09/12(土) 06:53:33
最近はコンピュータの性能も上がってきたからもういいという判断なのかもね。

個人的には9x/NT4切り捨てが勘弁してほしかった<2008
2010まで待ってほしかった。
0508デフォルトの名無しさん2009/09/18(金) 11:19:55
9x切り捨てか。もうTCHAR使うのやめようかな。
0509デフォルトの名無しさん2009/09/18(金) 11:45:27
ああそうか、どっち9xで動かんのならTCHARとか使ってる意味無いんだよな。
何を律儀に使い続けてたんだろう、俺。
0510デフォルトの名無しさん2009/09/18(金) 14:50:09
Meは忘れられた存在
0511デフォルトの名無しさん2009/09/18(金) 16:42:14
>>510
大人なんだから、もう忘れろ。98SEとかも。
0512デフォルトの名無しさん2009/09/19(土) 12:49:24
TCHAR とかほかの API とか最初からユニコード版でコード書くと
ちょっとはコンパイル速度あがるのかな
いちいち判断しなくていいから
0513,,・´∀`・,,)っ-○○○2009/09/19(土) 12:51:43
テンプレートベースのライブラリにコンパイル速度求めるのは・・・
0514デフォルトの名無しさん2009/09/19(土) 22:04:37
>>512
体感できるほどの差がでるわけねぇw
0515デフォルトの名無しさん2009/09/21(月) 20:48:56
スプリッターウィンドウの片方のペインを途中で別の子ウィンドウに切り替えることはできないのでしょうか。
SetSplitterPaneでできるかと思ったらペイン内の描画が切り替わらないのです。
0516デフォルトの名無しさん2009/09/21(月) 22:00:44
ソース嫁
0517デフォルトの名無しさん2009/09/21(月) 23:17:53
ソース読んでますが
ヒントだけでもplz
05185152009/09/22(火) 02:00:51
ひょっとしてビュー切り替えのたびにDestroyWindowとCreateをしてやるのが
無難なのでしょうか?
0519デフォルトの名無しさん2009/09/22(火) 03:20:52
切り替えようとするウインドウ、非表示のままだったりしてw
あと、切り替えられる側、非表示にしてみては
0520デフォルトの名無しさん2009/09/22(火) 08:33:38
切り離した側のウィンドウを非表示にしてみては?
0521デフォルトの名無しさん2009/09/22(火) 08:34:32
かぶったorz
0522デフォルトの名無しさん2009/09/26(土) 13:14:27
ペインが親ウインドウになってる?
裏に行ってない?
0523デフォルトの名無しさん2009/10/17(土) 21:19:36
>508,509
安易にTCHARやめない方が良いと思うが。
UTF32/8なAPI群が追加されたりとかで、
またTCHARを使う意義が出てくる可能性は十分ある。
0524デフォルトの名無しさん2009/10/18(日) 00:56:35
ティーチャー
0525,,・´∀`・,,)っ-○○○2009/10/18(日) 19:48:56
おねがいTCHAR
0526 ◆0uxK91AxII 2009/10/18(日) 20:23:29
ATLとは無関係だけど、
IWMWriter::SetOutputFilenameの引数がconst WCHAR*だったりして、
この時だけ、_TCHARを使うのを止めてみた。
0527デフォルトの名無しさん2009/10/19(月) 06:57:04
で?
0528デフォルトの名無しさん2009/10/28(水) 00:32:36
あー、確かにWindows Media Format SDKあたりは、WCHAR前提のが多かったな。
0529デフォルトの名無しさん2009/10/28(水) 18:12:33
自分1人の場合、むしろATL使える環境だったら、ATL::CT2Wとかで簡単に変換できるから、両対応は割と諦めない。
複数人開発とかATLがないんだったらとっととUNICODEビルドしかできないように書くこともためらわないけど。
0530デフォルトの名無しさん2009/10/29(木) 12:02:19
「UNICODEビルドしかできない」のは、T使ってるくせにwchar_tを仮定している
場合だけだと思うんだが、違うの?
ATLとか使わないんなら、Tなんか捨ててwchar_tとW版API使えば
どっちでビルドしても同じバイナリになるのでは

今T使われるのは、MFCやらATLやらWTLやらが使っているから仕方なく、
というケースが多いんだろうと思っていたよ
0531デフォルトの名無しさん2009/11/28(土) 21:26:04
CScrollImplって使いにくくない?
ScrollWindowEx使ってるからピクセル単位で扱わなならんし…
現在のスクロール位置もGetScrollPosとかで得ないといけないの?
0532デフォルトの名無しさん2009/12/29(火) 02:13:41
WTLあげ
0533,,・´∀`・,,)っ-○○○2009/12/29(火) 02:38:40
WTL世間は鬼ばかり
0534デフォルトの名無しさん2009/12/29(火) 12:49:02
ATLそうですね
0535ゴロゴロ2009/12/29(火) 22:45:10
WTL で作成したウィンドウ アプリケーションを、
そのまま ActiveX コントロールにすることはできないでしょうか?
0536デフォルトの名無しさん2010/01/06(水) 18:41:45
できるんじゃね?
0537デフォルトの名無しさん2010/02/05(金) 22:41:04
age
0538デフォルトの名無しさん2010/02/05(金) 22:59:10
ATLやWTLは今後も生き残っていく余地ある?
C++でプログラミングするときこれが一番いいんだけど
0539デフォルトの名無しさん2010/02/05(金) 23:02:03
生き残っていくの定義は何?
自分が使い続けるのに周りは関係ないだろ
0540デフォルトの名無しさん2010/02/05(金) 23:06:11
この先生きのこるWTL
0541デフォルトの名無しさん2010/02/06(土) 00:25:09
>>538
消えたら困るところが多いから、当分消えないだろ
Safariとか普通にATL使ってるし
Chromeとかも使ってるんじゃない?こっちは知らんけど
0542デフォルトの名無しさん2010/02/07(日) 19:11:52
#undef _WTL
0543デフォルトの名無しさん2010/02/08(月) 22:15:11
AYL/WTLは生き残るでしょう
お客様(笑)からお金貰って専用アプリ書くならc#でもいいですが
一般に配布するアプリを書くとなると.netではいろいろ不都合が多く
C++で書くというのはまだまだ残ると思いますよ。

それにC++で書く場合はMFCはいまさらだしSDKも論外、c#の部品に
慣れてるとATL/WTLがないとかなりしんどい

で、質問なんですがCSplitterWindowTって動的に縦割り横割りを切替できます?
もしかしてCSplitterWindowTに乗ってる部品のインスタンスを全部管理してて
切替の際は前のCSplitterWindowTを破棄した後、新しい割りのCSplitterWindowT
を作成して再配置とか・・・じゃないですよね?
0544デフォルトの名無しさん2010/02/08(月) 22:16:14
AYL/WTL
になってしもうた
ATL/WTL
0545デフォルトの名無しさん2010/02/08(月) 22:16:14
はいな
0546デフォルトの名無しさん2010/02/08(月) 22:19:06
>>545
切替可能?

破棄して再配置?

どちらにかかってます?>そのはいな
0547デフォルトの名無しさん2010/02/08(月) 22:58:33
>>543
http://www.ailight.jp/blog/sha256/archive/2007/05/14/13856.aspx
0548デフォルトの名無しさん2010/02/08(月) 23:14:26
>>547
ありがとうございます
標準のWTLなどではできなくてそのアドレスの方が
実現するクラスを作られてるということですね
0549デフォルトの名無しさん2010/02/09(火) 00:40:47
>>547のコードをそのままVC++2008EEで使おうとすると

BEGIN_MSG_MAP(CFlippableSplitterWindowT)
MSG_WM_SIZE(OnSize)
MSG_WM_ERASEBKGND(OnEraseBkgnd)
END_MSG_MAP()

この部分で

error C3861: 'SetMsgHandled': 識別子が見つかりませんでした
error C3861: 'IsMsgHandled': 識別子が見つかりませんでした

とでます

いろいろ調べたところ

BEGIN_MSG_MAP_EX(CFlippableSplitterWindowT)
MSG_WM_SIZE(OnSize)
MSG_WM_ERASEBKGND(OnEraseBkgnd)
END_MSG_MAP()

これでコンパイルは通るのですがBEGIN_MSG_MAP_EXは問題があるという
記事がちらほら見受けられます。

BEGIN_MSG_MAP_EXで行っていいのでしょうか?
それもとBEGIN_MSG_MAPを使う方がいいのでしょうか?
BEGIN_MSG_MAPを使う場合に上記のエラーを回避するにはどうすればいいのでしょうか?
0550 ◆0uxK91AxII 2010/02/09(火) 05:25:52
>>549
U read atlcrack.h
0551デフォルトの名無しさん2010/02/09(火) 14:54:52
c#のFlowLayoutPanelのようなテンプレートはありますか?
0552デフォルトの名無しさん2010/02/10(水) 06:41:10
最近WTLで開発を始めたのですが>549と同じようなところではまってます。

BEGIN_MSG_MAPでエラーになる場合はBEGIN_MSG_MAP_EXで問題なくなるのですが

BEGIN_SINK_MAPでIEのNavigate関連のイベントを拾うためのコードを書いても
エラーになってしまいます。

サンプルはいくつかネットで見つかったので同じように書いてみましたがエラーになります
プロジェクトごと配布されてるところの物を試しましたが同じ箇所でコンパイルできませんでした

やはり最新の開発環境の影響とかがあるのでしょうか?

開発環境はVC++2008EE と WTLの最新です
0553デフォルトの名無しさん2010/02/10(水) 06:51:01
試してみたサンプルの一つがこちらの物です。
http://www.nitoyon.com/vc/tips/ie_component.htm

イベントを取得する方法 というところの
http://www.nitoyon.com/vc/download/iwebbrowser3.lzh
これです

補足ですがVC6.0だと問題なくコンパイルが通りましたのでやはり
開発環境の違いなどでしょうか?
0554デフォルトの名無しさん2010/02/10(水) 07:35:17
EEにはATLが付いてない
0555デフォルトの名無しさん2010/02/10(水) 07:40:11
>>554
その辺は理解してます。
EEでもATLとWTLを入れる方法を紹介されてるサイトがあったので
その手順に従い一応開発はできているのですがその過程で>>552
のような問題にあたりました。

どうもマクロ関係でおかしくなるんですよね・・・

それ以外はまあおかしくなる要素がないというか
0556デフォルトの名無しさん2010/02/10(水) 08:05:45
ATLはどのバージョンをどこから拾ってきたん?
0557デフォルトの名無しさん2010/02/10(水) 08:14:41
http://www.off-soft.net/ja/develop/wtl/wtl1.html
ここを参考にして5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.imgをインストールしてその中の物を使ってます
0558デフォルトの名無しさん2010/02/10(水) 08:19:09
ちなみに
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/
http://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
この辺のサイトを参考にして作った物は動くのですが
その中へ>>552で述べたようなCOMのイベント関連のマクロのところが
どうにもならなくて困っている状況です。

BEGIN_MSG_MAPに習ってBEGIN_SINK_MAPもBEGIN_SINK_MAP_EXとしてみましたが
今度は関係のないはずのBEGIN_MSG_MAPあたりまでエラーを吐く始末で
0559デフォルトの名無しさん2010/02/10(水) 12:26:25
うちの2008EE+WTL8+WinDDKのATL7で試してみたけどちょっと別の問題出たけどコンパイル&実行出来たよ
0560デフォルトの名無しさん2010/02/10(水) 12:40:08
VC9+ATL3じゃ問題多そうだよな
0561デフォルトの名無しさん2010/02/10(水) 12:44:45
>>559
うーむ
DDKの方は試して無かったです

>>560
ATL3関連は切ってるんでるけどね
最近のWTL8はATL3を切り離せるようになってるので

そうじゃないとatlthunk.libのリンクの問題がおきて先に進まないので
0562デフォルトの名無しさん2010/02/10(水) 12:49:16
あとDDKとかSDKとかじゃなくてVSの評価版ありますけどあれの中からATLをいただくというのは
まずいんですかね?
0563デフォルトの名無しさん2010/02/10(水) 12:50:21
だめ。
0564デフォルトの名無しさん2010/02/10(水) 12:55:41
expressなんて使っている乞食が
ATL使いたがるなよw
0565デフォルトの名無しさん2010/02/10(水) 19:02:50
今日VS持ってる知り合いのところでためさせてもらったら
WTLへのパスを設定してstdafx.hの中の#define _WTL_SUPPORT_SDK_ATL3を
コメントにしたところ一部標準関数について警告は出たもののあっさりコンパイルできました。
環境構築が失敗してたようです

>>564
VS2010のRCが出てる段階なのでタイミング的にどうしようか迷ってる段階なんですよ
VC6.0は持ってるのですがさすがにあの古臭いインターフェースではやりたくないし
0566デフォルトの名無しさん2010/02/10(水) 19:06:48
stdは2010で廃止だからな
0567デフォルトの名無しさん2010/02/10(水) 19:12:56
Express/Professional/Premium/Ultimate
この4つだけなんですね

どう買えばお得なんでしょうか?
ネットで調べてみるとVL版(3ライセンス)がお買い得みたいなのも見受けられますし
0568デフォルトの名無しさん2010/02/10(水) 19:48:04
Proの新規は確か9万以上したような
0569デフォルトの名無しさん2010/02/10(水) 19:50:25
VS2010スレできいたほうがいいんじゃね
0570デフォルトの名無しさん2010/02/10(水) 20:02:08
>>569
そうします
0571デフォルトの名無しさん2010/02/10(水) 23:19:48
win32からWTL使ってみようかなと思ったけど
WTLの情報少ないな
まともなサイトがテンプレぐらいしかない
0572デフォルトの名無しさん2010/02/10(水) 23:21:52
>>571
なんとか頑張るしかないですね
今c#ぽい部品を作ってる

C++ってset{}get{}ってできないんでしたっけ?(汗
0573デフォルトの名無しさん2010/02/10(水) 23:24:38
VCなら
__declspec property
0574デフォルトの名無しさん2010/02/10(水) 23:31:56
>>573
ぼやいてみるものだ

ありがとうございます
0575デフォルトの名無しさん2010/02/10(水) 23:49:36
どこかで.netライクなWTLを使ったクラスライブラリを
やってるところはないのか?
やってたらアホみたいだし
0576デフォルトの名無しさん2010/02/11(木) 08:50:49
アホみたいだから誰もやってないんじゃない?
0577デフォルトの名無しさん2010/02/11(木) 13:39:42
>>566
stdネームスペースのクラスたちが消えるの?
0578デフォルトの名無しさん2010/02/11(木) 13:50:15
>>575
需要ないと思うよ
0579デフォルトの名無しさん2010/03/06(土) 10:56:25
ATLのCComPtr::Releaseなのですが
void Release() throw()
{
T* pTemp = p; //*1
if (pTemp)
{
p = NULL;
pTemp->Release();
}
}

こういうコートです。

p->Release();
p = NULL;

じゃだめなのでしょうか?
マルチスレッドに関連したものかなと思ったけど、*1が走る直前に取得したポインタに対して操作を行う可能性を考えたら
あまり意味のあるものではないような気もするのですが。
0580デフォルトの名無しさん2010/03/06(土) 14:17:38
>>579
pがインスタンス変数とすると、
pTemp->Release()で例外が飛んでも
pを必ずNULLにしたいってことじゃないかな。
0581 ◆0uxK91AxII 2010/03/06(土) 14:37:30
手元にあるモノだと
IUnknown* pTemp = p;
って書いてあるから、昔の名残っぽい予感。
0582デフォルトの名無しさん2010/03/06(土) 17:14:22
VC9SP1でもVC10RCでも>>579になってるけど
0583デフォルトの名無しさん2010/03/06(土) 18:42:44
if (p) //*1
{
p->Release(); //*2
p = NULL;
}
は、マルチスレッドなら*1でp!=0でも、*2でp!=0の保証はないよ。
スタックにコピーすべき。
0584デフォルトの名無しさん2010/03/06(土) 19:02:11
>>583を>>579に書き直しただけじゃスレッドセーフにならないぞ。
CComPtrがスレッドセーフなのは、参照カウンタの処理をアトミックにしてるからだ。
0585デフォルトの名無しさん2010/03/06(土) 21:44:37
>579
ATLインターナルによると、解放処理内でスマートポインタが再度参照されて
二重解放されてしまう事態を防ぐためらしい。
>579 のコードだと次のケースで問題が生ずる。以下引用

 たとえば、スマートポインタがクラスAのメンバ変数で、オブジェクトBの参照を
保持しているとしよう。そして、スマートポインタの.Release メソッドを呼び出す。ス
マートポインタは、オブジェクトBへの参照を解放する。今度は、オブジェクトBが、ス
マートポインタを含んだクラスAのインスタンスを参照する。オブジェクトBは、クラ
スAのインスタンスへの参照を解放することにする。クラスAのインスタンスはデスト
ラクションを決意し、スマートポインタのメンバ変数のデストラクタを呼び出す。デスト
ラクタはインターフェイスポインタがNULLでないことを検出し、インターフェイスを
もう一度解放する。
- ATLインターナル(p.86)
0586デフォルトの名無しさん2010/03/06(土) 21:57:35
なるほど
0587デフォルトの名無しさん2010/03/06(土) 22:39:04
このスレでATL インターナルを持っていないやつがいるのか。
0588 ◆0uxK91AxII 2010/03/06(土) 23:39:47
>>585
気持ち悪い。
0589,,・´∀`・,,)っ-○○○2010/03/07(日) 01:01:43
そこまでやっててあの致命的なバグだからなぁ
0590デフォルトの名無しさん2010/03/07(日) 22:34:28
はじめまして、質問させてください。
以前VC6.0で作成したATLを、WinXPのローカルにANHTTPD+MySQL+PHPの環境を作り、
PHP(ブラウザ)からATLを呼び出して処理を行なっていました。
今回、OSをVistaに変更して動かそうと思っていますが、今までコールできてたATLのメソッドがコールできません。

phpのソースは全く同じものを使用しており、ATL(DLL)のCLASSIDも同じで、ソースの変更も行なっていません。
しかしWebサーバを今回 ANHTTPDからApacheに変更しています。ANHTTPDはVista対応となっていない為。

ブラウザの設定でスクリプトエラーごとに通知するにチェックしてみると、
「オブジェクトでサポートされていないプロパティまたはメソッドです」と表示されます。
試しにメソッド内部の先頭にメッセージボックスを入れてみましたが表示されないので、呼ばれていない様です。

何かこれらで原因が分かる方いらっしゃいますか?よろしくおねがいします。
スレ違いでしたらスミマセン。
0591 [―{}@{}@{}-] デフォルトの名無しさん2010/03/07(日) 22:47:31
>>590
管理者として実行でコマンドプロンプトを開く。
REGSVR32でDLLを再登録。
0592デフォルトの名無しさん2010/03/07(日) 22:59:07
>>591
レスありがとうございます。
REGSVR32でDLLの登録は、スタートアップにバッチファイル入れて、成功しましたと出ています。
05935902010/03/07(日) 23:26:50
それと、UACも無効にしています。
VC6.0は、Vista未サポートってのが原因でしょうか。
動かされた方いますか?
0594デフォルトの名無しさん2010/03/28(日) 13:50:53
すいません、質問です。

Windows Vista Ultimate(32bit) SP1
VC++2008 Express Edition
PlatformSDK 2003付属のATL3.0
WTL8.1

という環境で、ATL/WTLウィザードで作成したexeを実行すると
DEPに引っかかって死んでしまいます。
いろいろ調べたんですが、
void * __stdcall __AllocStdCallThunk()の
HeapAllocをVirtualAllocに変えるといいらしいと言う事がわかり、
それはそれでいいのですが、いまひとつ納得いかないのは、

Windows2000
VC++6.0 Enterprise Edition付属のATL3.0
WTL8.1

という環境で、同じようにウィザードを使って作成したexeを、
Vistaにコピーして実行してもDEPに引っかからない事です。
普通に実行できてしまいます。
同じATL3.0なのに、どうしてこういう違いが出るのでしょうか?
0595デフォルトの名無しさん2010/03/28(日) 14:19:39
VC9で作ったexeは(/NXCOMPATが既定なので)VistaSP1以降DEPが自動で有効になる
VC6で作ったexeはDEPが自動では有効にならない

っていう話じゃないのかなあ
0596デフォルトの名無しさん2010/03/28(日) 23:03:53
VC6+ATL3で生成されたと見られるコードに対してだけ、OS側で
特殊な処理をしているんだと思う。この組み合わせで作られた過去の
プログラムが軒並みDEPに引っかかるとまずいから。

ちなみにVirtualAllocは64kb(正確にはSYSTEM_INFO::dwAllocationGranularity)単位で
メモリを予約するので、HeapAllocから置き換える時は注意。
05975942010/03/29(月) 20:43:52
回答いただきありがとうございます。
返事が遅くなってすいません。

>>595
オプションでDEPを無効にできるとは知りませんでした。
/NXCOMPAT:NOをしてビルドすると、VC2008で作成したexeも
DEPに引っかからず実行できました。

でもビルドオプションで無効にできるなら、
ウィルス対策としての意味がないような??
ちょっとよくわからない仕組みですね。

>>596
なるほど。/NXCOMPATが無効で、かつATL3.0で作られたexeの場合のみ、
ATLのthunkの部分に限ってDEPのチェック対象から外す、
みたいな事をOSがやってるんですかねえ。

VirtualAllocに関しては了解です。
確保した領域から必要サイズだけ切り出して使うようにしようと思います。
0598デフォルトの名無しさん2010/03/29(月) 21:55:53
おとなしくVS2008のStdかProアップグレードを買えば済む話。
0599デフォルトの名無しさん2010/03/30(火) 01:21:20
>>597
ウィルスというか、バッファオーバーフローとかの脆弱性対策だろ
0600デフォルトの名無しさん2010/03/30(火) 09:54:56
>>597
DEPとは外部から送り込まれたマルウェア(データセグメントに置かれる)の実行を
防止する仕組みなので、データセグメントにコードを置かないプログラム(特殊な
プログラムを除いて大部分が該当する)にマークする仕組み、すなわち入り込ませ
ない仕組みなので、正しい。
0601デフォルトの名無しさん2010/03/31(水) 13:00:09
WTLってクラス定義の中にメソッドの定義まで書き込んじゃってますけど
みなさんは自分のコードもそんな風に書いてますか?
それとも宣言と定義を.hと.cppに分けてますか?
0602デフォルトの名無しさん2010/03/31(水) 16:28:37
>>601
え?
0603デフォルトの名無しさん2010/03/31(水) 17:10:25
インラインは.inlってファイルを個別に作ってるな
ヘッダが長くなると読みにくい
0604,,・´∀`・,,)っ-○○○2010/03/31(水) 17:52:48
テンプレートってそもそもそんなもんだ
06056012010/04/02(金) 08:14:19
そうそう、長くなって読みにくいんですよね。
しばらくは.inlで試してみます。ありがとうございました。
0606デフォルトの名無しさん2010/04/29(木) 11:17:13
C++の文法を一通り学んでこれからwindowsアプリを少しずつ作っていきたいのですが
いきなりWTLやって大丈夫ですか?
SDKやMFCを今からやるのは無駄ですか?
0607デフォルトの名無しさん2010/04/29(木) 11:39:54
WTLを使いながらSDKは必ず身につく
MFCはいらない子
0608デフォルトの名無しさん2010/04/29(木) 14:33:58
SDKは必要
MFCを今からやるのは無駄
0609デフォルトの名無しさん2010/04/29(木) 19:04:04
>>607-608
ありがとうございます。がんばってみます。
0610デフォルトの名無しさん2010/05/01(土) 15:35:00
CFrameWindowImpl ベースのウィンドウを作成し、その上に
各種コントロールを配置してアプリケーションを構成しているのですが、
各コントロールに WS_TABSTOP を指定してもタブ遷移が一切
できません。。
Gooooogle先生にも聞いてみましたが、いまいちWTL(ATL)への応用方法が
わかりませんでした。

教えてエロい人!!
0611デフォルトの名無しさん2010/05/01(土) 16:40:52
PreTranslateMessageあたりでIsDialogMessageを呼ぶ
0612デフォルトの名無しさん2010/05/01(土) 18:47:21
>>608
MFCの仕事は今でも新規であるけれど、ATLは一度話があったきり、WTLは聞いたこともね。
ATLもWTLも趣味でコネコネ楽しむものだと思ってた。
仕事で使えてる人っておられます?
0613デフォルトの名無しさん2010/05/01(土) 19:13:35
DirectShowやらActiveXやら絡みの仕事でならあるんじゃないか。
0614デフォルトの名無しさん2010/05/01(土) 20:17:20
>>612
MFCは使わんけど、ATL/WTLはがんがんに使っているよ。うちの会社の製品は。
0615デフォルトの名無しさん2010/05/01(土) 21:18:26
>>612

>>606 は仕事で使うとは一言も言っていないのに
なぜMFCを仕事で使う云々言い出すんだ?
06166102010/05/01(土) 22:59:16
>>611
置いてみたら見事TABが抜けることはできました!
ですが、ツールバーにフォーカスが当たり、そこから抜け出せません。
一応他のウィンドウは WS_TABSTOP を指定しています。
指定しているのは、ウィンドウ遷移してほしいコントロールだけですが。。

ツールバーより先のウィンドウへフォーカスを遷移させるにはどのように
したら良いでしょうか。
0617デフォルトの名無しさん2010/05/01(土) 23:03:31
>>612
.NET使わないでC++でWinアプリ作るとしたら仕事ではMFCが第一選択肢になるって事?
0618デフォルトの名無しさん2010/05/01(土) 23:13:52
612じゃないが
C++であえてMSのものを使う案件ではMFCが多くATLはあまり(ほとんど)ない
と言うこと
で、今のC++WinアプリはQtが主流
0619デフォルトの名無しさん2010/05/01(土) 23:34:38
C++でCOMの案件はATL必須。
ただATL技術者なんて単価高いし集まらないから普通はVBでCOM。
0620デフォルトの名無しさん2010/05/02(日) 07:22:51
612です。
みなさんありがとう。
>>617
ウチの勤め先の傾向はまさにそういう傾向です。
>>618-619
たぶんウチの守備範囲が狭いってことでしょうね。
0621デフォルトの名無しさん2010/05/02(日) 09:00:20
2002 の安定版が 2003?
2005 に安定版が 2008?
ということで、
金のない俺は次のバージョンを待つほうがいいいのかな。
二年後に .NET 5 がでてくるとも思えないし。
0622デフォルトの名無しさん2010/05/02(日) 09:05:56
まちがった ごめん
0623デフォルトの名無しさん2010/05/02(日) 20:16:56
MFCは表面
ATLは裏方
0624デフォルトの名無しさん2010/05/03(月) 11:45:00
WTLは張りぼて
0625デフォルトの名無しさん2010/05/03(月) 21:44:33
それは否定しない。
0626デフォルトの名無しさん2010/05/03(月) 23:54:58
仕事下さい
0627デフォルトの名無しさん2010/05/04(火) 12:57:01
VBorJavaを習得すべし。
0628デフォルトの名無しさん2010/05/04(火) 13:02:54
Vbor Java って言語が出来たのかとおもた
0629デフォルトの名無しさん2010/05/06(木) 13:21:25
class A : public IUnknown {};
class B : public IUnknown {};
class C_ :
 public CComRootObject,
 public A,
 public B
{
BEGIN_COM_MAP(C_)
 COM_INTERFACE_ENTRY(A)
 COM_INTERFACE_ENTRY(B)
END_COM_MAP()
};
typedef CComObject<C_> C;

CComPtr<C> p;
C::CreateInstance(&p);

CComPtr<C> q = p; // OK!
CComPtr<C> r; r = p; // NG! 'IUnknown *' への変換はあいまいです。
static_cast<IUnknown*>(p) // NG! 'IUnknown *' への変換はあいまいです。

ATLを使うと、IUnknownの多重継承を解決してくれるものと思っていたのですが、そんな都合のいいことはなかったようです。
どこが間違っているのか、ご指摘いただけないでしょうか?
0630デフォルトの名無しさん2010/05/06(木) 17:40:26
ソースの貼り方を間違えている
0631デフォルトの名無しさん2010/05/06(木) 18:03:20
すみません、何が悪いのかわかりませんでした。
どこを直して張り直せばよろしいでしょうか?
0632デフォルトの名無しさん2010/05/14(金) 09:56:46
WTL初心者です。以下の内容のDLLをWTLで作ろうかと考えています。
・複数のツールで共通して使用するダイアログ(コモンコントロールのパレットみたいなもの)
・データはそのダイアログが保持し、非表示状態でも保持している。
・ダイアログのクラスに対してデータの受け渡しや参照をツール側の好きなときにいつでも出来る。
・モードレスダイアログ

こういう物を作るのは可能、かつ簡単にできるでしょうか?
参考になるURLとかもあれば教えて頂きたいです。
WTLでツールを作成している場合、こういうものを作りたくなることは良くありそうですが、
もしももっと一般的なやり方があればそちらを教えて下さい。
それとも、WTLのプログラムは常時EXE一個のみなんでしょうか?

宜しくお願いします。
0633デフォルトの名無しさん2010/05/14(金) 11:13:54
やってみりゃいいじゃん
0634デフォルトの名無しさん2010/05/14(金) 11:56:01
>>632
簡単にできすまよ。URLは >>2
0635デフォルトの名無しさん2010/05/18(火) 23:49:23
>>632
pragma data_seg
参照カウンタ
0636デフォルトの名無しさん2010/05/20(木) 22:37:12
すいませんが、教えてください
WTLで以下のようなCStringのマップを扱おうとするとコンパイルエラーが出る
んですけど、なぜでしょうか?
(atlmisc.hの代わりにatlstr.hをインクルードするとこのエラーは出ません)

#include <atlmisc.h> // for CString
#include <atlcoll.h> // for CAtlMap

func()
{
CAtlMap<CString,CString> str_map;

str_map.SetMap(_T("aaaa"), _T("bbb")); →ココでエラーになっている模様

...
}

コンパイルエラーの内容
\microsoft visual studio 9.0\vc\atlmfc\include\atlcoll.h(128) : error C2440: '<function-style-cast>' : 'const WTL::CString' から 'ULONG_PTR' に変換できません。
0637デフォルトの名無しさん2010/05/21(金) 02:01:05
atlmisc.hに、CElementTraitsの設定が無くて、
デフォルトのハッシュ計算(値そのもの)が使われるから。
0638デフォルトの名無しさん2010/05/22(土) 02:50:28
>>637
回答どうもです
0639デフォルトの名無しさん2010/06/02(水) 01:00:58
ATLってタダで使えるみたい?7.1
ttp://d.hatena.ne.jp/sea-show/20100517
0640デフォルトの名無しさん2010/06/02(水) 18:55:31
どうせ怪しい事するなら評価版から抜くわ
0641デフォルトの名無しさん2010/06/08(火) 22:52:42
Visual Studio 2010 ExpressにWTLインストールできた人いる?

WTL公式からExpress対応版が出るのを待つか
自分で何とかするしかないのかな?
0642デフォルトの名無しさん2010/06/08(火) 23:23:21
Scriptのパス書き換えるだけじゃろに
0643デフォルトの名無しさん2010/06/09(水) 13:45:12
>641
ttp://www.usefullcode.net/2010/05/visual_studio_2010wtl_819127.html
0644デフォルトの名無しさん2010/06/09(水) 16:19:06
>>643
それExpressに対応して無いよ
0645デフォルトの名無しさん2010/06/10(木) 04:59:08
ATLが無くても動くWTLが欲しいです。
0646デフォルトの名無しさん2010/06/10(木) 05:24:51
WTLから使っているATLの機能ってどのぐらいだろ。
CWindowImpl周りだけならまがい物も作れそうだけど。
0647デフォルトの名無しさん2010/06/10(木) 10:01:52
もうちょっとモダンなGUIの実装があればなあ。
Windowsコモンコントロールは古臭すぎる。
0648デフォルトの名無しさん2010/06/10(木) 10:05:16
たとえばどんなの?
0649デフォルトの名無しさん2010/06/10(木) 10:21:31
少なくともレイアウトコンテナ機能がある物
0650デフォルトの名無しさん2010/06/10(木) 10:29:15
このライブラリを使って作ったアプリってWindows NTで動く?
0651デフォルトの名無しさん2010/06/10(木) 10:33:02
うごくものもあるしうごかないものもある
0652デフォルトの名無しさん2010/06/10(木) 10:48:33
>>645-646
基本的なウィンドウ生成部分は全部ATL側だから
WTLだけの動作は絶対に無理な気がする

つか、それができたら多分ATLってもう使われて無いような
0653デフォルトの名無しさん2010/06/10(木) 10:58:45
俺は逆にATLにWTLの必要な機能だけ移植して使ってるな。
WTLのFrameWindowは不満点多いし。
0654デフォルトの名無しさん2010/06/10(木) 11:00:08
>>651
ありがとうございます。では、もう少し具体的に。
ダイアログにボタンとラベルがあって、ボタンを押したらAフォルダからBフォルダに
ファイルをコピーするぐらいの物なのですが、Windows NTで動きますでしょうか?
0655デフォルトの名無しさん2010/06/10(木) 11:01:17
ATL以前に、Visual C++ 2008以降はWindowsNTをサポートしてないよ。
0656デフォルトの名無しさん2010/06/10(木) 11:15:06
>>655
私が使っているVC++は2005なので、そこは確認済、大丈夫です。

実は、案件でWindows NTで動くちょっとしたプログラムを作らないといけなくなりまして、MFCかATL/WTLでやろうと考えています。
MFCは今更MFCやっても…という考えがあり、ATL/WTLでできるならそっちでやろうと思って質問させて頂いています。
0657デフォルトの名無しさん2010/06/10(木) 11:20:22
まぁ、
WINVER=0x0400
_WIN32_WINNT=0x0400でコンパイルが通れば、普通は動くんじゃない?

ちなみに、古いATLを使うのはセキュリティ上お薦め出来ないよ。
0658デフォルトの名無しさん2010/06/10(木) 11:33:53
つーかNTの時点でセキュリティも何も無いなw
0659デフォルトの名無しさん2010/06/10(木) 11:55:52
>>657
ありがとうございます。
複雑な事をしない単純な物なので、多分、イケるかと思います。

>>658
ですよねw

皆様、ありがとうございました。ATL/WTLの勉強に励むとします。
0660デフォルトの名無しさん2010/06/10(木) 12:03:19
実行バイナリのヘッダにリンカが設定するバージョンも修正しないと起動時にエラーになるかも
0661デフォルトの名無しさん2010/06/10(木) 14:55:47
>>660
ありがとうございます。その際はアドバイス通り対応致します。
0662デフォルトの名無しさん2010/06/12(土) 22:16:03
英語主ブログアドレス
http://nanjitsu.blog57.fc2.com/
0663デフォルトの名無しさん2010/06/12(土) 22:16:46
誤爆スマソ
0664デフォルトの名無しさん2010/06/13(日) 20:45:29
CPaneContainer で、SetTitle() すると出力される領域の高さを
調節することって可能?
やっぱりヘッダファイル直修正しなきゃだめかなぁ。
可能な場合メソッド名教えてくだしあ><
0665デフォルトの名無しさん2010/06/13(日) 21:10:08
>>664
CPaneContainerImplを継承したクラスを作って
UpdateLayoutをオーバーライトする
0666デフォルトの名無しさん2010/06/13(日) 21:23:40
オーバーライト(笑)
0667デフォルトの名無しさん2010/06/13(日) 21:25:09
>>666
ドでしたね
ごめんなさい
0668デフォルトの名無しさん2010/06/13(日) 21:30:48
>>664
ソース見たけど、高さを変えるだけなら CalcSize、フォントを変えるだけなら GetTitleFont を
再定義する方が、UpdateLayout よりも簡単そう。
どのメソッドも擬似継承できるように作られてる("pT->" 付きで呼ばれている)
0669デフォルトの名無しさん2010/06/18(金) 16:20:43
CScrollWindowImplの派生クラスでテキストファイルを表示させたんですけど、
マウスのホイール回しでのスクロールが効いたり、効かなかったりします。

・表示直後は効かない
・一回他のウインドウに切り替えた後、戻ってくると効くようになっている

WM_MOUSEWHEELは常に来ているようなんですけど、原因は何が考えられるでしょうか?
0670デフォルトの名無しさん2010/06/18(金) 16:28:57
フォーカス?
0671デフォルトの名無しさん2010/06/18(金) 17:15:59
>>670
ご指摘どおり、原因はフォーカス設定だったようです。
WM_MOUSEACTIVATEでSetFocus()するようにして直ったみたいです。
ありがとうございます。
0672デフォルトの名無しさん2010/06/20(日) 18:56:31
WTLのマウスムーブイベントで質問です。
ビュークラスでマウスムーブイベントを作り、wParamからshiftキーの押下状態も取得しているのですが挙動がおかしくなります。
トレース文で色々試した結果の動きです。

・何も押さないマウスムーブ
大体2回くらいずつ全くの同一座標、同じキー押下状態なのにイベント発生する。
マウスを1フレーム?分動かすとトレースが2回でたりでなかったりする。

・shiftを押して右ボタンドラッグのマウスムーブ
長時間Shiftを押してマウスを動かすと、両手を話してもしばらく延々とマウスムーブイベントが発生する。
カウンタを表示してみるとずらずらずらずらっと全くの同一座標で一切マウスを触ってないのにしばらくイベント発生が続く。
そしてそれを放出しきって初めてマウスボタンアップイベントが発生する。

・SHIFTを押して少しだけマウスムーブ
shiftONの状態で動かした分だけトレースが出る。トレースが止まりしばらく放置していると、
数秒後あたりに思い出したようにズラズラズラッとShiftを押して無い状態で座標同一のマウスムーブイベントが十数回連続発生する。

プログラム側の処理遅延では無いと思います。(たいしたことしてない)
何故このようなことになるのでしょうか?
また正しくイベントを受け取るにはどうすればよいのでしょうか?
0673デフォルトの名無しさん2010/06/20(日) 19:33:36
TRACEじゃなくてテキストにでも書き出してみ
0674デフォルトの名無しさん2010/06/20(日) 20:27:10
>>673
テキストに書きだすと何か変わるのでしょうか?
一応このマウスムーブに連動した描画処理を見ても、確かにこのトレース結果の通りの
動きをしています。

ぶっちゃけるとマウスムーブで3D図形を回転させているんですが、Shiftを押しながらだと
長時間やるとボタンを離してもしばらくはマウスボタンアップを認識しませんが追従した動きだけはします。

考えてみれば溜まった処理吐き出しとはちょっと違いますね。
しばらくマウスボタンアップイベント発生がお預けになってマウスムーブが割り込みまくっている感じかも。
06756722010/06/21(月) 13:27:14
原因がわかりました。

マウスクリックの音ですら近所から苦情がくるので、テンキーマウスを使用してテンキーをマウスボタンのように使い、
Keypointerというフリーソフトを使って操作していたのですが、このKeyPointerが原因のようです。
常駐を外して実際のマウスボタンとキーボードで操作すると問題は発生しませんでした。

しかしまともなサイレントマウスはどこも発売しないし、KeyPointerに変わるソフトも見当たらないので、
操作方法を見直すしかないようです。
0676デフォルトの名無しさん2010/06/21(月) 13:33:20
ワロタw
引っ越せよw
0677デフォルトの名無しさん2010/06/21(月) 14:18:07
酷い環境だw
ゲームパッドをマウス代わりにするソフトでも同じようなことあるかな?
06786722010/06/21(月) 14:37:30
追記です。
GetAsyncKeyStateを使って現時点のSHIFT押下状態取得すると正確な値がとれるようです。
これでとった値と、Wparamからとった値を同時表示してみると、
wparamの方はずらずらずらっと遅れた情報送ってるのに対して、GetAsyncKeyStateのほうは機敏に最新状態を反映しています。

サイレントマウスはほんとにマトモなものがないです。
マウスボタンをテンキーマウスのペナペナのテンキーに置き換えればいいだけなのにどこも作りません。
マウスホイールも何も工夫しなければ無音なのに・・・。

マウス作ってる業界では「カチッ!!カチッ!! カリカリカリカリ!!」
という高らかな音を響かせないとそれはマウスと言えないようです。
06796722010/06/21(月) 14:43:50
さらに追記。
マウス位置もLparamからとらずに、
GetCursorPos); // 現在位置取得
ScreenToClient(); // クライアント座標変換
を使った方がいいかもしれません。

結局マウスムーブイベントで分かる情報は「なにやらマウス動かしたらしい」
程度しか正確なものは無いっぽいです。
0680デフォルトの名無しさん2010/06/21(月) 14:47:48
そろそろスレ違いに気づいてもいい頃だと思うんだが
0681デフォルトの名無しさん2010/06/21(月) 15:31:39
WTLのマウスムーブイベント、とかなんとか書いてるけど要はWM_MOUSEMOVEのことでしょ
初めからATL/WTL関係なし
0682デフォルトの名無しさん2010/06/21(月) 18:39:47
その異常者が引っ越すべきだろ
0683デフォルトの名無しさん2010/06/22(火) 05:04:31
とある隣人のムーブイベント
0684デフォルトの名無しさん2010/06/22(火) 07:01:15
同棲しているだけだろう
くそっ爆発しろっ!
0685デフォルトの名無しさん2010/06/22(火) 07:02:38
どかーん
0686デフォルトの名無しさん2010/07/02(金) 13:23:52
教えてー><
CWindow の上に CSplitWindow を配置して、
その上に CPaneContainer と CListViewCtrl を重ねるコードを1つのヘッダファイルに書いていたんですが、
CPaneContainer > CListViewCtrl の時はうまく表示されてたのに、
CPaneContainer > CTabCtrl > CListViewCtrl の構成に変えたら CListViewCtrl が描画されなくなってしまいました。

たぶんメッセージ系の扱いがうまく行ってないと思うのですが、
考えられる問題がありましたらご指摘ください!!!
0687デフォルトの名無しさん2010/07/02(金) 14:20:25
どういう風に重ねてるのかは知らんが
CTabCtrlよりもCTabViewの方がいいんじゃね
0688名無しさん@そうだ選挙に行こう2010/07/10(土) 19:48:38
xpパソコンのxpスタイルでシンプルリバーをつけたら描画がおかしいけど
(上部横一線が透過されて背景が・・・)
これってwtlのせいじゃなくて開発環境のせい?
だれかおしえてください。
06896882010/07/13(火) 11:51:37
ws_borderをなくしたら解決しました。
0690デフォルトの名無しさん2010/07/13(火) 14:25:00
なるほど
0691デフォルトの名無しさん2010/07/27(火) 18:02:24
ダイアログバーのOnPaint(WM_PAINTイベント)について教えてください。
これを追加するとそのダイアログバーを開いた瞬間にダイアログが真っ白になってコントロールが表示されなくなります。
実態はなぜかOnPaintが永久に呼ばれているみたいです。(デバッグコメントで確認しました。)

最初はOnPaint契機でピクチャーボックス内に描画する処理があり、その描画の結果再びOnPaintが発生する無限ループかと疑っていたのですが、
描画処理をコメントアウトし、OnPaint関数内ではreturn 0;しかない状態にしても状況が変わりませんでした。

一体なぜこうなってしまうのでしょうか?
またダイアロブが描画されるたびにピクチャーボックス内に画像を書き込む処理を入れないといけないのですが、
別な手段があるのでしょうか?

MFCを使ったアプリケーションでも似たような処理をしていますがこっちでは発生しませんでした。
WTLを使った方でのみ発生します。

ご存じの方がいれば教えてください。
よろしくお願いします。
0692デフォルトの名無しさん2010/07/27(火) 18:13:37
OnPaint内でInvalidateRect呼んでるとか
0693デフォルトの名無しさん2010/07/27(火) 18:36:29
>>691
>OnPaint関数内ではreturn 0;しかない状態にしても

いやこれをやっちゃダメだろう。
BeginPaint〜EndPaint呼ぶなりValidateRect呼ぶなりCPaintDC置くなりしないと
永久に無効領域が有効化されないぞ。
0694デフォルトの名無しさん2010/07/27(火) 19:52:25
WM_PAINTでなにもしないとなにも描かれないだろwww
0695デフォルトの名無しさん2010/07/27(火) 20:21:49
>>691
>>693にもあるけど、WM_PAINTをトラップしたら、たとえ何も描画しないとしても
必ずCPaintDCのインスタンスを置く事

じゃないと領域が無効のままになって、WM_PAINTが永遠に発行され続ける
0696デフォルトの名無しさん2010/07/28(水) 20:51:57
>>694
これはそういう問題じゃないと
0697デフォルトの名無しさん2010/07/28(水) 22:34:35
WTLの更新はまだですかviksoeさん
0698デフォルトの名無しさん2010/07/29(木) 00:24:26
>>691
ttp://bygzam.seesaa.net/article/157672929.html
>通常、WM_PAINTのハンドラではBeginPaint/EndPaintやValidateRect等を呼んで、
>無効領域のクリアをしないといけません。しかし、このサンプルではWM_PAINTで何もしていないので、
>無効領域がクリアされず永遠にWM_PAINTが発生し続けます。

>普通はWindowsプログラマがやってはいけないことのタブーを、このサンプルプログラムでは
>画面更新のトリガーに使っています。私の感覚では、気持ち悪いですね。
0699デフォルトの名無しさん2010/07/29(木) 00:45:39
上の回答レスと全く同じこと言ってるな、まあ当然だが
それにしてもWTL関係ないな
07006912010/07/29(木) 06:06:02
ゴタゴタしててレス遅れました。すいません。
695でのご指摘の通りでした。

OnPaint関数に
CPaintDC dc(m_hWnd);
を付け加えただけで解決しましたが、正直一見して何もしない無駄な行にしか見えず、
いまいち理解しきっていません。

自分なりに色々調べてみます。ありがとうございました。
07016912010/07/29(木) 06:09:15
ちなみにMFCのほうではこの行が入っていましたが、
dcを使わないならコメントアウトしてもいいけど面倒だから放置している程度の認識で、
まさかこの行が関係あるとは、必須だとは思いもしていませんでした。
0702デフォルトの名無しさん2010/07/29(木) 06:26:29
>>700
WTLのソース見れば簡単に分かることだが、
CPaintDCのコンストラクタ/デストラクタ内で、>>693に書いてる

> BeginPaint〜EndPaint呼ぶなり

をやってくれているだけだ。MFC版のも一緒。atlgdi.hを読んでみ
0703デフォルトの名無しさん2010/07/29(木) 08:26:39
そもそもWIN32の常識なんで基礎から勉強しなおせって感じ?
猫でもわかる〜あたりを通して読んどけば?

WIN32よくしらんでWTL使うのは無謀すぎると思うケドナー。
0704デフォルトの名無しさん2010/07/29(木) 08:54:49
WTLは、所詮win32使いの道具だからな。
win32知らないのにわざわざWTL使うなんてメリットないよ。
0705デフォルトの名無しさん2010/08/15(日) 07:13:14
CSplitterWindowで、垂直のボーダー区切りを水平のボーダーに変換するというか、
CSplitterWindowをCHorSplitterWindowのように変換するにはどのようにすればよいですか?
0706デフォルトの名無しさん2010/08/15(日) 11:57:59
水平垂直の区別ってテンプレート引数で与えてたのか
こりゃめんどくさそうだな
0707デフォルトの名無しさん2010/08/15(日) 12:26:33
二つ作っておいて
切り替えればいいんじゃね?
0708デフォルトの名無しさん2010/08/15(日) 12:38:44
SetParentでいけそう
0709デフォルトの名無しさん2010/08/15(日) 19:22:22
Set Parentってある意味すごい名前だな
07107052010/08/16(月) 22:00:57
遅ればせながら。ご指摘の通り、SetParentを使用してみました。

CSplitterWindowとCHorSplitterWindowの変数を予め定義し、
CSplitterWindowのみ初期化しておき、変更時に

・CSplitterWindowの削除 (DestroyWindow)
・CHorSplitterWindowの作成 (Create)
・スプリッター表示領域の再設定 (m_hWndClient)
・内側のコントロールの親を再設定 (SetParent)
・内側のコントロールの配置設定 (SetSplitterPane)

のような作業をすることで、解決できました。どうもありがとうございました。
0711デフォルトの名無しさん2010/08/17(火) 01:39:14
別にスプリッタ作り直すまでしなくても
単に一方を非表示にするとかZオーダー変えて裏に隠すとかするだけでいいのでは
0712デフォルトの名無しさん2010/08/20(金) 18:20:18
それだとまたスレ違いになるじゃん
0713デフォルトの名無しさん2010/08/23(月) 03:18:32
タブコントロールに子ウィンドウくっつけて、
サブクラス化して、WM_SIZEが来たときに子ウィンドウのサイズをタブにあわせて変更しているんですが、
その後本来のコールバック関数を呼ぶと、
タブの位置関係が変わった際にタブウィンドウが再描画された上に、
子ウィンドウが再描画されず隠れてしまいます。

タブコントロール自体のサイズ変更を
WTLのCDialogResizeで行っているため、
タブコントロールをサイズ変更した後にWM_SIZEを捕まえられないのですが、
何か上手い解決方法はありませんでしょうか?
(CDialogResize使わないというのは置いといて…)
07147132010/08/23(月) 03:40:06
補足なのですが、
タブコントロールのWM_PAINTひろって、子ウィンドウにInvalidate投げても、
子ウィンドウのスクロールバーだけ描画されません。
0715デフォルトの名無しさん2010/08/23(月) 19:33:09
WS_CLIPCHILDREN
0716デフォルトの名無しさん2010/08/23(月) 19:52:31
つかタブページのウィンドウって普通タブの子じゃなくてタブの兄弟ウィンドウとして
作るんじゃなかったっけ?

>>714
スクロールバーはクライアント領域に含まれないので
再描画を強制したいならInvalidateじゃなくRDW_FRAMEを指定してRedrawWindowを呼ぶ
07177132010/08/24(火) 04:57:59
>>715
!!!
WS_CLIPCHILDRENとかWS_CLIPSIBLINGSの存在忘れてました!
…なぜにリソースエディタのプロパティのところで選択できないのか…

>>716
確かにだいたいのサンプルではタブの兄弟ウィンドウで書いてあるのですが…
タブが親ウィンドウいっぱいいっぱいでない場合は、
AdjustRectした後、タブのクライアント座標から、親ウィンドウのクライアント座標に変換しなきゃなので
めんどくさいような…?


いじっていて気づいたのですが、
OnSizeオーバーライドできないので、CDialogResize継承して
bHandled=FASLEでOnSize抜けるものを作るのは無理だと勝手に勘違いしてましたが、
(BEGIN_MSG_MAPのところの)ProcessWindowMessage関数はCDialogResize内から呼ばれないので、
ここを継承クラスで書き換えれば、CDialogResizeにチェインした後WM_SIZE捕まえられますね…

そんなことせんでも、WS_CLIPCHILDRENですべて解決ですが。
0718デフォルトの名無しさん2010/08/24(火) 05:15:27
よく分からんが解決しましたありがとうございましたってことなん?
07197132010/08/24(火) 05:42:08
>>718
!
一番大事なこと書いてませんでした!


解決しました、ありがとうございました!!
0720デフォルトの名無しさん2010/08/28(土) 00:04:21
もう更新はないのかなあ・・・
0721デフォルトの名無しさん2010/08/28(土) 17:44:51
オープンソースなんだから
おまえが更新してパッチを送ればいいんじゃね?
0722デフォルトの名無しさん2010/08/28(土) 18:02:15
糞酢を混入させるな
0723デフォルトの名無しさん2010/08/29(日) 22:16:54
じゃあviksoeさんに任せとけばいいと思うよ
0724デフォルトの名無しさん2010/10/09(土) 16:09:41
ほしゅ
0725デフォルトの名無しさん2010/10/16(土) 15:58:05
Visual Studio Express 2008/2010 Expressで
WDKのATL7.1とWTL8.1を使用しているのですが
WTLのウィザードで生成したコードで
プロパティのATLの使用の項目が「ATLに動的にリンク」
になっているプロジェクトが生成された場合

stdafx.obj : error LNK2001: 外部シンボル "__forceAtlDllManifest" は未解決です。

というエラーが出てビルドできません。
どうすればATLに動的にリンクした状態でビルドできますか?

ちなみに、生成されたプロジェクトで
プロパティのATLの使用の項目が「ATLを使用しない」
となっている場合はビルドできます。
0726デフォルトの名無しさん2010/10/16(土) 16:30:01
不正利用してるからじゃないの?
0727デフォルトの名無しさん2010/10/16(土) 16:47:08
WDKのATLをVSから使うのはライセンス的には問題ない
0728デフォルトの名無しさん2010/10/17(日) 09:39:58
サンプルをビルドする以外には使ってはだめだっつうの
0729デフォルトの名無しさん2010/10/17(日) 09:51:22
WDK付属のlicense.rtfのどこにそんな記述があるのか具体的によろしく
0730デフォルトの名無しさん2010/10/17(日) 13:33:45
>>728-729
>>639
0731デフォルトの名無しさん2010/10/17(日) 14:08:40
さて、728の言い分を聞こうか。
0732デフォルトの名無しさん2010/10/17(日) 14:51:16
ソースが法律家じゃないようなパンピーのブログとは恐れ入るな
07337252010/10/17(日) 14:56:59
いろいろ調べてみても、ほとんど情報が無くて分からない・・・

Expressだから駄目なんだろうか
0734デフォルトの名無しさん2010/10/17(日) 17:32:28
むしろソースが無でふんぞり返れるのに恐れ入るわw
0735デフォルトの名無しさん2010/10/17(日) 17:40:59
馬鹿にレスするのやめろっての
0736デフォルトの名無しさん2010/10/19(火) 05:16:27
http://www.microsoft.com/japan/whdc/devtools/wdk/RelNotesW7.mspx

2009 年 8 月] ATL のベスト プラクティス - Visual Studio リリースの使用

ATL は、ドライバー用の Windows アプレットを作成する必要のあるドライバー開発者の便宜のために WDK に含まれています。ATL は、この範囲を越えたソフトウェア開発のために使用しないでください。
0737デフォルトの名無しさん2010/10/19(火) 06:49:44
それは正規のライセンス文書じゃないし
どう頑張っても「サンプルをビルドする以外には使ってはだめ」とは読めない
0738デフォルトの名無しさん2010/10/19(火) 07:07:11
もう相手にしてあげなくていいよ。
0739デフォルトの名無しさん2010/10/19(火) 07:11:59
ドライバ作りに使ってくれと書いてあるだけで
サンプル以外ビルドするなとは書いてない。
0740デフォルトの名無しさん2010/10/19(火) 11:14:52
つーかWindowsがバージョンアップした際の追加APIなんて
大概COMで提供してんだから、いい加減ATLくらいWindows SDKに
最新の入れとけよって思うわ
0741デフォルトの名無しさん2010/10/19(火) 12:33:26
なぜ入れてないかを考えろ
金儲けの道具だからだ
0742デフォルトの名無しさん2010/10/31(日) 03:10:03
>732,737
ブログ(>639)に「MSが御社製品のexeやdllをビルドしていただけます、と返答してきた」と
書いてあるじゃないか。
法律専門家もクソも無い。

と激しく遅レス
07437372010/10/31(日) 05:42:58
そのblogの内容は最初から知ってるし、オリジナルのライセンス文書を確認した上で
「サンプルのビルド以外での使用禁止」とかいうアホな主張に突っ込んでたんだが・・・
0744デフォルトの名無しさん2010/10/31(日) 12:31:09
たぶんレス番間違えたとみた。
0745デフォルトの名無しさん2010/10/31(日) 12:54:12
WTLはATLないと使えないんですか?
0746デフォルトの名無しさん2010/10/31(日) 13:02:21
使えません
0747デフォルトの名無しさん2010/11/04(木) 00:59:24
MFC、Win32++を超えるライブラリを作るスレ
http://hibari.2ch.net/test/read.cgi/tech/1286592582/
0748デフォルトの名無しさん2010/11/04(木) 12:54:22
.NETがあるじゃないか!
0749デフォルトの名無しさん2010/12/16(木) 20:27:07
VB6 で使用する ActiveX を 2010 の ATL10.0 で作った方はおられますか?

2010のATLウィザードが吐き出しただけのものをビルド・regsvr32で登録には成功しますが、
VB6 のコンポーネントダイアログからそのActiveXを追加しようとすると、
「"〜\testATL2.dll"を読み込めません」と表示されてしまい追加できません。

2005(ATL8.0)のATLウィザードが吐き出したものでは問題なくVB6に追加できていますし、
そのプロジェクトを2010にアップグレード・ビルドし直したものでも問題ありません。

とりあえず、最後の「2005で作成→プロジェクトを2010にアップグレード」の方法で一応事足りるのですが、
できれば 2010 だけで閉じて開発できれば…と考えています。
このあたりの事情をご存知の方はおられないでしょうか…。
07507492010/12/16(木) 20:28:59
開発環境の情報がなくてすみません。
VisualStudio2005 Standard と
VisualStudio2010 Professional を使用しています。
0751デフォルトの名無しさん2010/12/17(金) 03:46:30
まずVB6を捨てます
0752デフォルトの名無しさん2010/12/17(金) 11:03:48
VB6ってIE1の頃か
07537492010/12/17(金) 13:00:04
>>750
VB6で動くこと、というのはお客さんから提示された条件なので無理です(><)。

>>751
98年リリースらしいのでIE4はあったはず…。
0754デフォルトの名無しさん2010/12/17(金) 18:28:31
「2005のATLウィザードが吐き出したものを2010にアップグレードしたもの」と
「2010のATLウィザードが吐き出しただけのもの」を比較してみては?
0755デフォルトの名無しさん2010/12/19(日) 21:54:36
それにしても、WTLが一切更新されないな

これは、オープンソースにして逆に失敗したパターンだな
マイクロソフトの管理下だったらVisualStudioと共に
毎回更新されていたはず

何でもオープンソースにすりゃ良いってもんじゃないね
0756デフォルトの名無しさん2010/12/19(日) 21:57:29
オープンソースになった直後に溜まりに溜まってたバグが一気に修正されたじゃん
0757デフォルトの名無しさん2010/12/19(日) 22:18:18
バグが溜まってきたらオープンソースで無料修正おいしいですってことか
0758デフォルトの名無しさん2010/12/19(日) 22:27:38
バグって言ってもいずれは修正されただろうし
ずっと更新が無い方が問題だわな
0759デフォルトの名無しさん2010/12/19(日) 22:59:51
リポジトリの方はリボンとか追加されてるんだけどねー
0760デフォルトの名無しさん2010/12/19(日) 23:01:36
WTLはもう完成されてしまったんだよ!

ってまあオープンソースだと意見し辛くなるのはあるかもね。
文句があるならお前がやれって言われそうで。
0761デフォルトの名無しさん2010/12/19(日) 23:10:59
んじゃ、具体的に、どんな機能を追加してほしいの?
0762デフォルトの名無しさん2010/12/20(月) 00:44:16
viksoeスレでやれ
0763デフォルトの名無しさん2010/12/20(月) 07:35:51
>>755
WTLニュースグループで更新予定はあると明言されてる
0764デフォルトの名無しさん2010/12/20(月) 17:08:47
予定はみt
0765デフォルトの名無しさん2010/12/20(月) 17:28:01
>>763
あの記事がポストされてからワクテカで待ってるんだが
全然出る気配がねぇ

実際に出せる段階になったら発表しろ
0766デフォルトの名無しさん2010/12/20(月) 19:10:12
>>765
あれは聞かれたから答えただけだろw
0767デフォルトの名無しさん2010/12/21(火) 03:31:52
Expressバージョンで使えないから出ても使ってあげられませんね
0768デフォルトの名無しさん2011/01/01(土) 14:14:29
なんとなく思ったんだけどBEGIN_MSG_MAPマクロの引数って必要?
おまじない?
0769デフォルトの名無しさん2011/01/01(土) 14:47:02
今は不要だね
0770デフォルトの名無しさん2011/01/01(土) 18:56:17
てことは互換性のためてことかな。
個人的にはコピペするとき楽だからなくなってほしいけど…
0771デフォルトの名無しさん2011/01/02(日) 10:14:39
自分で定義すればいいじゃん
0772デフォルトの名無しさん2011/02/04(金) 08:53:27
マクロの引数自体は無意味だけど、あの書式に則っておくと、
リソースエディタでイベントハンドラを追加した時、あそこへ
メッセージハンドラ用マクロを差し込んでくれる。
0773デフォルトの名無しさん2011/02/13(日) 16:51:49
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/dwm01/index.html
↑のサイトを見ながら、ダイアログをAero化しています。
Buttonについては↑と同じクラスを作ってsubclass化することで、ボタンのみを
AeroGlass化させずできて見栄えも上手くいっていますが、
ダイアログ上のリストビューについては、
http://codepad.org/cVODhOPh
↑のようにボタンと同じやり方をすると、リストに項目を追加した際にリストの背景が真っ黒になってしまいます.
リストの背景色を白いままにするにはどうすればよいでしょうか?
0774デフォルトの名無しさん2011/02/13(日) 18:31:46
ttp://hiragino.blog74.fc2.com/blog-entry-42.html
では、ウィンドウの背景だけを透明化したらどうでしょう?WindowクラスのBackgroundプロパティを透明にすると
その他のコントロールは不透明のままになりましたが、クライアント領域の背景は透明ではなく黒くなってしまいました。
これはクライアント領域の後ろにも黒色のフレームがあり、ウィンドウの背景が透けてそれが見えているようになったためだと思われます。
0775デフォルトの名無しさん2011/02/13(日) 23:16:34
下手にスニーキングするより開き直った方が楽だなw
0776デフォルトの名無しさん2011/02/14(月) 00:08:06
リストボックスやダイアログに対して、以下のように
DWM_BLURBEHIND blur = { DWM_BB_ENABLE | DWM_BB_BLURREGION, TRUE, nullptr, FALSE };
DwmEnableBlurBehindWindow(listBox_, &blur); // リストビューに対して適用
DwmEnableBlurBehindWindow(m_hWnd, &blur); // ダイアログに対して適用
と DwmEnableBlurBehindWindow を適用してみましたが、やはりリストボックスに
項目を追加すると、背景が黒くなってしまいます。
何かいい方法はないでしょうか?
0777デフォルトの名無しさん2011/02/14(月) 01:52:07
DWM_BB_BLURREGION 入れてるのに region ねー
0778デフォルトの名無しさん2011/02/14(月) 02:04:01
NULLを入れると全体が対象になるので、問題ないと思います
0779デフォルトの名無しさん2011/02/14(月) 02:12:10
リストのアイテムにも設定しないといけないんじゃない?
0780デフォルトの名無しさん2011/02/14(月) 02:57:04
リストの各アイテムにウィンドウハンドルがあって、それにも
DwmEnableBlurBehindWindow をするってことでしょうか?
0781デフォルトの名無しさん2011/03/05(土) 03:30:13.23
WTLでRibbonなUIは作れますか
0782デフォルトの名無しさん2011/03/05(土) 08:58:31.22
リポジトリのだと実装されてるね。ちゃんと動くか知らんけど
0783,,・´∀`・,,)っ-○○○2011/03/12(土) 11:50:20.29
CPLとはいえRibbonはMSの特許が絡むから完全に自由には使えないぞ
詳細はOfficeの開発者ライセンスを参照のこと
0784デフォルトの名無しさん2011/03/13(日) 12:18:48.39
Windows 7 には Ribbon の API あるし、
Vista も Platform Update で使えるようになるんじゃなかったかな。
もしそれを利用してるのなら問題ないはず。
Vista より前のOSは動作対象外になるけど。
0785デフォルトの名無しさん2011/03/27(日) 21:42:18.91
_beginthread の引数(スレッド関数の引数)に、CSimpleArray* 渡しても
何か問題が起きたりしないよね??
0786デフォルトの名無しさん2011/03/28(月) 01:27:10.92
フレームウインドウから子ウインドウを作成すると、
「0xC000001E: 無効なロック シーケンスを実行しようとしました」
というメッセージが出てウインドウを作成できない。
子ウインドウは普通のCWindowImpl。
0787デフォルトの名無しさん2011/03/28(月) 11:36:43.96
>>785
C言語の基礎から学ぶべき
0788デフォルトの名無しさん2011/03/28(月) 23:40:48.84
だがC言語の基礎ではスレッドについて学べないな
0789デフォルトの名無しさん2011/04/17(日) 02:12:48.81
しかし、ネタが無いね。
0790 忍法帖【Lv=8,xxxP】 2011/04/18(月) 02:24:36.51
790
0791デフォルトの名無しさん2011/04/18(月) 03:24:40.24
韓国、被災企業の工場移転打診=部品・素材産業の高度化狙い

東日本大震災後、韓国政府が被災で操業停止などに追い込まれた日本企業の工場を
韓国に移転するよう促す案を、日本政府に非公式に打診していたことが17日、明らかになった。
韓国では、主力企業のサムスン電子や現代自動車などを生産面で支える部品・素材産業の
高度化が課題となっており、日本企業誘致のため造成した工業団地への進出を改めて訴えている。
(2011/04/18-02:34)

http://www.jiji.com/jc/eqa?g=eqa&k=2011041700165
0792片山博文MZ2011/04/19(火) 09:15:52.86
フリーでATL風のライブラリ、ない?
0793デフォルトの名無しさん2011/04/19(火) 09:36:46.55
意味不明。
0794デフォルトの名無しさん2011/04/19(火) 11:15:57.78
ATL使えよ・・・
0795デフォルトの名無しさん2011/04/19(火) 21:36:41.41
こういう奴に限って COM じゃなくて CSimpleArray が使いたいだけとか
言い出すんだよな。

まぁ ATL 使えよ。金払え。
0796デフォルトの名無しさん2011/04/19(火) 21:49:25.06
どこかで見たことある名前だと思ったら
MFC風ライブラリ作ってる人だな。
viksoeさん目指して頑張れ

MFC、Win32++を超えるライブラリを作るスレ
http://hibari.2ch.net/test/read.cgi/tech/1286592582/
0797デフォルトの名無しさん2011/04/20(水) 07:38:35.65
>>796
この人いろいろとだめだな…
0798デフォルトの名無しさん2011/04/21(木) 00:40:01.11
>>797
まぁ子供のお遊びレベルだからな
活性化しないム板に子供用砂場が1つくらいあっても誰も文句言うまい
0799片山博文MZ2011/04/25(月) 12:39:09.27
>>796 応援ありがと!
>>797 何が?
>>798 すぐに砂場をディズニーランドにして見せますよ。
0800片山博文MZ2011/04/25(月) 13:22:25.37
ATLに代わるライブラリが存在しないということですか。。。
残念です。
0801デフォルトの名無しさん2011/04/25(月) 14:29:16.06
いや代わりに出したのが.netなんだが。
0802デフォルトの名無しさん2011/04/25(月) 16:00:02.82
wtlは開発終了してるのか
0803デフォルトの名無しさん2011/04/25(月) 18:24:20.92
>>800
馬鹿かおまえ。
0804デフォルトの名無しさん2011/04/26(火) 01:52:12.45
>>802
今は viksoe たんを見守るステータスになってる
0805デフォルトの名無しさん2011/04/26(火) 12:07:04.97
MS自身はWTL使ってるプロジェクトないの?
0806デフォルトの名無しさん2011/05/05(木) 08:30:59.80
XPからできたSetWindowSubclass系を使えば、
サンクいらなくなる?
つかこれdwRefDataはどうやって管理してんだろ?
0807デフォルトの名無しさん2011/05/05(木) 09:30:07.17
いいえ。必要です。
0808デフォルトの名無しさん2011/05/23(月) 14:25:08.57
CDialogResizeでつけたGripの背景色はどうやれば変更できるんでしょうか?
WM_CTLCOLORSCROLLBARは通知されないみたいです
0809デフォルトの名無しさん2011/06/05(日) 21:08:27.49
WTLにはレイアウトマネージャーないの?
0810デフォルトの名無しさん2011/06/05(日) 22:42:17.05
CDialogResizeじゃだめなん?
0811デフォルトの名無しさん2011/06/05(日) 22:45:36.53
>>810
ダイアログ以外にも使えるやつない?
0812デフォルトの名無しさん2011/06/06(月) 12:02:47.17
CWindowImplを継承したビューの中に
CWindowImplを継承した他のビューを表示してるサンプルがあったら教えてくれ。
0813デフォルトの名無しさん2011/06/11(土) 21:06:01.58
CATLMapで
Lookupして最初の一つが見つかった後、続けて同じキーを探す方法がわからんです
どうやったらいいですか?
0814デフォルトの名無しさん2011/06/11(土) 21:19:37.85
1つのキーでは1つの値しか管理できないんじゃないの
0815デフォルトの名無しさん2011/06/11(土) 21:31:51.73
すみません根本的に物凄い勘違いしたかもです><
基本的なとこから見直してきます
0816デフォルトの名無しさん2011/06/12(日) 19:37:49.52
日本語抜平仮名無問題会話施行。
0817デフォルトの名無しさん2011/06/12(日) 19:53:30.40
群馬県高崎市に住む39歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。

とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。

復興支援アニメ.mp4
http://www.youtube.com/watch?v=yn4uTiN8vvM

湾岸鉄道キャンペーンCM(カラー).mp4
http://www.youtube.com/watch?v=g3PlX1OAhug&feature=channel_video_title


これは力作で、にしおかすみこさんにも是非見てもらいたかったため彼女のブログにコメントしたんですが無視されました。
http://blog.watanabepro.co.jp/nishiokasumiko/archives/2008/02/22_15_post_22.html
(下の方にあります。投稿者: hekeneko | 2008年03月24日 22:54)
やはり私の才能に気づいてくれる人は中々いないみたいですね(苦笑)。


題名”ラダニアムの翼”
A wing of radaniam_part�U.mp4
http://www.youtube.com/watch?v=keSK70uqDJY
A wing of radaniamu part_�V.mp4
http://www.youtube.com/watch?v=-LRZbXbirR0

題名”hekeneko honey”
http://www.youtube.com/watch?v=kATwf6fAkG8
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。
0818 忍法帖【Lv=15,xxxPT】 2011/06/17(金) 23:00:32.13
てst
0819デフォルトの名無しさん2011/07/03(日) 15:13:17.68
保守
0820 忍法帖【Lv=8,xxxP】 2011/07/25(月) 22:42:18.30
保守
0821デフォルトの名無しさん2011/07/28(木) 10:53:16.80
WTLってもう終了なのか?
頼みのnenadstefanovicたんも1年以上コミットないし。
bugfixもあるから新版出して欲しいんだけど、見込なしかな?
0822デフォルトの名無しさん2011/07/28(木) 17:39:38.32
みんなレイアウトマネージャなしでどうやって書いてるんだ。
リサイズするたびにウィンドウ内の配置変えてるの?
0823デフォルトの名無しさん2011/07/28(木) 18:18:01.78
ダイアログリサイズとか
0824デフォルトの名無しさん2011/07/28(木) 21:22:12.84
WTLはもう十分な気もする。
今でもまだWTLでゴリゴリ書いてるが、あんまり不便を感じない。
ラピッドデベロップメントではない分、自由だからまだ好き。

>>822
毎回計算してMoveWindow()
面倒な時はスプリッタ
08258222011/07/28(木) 23:50:54.14
そんな感じなのかー
ありがと。
0826デフォルトの名無しさん2011/07/29(金) 15:46:37.97
レイアウトマネージャって内部的にはどういう処理してんの?
設定した領域が変化した時に内側のコントロールを調整する役割を持つ感じ?
0827デフォルトの名無しさん2011/07/30(土) 02:49:48.30
メタクラス
0828 忍法帖【Lv=40,xxxPT】 2011/08/03(水) 22:23:43.26
Vc++ 2010 express で、wtlを使用した
ダイアログアプリを作成しようと
思うのですが
Atlがないので無理ということ
なのでしょうか?

また、
他にダイアログアプリを作る
方法があれば、教えて頂けませんか?

0829デフォルトの名無しさん2011/08/03(水) 22:38:34.71
Win32で書けばよろし。
0830デフォルトの名無しさん2011/08/03(水) 22:41:58.27
Vc++ 2010 express なら ATL/WTL は諦めれ
0831 忍法帖【Lv=40,xxxPT】 2011/08/04(木) 00:49:55.37
分かりました。
0832 忍法帖【Lv=40,xxxPT】 2011/08/04(木) 01:00:06.40
Dxライブラリなるもので
やってみます。
0833デフォルトの名無しさん2011/08/04(木) 17:15:58.62
wdkに付いてるのは使っちゃいけなかったんだっけ
0834デフォルトの名無しさん2011/08/04(木) 19:55:43.74
>>833
>>639
0835デフォルトの名無しさん2011/08/04(木) 22:39:27.78
>>834
>>830
0836 忍法帖【Lv=40,xxxPT】 2011/08/04(木) 23:05:43.49
Vc++ 2010 express で
フリーのリソースエディタを
使うという話がありますが
あれは、vc 2008 standardなどの
Atlを使うということですか?
0837 忍法帖【Lv=40,xxxPT】 2011/08/04(木) 23:30:12.22
リソースエディタって何のために
使うのかな?と思いまして。
0838デフォルトの名無しさん2011/08/04(木) 23:30:17.00
それっぽい単語を適当に並べてみて、質問っぽいことを書いてみました、ってことでOK?
0839デフォルトの名無しさん2011/08/04(木) 23:44:06.16
たんぱく質ばかり食べてると屁が腐る
0840 忍法帖【Lv=40,xxxPT】 2011/08/06(土) 21:12:03.25
かけない?
0841 忍法帖【Lv=40,xxxPT】 2011/08/06(土) 21:14:21.13
>>836
解決した。
ダイアログは、win32で作ることですが、
できるのですね。

0842デフォルトの名無しさん2011/08/26(金) 11:31:41.34
復帰
0843 忍法帖【Lv=40,xxxPT】 2011/08/26(金) 23:46:19.71
なにが?
0844デフォルトの名無しさん2011/09/11(日) 14:07:59.92
WTL Helperの2010版はないんでしょうか
0845デフォルトの名無しさん2011/09/17(土) 08:21:45.88
WTLで作ってるとWPFが使いたくなる。
WPFで作ってるとWTLが使いたくなる。
0846デフォルトの名無しさん2011/09/18(日) 21:49:34.98
グループボックスって、専用のクラスはないのでしょうか?
CGroupBox みたいな名前であるかと思ったのですが、ありませんでした。
0847デフォルトの名無しさん2011/09/18(日) 22:41:29.71
グループボックスって専用クラス作ってまで操作することあったっけ?
0848デフォルトの名無しさん2011/09/19(月) 23:38:13.49
CScrollContainerの縦スクロールだけ使いたいんだけどいい方法ある?
CScrollContainerのリサイズに合わせて子ウィンドウをリサイズするだけだと
一瞬横スクロールバーが見えてしまう。
0849デフォルトの名無しさん2011/09/20(火) 00:56:14.02
試してないけどソース見たら SCRL_DISABLENOSCROLLH なるフラグがあったけど
これは試した?
0850デフォルトの名無しさん2011/09/20(火) 00:57:34.73
ああごめん、これはスクロールバーを常に表示するフラグか
全く逆だった
0851デフォルトの名無しさん2011/09/22(木) 07:58:23.15
WS_VSCROLLで表示したスクロールバーをオーナードローする方法ない?
最終的には全てのコントロールをオーナードローしたいんだが。
0852デフォルトの名無しさん2011/09/22(木) 08:09:54.08
無い
0853デフォルトの名無しさん2011/09/22(木) 09:03:13.67
いつの間にかWTL8.1出てたんだ
0854デフォルトの名無しさん2011/09/22(木) 10:02:38.92
新バージョン出たのか?と思って見に行ったら2年以上前の話じゃねーか
0855デフォルトの名無しさん2011/09/22(木) 11:53:38.43
WTL最新版でリボン使えるっていうから試してみたけどXPじゃつかえないのか。
MFCなら行けなかったっけ。
0856デフォルトの名無しさん2011/09/22(木) 22:06:55.57
CReBarCtrlを使わないで
CCommandBarCtrlをメニューとして表示してるサンプルない?

CReBarCtrlのバグっぽい動作によってグリッパーを消せないでいる。
0857デフォルトの名無しさん2011/10/15(土) 23:05:41.57
WTLで大きめのプログラム作るときどんな設計にしてる?
MVP?MVVM?
0858デフォルトの名無しさん2011/10/18(火) 19:46:45.04
過疎すぎ。
みんなどこいったんだ。
.NETか?WPFか?Qtか?
0859デフォルトの名無しさん2011/10/18(火) 22:11:55.01
>>858
ネタがないだけ。
0860デフォルトの名無しさん2011/10/19(水) 08:56:14.37
ブラウザに埋め込むActiveXコントロールを作るのに、
C++とATL/WTLを使いたいと思っているのですが、
WTLって上記の用途に使えます?
画面自体は簡単なダイアログレベルのものなのですが…。
0861デフォルトの名無しさん2011/10/19(水) 11:54:17.45
>>860
activeXならATLだけでいいんじゃないのかなあ?
作ったことないからよーしらんけど。


自作のWTLソフト、win7までは素直にさくさく動くんだけど
win8dpに入れたら起動が妙にとろい。
まあ、同じWTLのDonutはまあまあだったから
別の問題かもしれないけど。
Atom Z初期型マシンに入れる自分も自分だがw
0862デフォルトの名無しさん2011/10/20(木) 13:12:11.51
>>860
普通に使える
使わない理由がない
0863デフォルトの名無しさん2011/10/21(金) 08:07:39.66
>>861、862
回答有難うございます。
簡単なダイアログ程度ならATLだけでも十分そうですが、
もう少し調べて、判断することに致します。
0864デフォルトの名無しさん2011/10/21(金) 23:47:23.39
CDoubleBufferWindowImplって子ウィンドウまで含めてダブルバッファリングしてくれる?
0865デフォルトの名無しさん2011/10/21(金) 23:49:02.51
してくれるわけがない
0866デフォルトの名無しさん2011/10/22(土) 09:25:25.12
ありがと
0867デフォルトの名無しさん2011/10/22(土) 10:58:10.31
WTLの開発もう完全に詰んでるだろ

はやく開発をMSに戻せ
0868デフォルトの名無しさん2011/10/22(土) 11:00:09.62
はい
0869デフォルトの名無しさん2011/10/22(土) 12:03:33.46
ATLはMSでも開発が滞っていますが
0870デフォルトの名無しさん2011/10/23(日) 00:28:56.66
詰んでるというか完成されたというか
あと何が必要だよ
0871デフォルトの名無しさん2011/10/23(日) 00:47:32.20
>>870
人によってはリボンじゃね?

自分は別にいらんけど。
ぶっちゃけドキュメントもいらない気がした。
0872デフォルトの名無しさん2011/10/23(日) 10:02:48.57
グリッドも欲しくないか?
0873デフォルトの名無しさん2011/10/23(日) 11:38:07.85
完成されてるとか何の冗談だ
まだバグだらけけじゃねーか
0874デフォルトの名無しさん2011/10/27(木) 23:10:34.77
>>856
これは?
You cannot remove RBBS_NOGRIPPER flag from rebar band
http://alax.info/blog/1187
0875デフォルトの名無しさん2011/11/10(木) 21:11:24.51
ウィンドウのサイズを変更してもステータスバーのサイズが自動で変更されないんだけど、
自分でMoveWindowしないといけないの?
0876デフォルトの名無しさん2011/11/10(木) 22:56:46.95
フレームウィンドウのメンバにいれてれば自動
それ以外の普通のステータスバーなら自分で移動
0877デフォルトの名無しさん2011/11/23(水) 11:43:59.88
メニュー系のメッセージハンドラでDestroyMenuが呼ばれるってバグを
1ヶ月ほど前に報告していて人がいたけど、よく今まで気付かれなかったな。
0878デフォルトの名無しさん2011/11/24(木) 18:55:36.45
WTL 8.1.11324
0879デフォルトの名無しさん2011/11/24(木) 23:03:40.36
WTL 8.1.11324 のAppWizardをインストールしたけど
「文字が正しくありません」というスクリプトエラーでプロジェクトファイル作られない・・・
0880デフォルトの名無しさん2011/11/26(土) 10:10:05.03
何変わったんだろ
0881デフォルトの名無しさん2011/12/03(土) 06:59:22.84
何となくC#触ってみたらあまりにも細部まで充実していて泣けてきた
でC++なんて捨ててやろうと思ってWPF勉強してみたけど糞すぎて戻ってきたよ
0882デフォルトの名無しさん2011/12/03(土) 09:59:36.09
細部まで充実ってどんなこと?
0883デフォルトの名無しさん2011/12/03(土) 17:42:55.37
インテリセンスが一番落差があるな
あとはコード内外にしっかりドキュメントがあったり
0884デフォルトの名無しさん2011/12/03(土) 21:59:30.47
WPFじゃなくてWinFormじゃだめだったの?
0885デフォルトの名無しさん2011/12/04(日) 03:04:41.23
WinFormってもうMSから見捨てられてるんでしょ?
0886デフォルトの名無しさん2011/12/04(日) 21:32:32.88
ユーザからは逆にWPFが見放されている。
いつものごとくMSは軌道修正するよ。
0887デフォルトの名無しさん2011/12/04(日) 23:04:38.72
WPFってWinFormのラッパーみたいなもんじゃないの?
0888デフォルトの名無しさん2011/12/04(日) 23:54:55.19
WinFormsはWin32のラッパーだけど
WPFはだいぶ違うよ。
0889デフォルトの名無しさん2011/12/05(月) 12:20:14.83
WPFだと動的にコントロールを生成したりするところで面倒になって投げ出した
0890デフォルトの名無しさん2011/12/05(月) 20:21:45.35
大昔のVBで聞いたような話だな
0891デフォルトの名無しさん2011/12/23(金) 18:23:19.16
so-software見てもWTLのデフォルトテンプレート見ても、
どうもヘッダファイルにロジックをゴリゴリ書いているように見えるんだけど
WTLの流儀ってこういうもん?
なんでこんなところにロジック書くのかよくわからないんだけど
0892,,・´∀`・,,)っ-○○○2011/12/23(金) 18:29:07.48
テンプレートだから。
0893デフォルトの名無しさん2011/12/23(金) 18:29:17.42
yes
0894デフォルトの名無しさん2011/12/23(金) 18:32:47.50
慣れるとcppファイルを使いたくなくなるんだよなぁ。俺だけ?w
0895デフォルトの名無しさん2011/12/23(金) 18:57:48.88
テンプレートクラス作ったことない人なのかな
0896,,・´∀`・,,)っ-○○○2011/12/23(金) 19:13:05.65
C++/CLIの生成するスケルトンもヘッダに実装書いてるぜ
0897デフォルトの名無しさん2011/12/23(金) 20:51:46.90
すげぇこのスレが動いた!!

って、テンプレートクラスって普通ヘッダに実装書くんだ。しらなかった。
なんのためにそんなことしてるんだ?
ロジックを追加するときにどこに書いたらいいかわからないんだ
0898デフォルトの名無しさん2011/12/24(土) 01:32:06.38
>>897
仕様確認してから言え
0899デフォルトの名無しさん2011/12/24(土) 01:39:12.04
>>897
どんだけC++初心者なんだよw
0900デフォルトの名無しさん2011/12/24(土) 01:42:06.30
そこでexportがなんたらかんたら
0901デフォルトの名無しさん2011/12/24(土) 02:18:34.11
コンパイラの都合なんざ無視だぜ!
0902デフォルトの名無しさん2011/12/24(土) 02:18:38.63
でも直接テンプレートになってないあたりは
cppに書くとコンパイル加速装置だお。

...慣れないままいきなり書いたら中途半端な分け方になっちまったぜorz
0903デフォルトの名無しさん2011/12/24(土) 07:25:32.29
今回誰も日本語化しないな

もはや使っている人間がいないのか
まあダウンロード数見ても日本で使ってるの
数十人くらいに思えるw
0904 ◆0uxK91AxII 2011/12/24(土) 07:37:14.26
*.hの最後辺りで、*.cppをinclude
0905デフォルトの名無しさん2011/12/24(土) 10:29:51.15
俺はロジックは全部ヘッダーに書く派だわ
0906,,・´∀`・,,)っ-○○○2011/12/24(土) 13:42:29.15
逆に1ファイル内でしか使わない使い捨てのテンプレートならcpp側に書いちゃうけどね俺は
namespace {
template <int ..> struct hogehoge {...}
};
0907デフォルトの名無しさん2011/12/24(土) 18:35:35.13
複数ファイルで共有しないものはヘッダに書かないってのは基本だろ。
0908デフォルトの名無しさん2011/12/24(土) 18:44:27.45
>>907
Cなら基本だな。C++は知らん
0909デフォルトの名無しさん2011/12/26(月) 07:32:28.38
ヘッダー実装は最近の流行だよ
0910デフォルトの名無しさん2011/12/26(月) 10:57:29.20
悪い流れを断ち切りたい
0911デフォルトの名無しさん2011/12/26(月) 19:24:42.07
何故ヘッダー実装が悪いのか分からん
0912デフォルトの名無しさん2011/12/26(月) 19:29:30.99
C言語を引きずってるとヘッダー実装は悪く感じない?
0913デフォルトの名無しさん2011/12/26(月) 21:01:44.09
>>911
依存度が必要以上に増えちゃうから

インクルードするインターフェースに依存するだけですむはずのところが
実装にも依存してしまうから

でしょう
0914デフォルトの名無しさん2011/12/26(月) 23:07:59.71
でも最近の言語ってヘッダと実装わかれてないよね
0915デフォルトの名無しさん2011/12/26(月) 23:14:46.85
もともとコンパイラが馬鹿なのを人間に押し付けただけだから
0916デフォルトの名無しさん2011/12/26(月) 23:15:59.13
言語仕様でいうならCの時代から別れてなんてないよ
0917デフォルトの名無しさん2011/12/26(月) 23:51:14.70
おい誰か早く最新版を日本語化してくれよ!
0918デフォルトの名無しさん2011/12/27(火) 13:11:16.43
>>911
だってコンパイル重いじゃん。。。
別に10分かかるわけじゃないけど。
0919デフォルトの名無しさん2011/12/27(火) 13:39:53.56
昔はヘッダファイル開けば、実装されてる関数の定義が羅列されてるだけだったから
関数の名前と引数見れば一瞬でどんなのが用意されていてどう使えばいいかが分かったけど

今はヘッダーに実装までされてるから一覧として見難いんだよな。他人のソース見る
ときはそれが嫌。cppに実装してくれと思う。
自分で実装するときはヘッダーにゴリゴリ書くがなwww
0920デフォルトの名無しさん2011/12/27(火) 20:04:43.95
>>919
逆にhとcppの2つのファイルを巡るのがダルイ
ま、一覧としては見づらいのは確かにある
0921デフォルトの名無しさん2011/12/27(火) 20:21:27.77
>>917
ほらよ
http://www.usefullcode.net
0922デフォルトの名無しさん2011/12/27(火) 21:00:32.74
>>919
IDEが一覧を抽出してくれる
0923デフォルトの名無しさん2011/12/27(火) 22:25:18.94
>>921
そのサイト毎日チェックしてたのに
よりによって今日出したのかwww

そことRaptは毎日チェックしてたが
これでその仕事から解放されるおwww
0924デフォルトの名無しさん2011/12/28(水) 02:06:10.19
WTLでリボン使えるようになってたのか
幅が広がるのはありがたいが、いらねーw
0925デフォルトの名無しさん2011/12/28(水) 07:50:50.08
プログラマなのにRSS購読知らない奴おるん?
0926デフォルトの名無しさん2011/12/28(水) 08:02:17.49
RSS購読とか情弱しか使わんて
0927デフォルトの名無しさん2011/12/28(水) 12:16:14.37
ねっとさーふぃんが楽しいのだ
0928デフォルトの名無しさん2011/12/28(水) 12:25:29.08
俺も情弱だからRSSとか使わないな
IDEの各種機能もほぼ使わない。VSだとクラスとか関数一覧からじゃなくて、ファイル一覧からソース開いてるしw
0929デフォルトの名無しさん2011/12/28(水) 12:39:43.52
今でもprintfデバッグが主力です。
0930デフォルトの名無しさん2011/12/28(水) 12:55:10.29
俺もRSSって一度も使ったことがないな
周りでも使ってる人見たこと無いんだが、どこで使われてるのか

ところで、ATLを使用しないWTLって開発されてたと思うんだが
今どうなってるか分かる人いる?
もしくは、どこで開発情報を手に入れられる?
0931デフォルトの名無しさん2011/12/28(水) 13:09:30.34
>>930
今はこっちのURLなのかな?試したらレポよろ
ttps://www.ohloh.net/p/wtl-plus


276: デフォルトの名無しさん 2008/09/21(日) 18:54:22 [sage]
ATLを使わないWTLってどこにあんの?
あるなら欲しいな。

278: デフォルトの名無しさん 2008/09/21(日) 20:57:43 [sage]
>>276
探せばいろいろ出てきそうではあるが一例

WTL++
ttp://code.google.com/p/wtl-plus/

WTL++ is not based on MFC, ATL or WTL.

これは一人でやってるぽい?ついさっき更新されてた
0932デフォルトの名無しさん2011/12/28(水) 13:37:10.46
>>931
試す以前にソースが無いw
0933デフォルトの名無しさん2011/12/28(水) 13:52:37.50
>>932
ほんとだ。わろたw
setup.exeからインストールするのか?怖くて試してないがこっちはどうかな?
ttp://en.pudn.com/downloads205/sourcecode/windows/control/detail966991_en.html
0934デフォルトの名無しさん2011/12/28(水) 15:44:45.65
俺もRSSって一度も使ったことがない
0935デフォルトの名無しさん2011/12/28(水) 16:15:03.53
>>929
せめてトレースポイント使おうぜ
0936デフォルトの名無しさん2012/01/01(日) 11:29:45.62
WTLのGetSystemSettingsってのは何をしているのか教えてくれないか?
0937デフォルトの名無しさん2012/01/01(日) 13:12:34.52
ソース読め。全部書いてあるんだから。
0938デフォルトの名無しさん2012/01/01(日) 17:05:51.64
>>937
お前も不親切な奴だなー。知ってるなら教えてやれよw
俺が見つけたところのGetSystemSettingsはレイアウト調整用にGetSystemMetrics呼び出してメンバーに値いれてる。
詳しくはソース読めwww

GetSystemSettingsなんて名前だからシステム設定を呼び出せるようにラッパーしてある関数だと思ったけど何にも使え
なさそうだな
0939デフォルトの名無しさん2012/01/01(日) 18:12:42.85
win32知らないのにWTL使うメリットなんてなかろう。
0940デフォルトの名無しさん2012/01/13(金) 00:40:37.80
4,5年ぶりに昔書いたコードみたら全然読めなくなっててわろた
久々に作りかけのアプリ開発再開しようと思ったが挫折しそうになったが
一カ月ほど掛かったがやっとカンを取り戻せてきた
0941デフォルトの名無しさん2012/01/13(金) 00:42:16.91
>>940
> 4,5年ぶりに昔書いたコードみたら全然読めなくなっててわろた
そんなん滅茶苦茶あたりまえ
自分のコードが他人のコードに思えるのには6ヶ月で十分
0942デフォルトの名無しさん2012/01/13(金) 00:56:10.70
>>941
読み始めたときは昔のオレすげーて思て衰えを感じたが
読めるようになってくると、なぜもっとコメント書かぬのだと憤慨する
0943デフォルトの名無しさん2012/01/13(金) 01:00:37.36
>>942
それ、ものっ凄い普通
つまり、ものっ凄い普通
30歳台かの?
0944デフォルトの名無しさん2012/01/13(金) 01:06:11.49
>>943
はい
ただやっぱり色々考えるようになったが、開発スピードは落ちたのは実感する
悲しいことに部品作ってるときが今一番しあわせかも
0945デフォルトの名無しさん2012/01/13(金) 01:16:32.73
>>944
スピード落ちたような気がするのは色々なことに気が回るからじゃ
総合的にかかる時間つまりスピードは向上しておる

部品作りは楽しいものじゃ
外的要因が少なく理想に近付けるから

午前の4時間は20歳台のアホを育成することに努力し
何れはあ自分が好きなことをできるように

午後の4時間は(午前の部が完璧にこなせれば)好きなことに努力

これが理想だがのう。
0946デフォルトの名無しさん2012/01/13(金) 01:25:38.99
>>942
>読み始めたときは昔のオレすげーて思て衰えを感じたが
あるあるw

俺も久々にWTLさわったら昔ながらのハンガリアン記法にうっ!となったわ。
0947デフォルトの名無しさん2012/01/13(金) 01:25:50.86
>>945
なるほど
勇気が湧いてきた
0948デフォルトの名無しさん2012/01/13(金) 01:33:43.30
>>945

仕事でやる開発は何故こんなにもツマラナイものなのか
外部要因が多すぎて、調整と説明説得で精神が削り取られるだけ

昔は自分が作ったものを使ってもらえる喜びがあったが
今じゃ、そんなこと手でやれよと思うぐらいつまらない


0949デフォルトの名無しさん2012/01/13(金) 01:41:18.80
自作の便利なテンプレートクラス/ライブラリの評論会やろうよ
0950デフォルトの名無しさん2012/01/13(金) 06:38:05.04
言い出しっぺの
0951デフォルトの名無しさん2012/01/13(金) 08:05:24.42
実が出た
0952デフォルトの名無しさん2012/02/05(日) 23:22:42.02
HTMLページビューでアプリケーション内で作成したhtmlドキュメントを
表示させたいのですがそういう方法ってあるのでしょうか?
それとも一度ローカルにファイル保存しないとだめでしょうか
0953デフォルトの名無しさん2012/02/05(日) 23:29:06.65
QueryControlでIWebBrowser2を取得して
IWebBrowser2からget_DocumentでIHTMLDocument2を取得して
IHTMLDocument2.writeでhtmlを流し込む
0954デフォルトの名無しさん2012/02/05(日) 23:47:58.49
ありがとうございます!
0955デフォルトの名無しさん2012/02/07(火) 06:58:13.53
すみませんまだだめでした
get_DocumentでIHTMLDocument2を取得する際に必ず失敗します
なにか手順とかあるんでしょうか
0956デフォルトの名無しさん2012/02/07(火) 08:15:16.82
CComPtr<IDispatch> pDisp;
IWebBrowser2->get_Document(&pDisp);
CComQIPtr<IHTMLDocument2> spDocument(pDisp);
0957デフォルトの名無しさん2012/02/07(火) 18:45:08.09
>>956
なんどもすみません
そのコードだとget_DocumentがS_FAILEになってしまいます。
書いたコードは以下のとおりです

INT_PTR CAddToMyListWindow::OnCreate(LPCREATESTRUCT lpCreateStruct){
LRESULT lRet = DefWindowProc();

HRESULT hRet = QueryControl(&m_pWB2);
if(SUCCEEDED(hRet)){
DispEventAdvise(m_pWB2, &DIID_DWebBrowserEvents2);
}



CComPtr<IDispatch> pDisp;
HRESULT dRet = m_pWB2->get_Document(&pDisp); //<-S_FAILEになる
CComQIPtr<IHTMLDocument2> spDocument(pDisp);


return lRet;
}
0958デフォルトの名無しさん2012/02/07(火) 18:50:22.71
>>957
IEコントロールが作成された時点ではまだドキュメントは作られてないんだから当たり前
DocumentCompleteまで待たないと
0959デフォルトの名無しさん2012/02/07(火) 19:02:14.07
ウィザードの自動生成により、コマンドバーを利用しています。
標準の状態だと、コマンドバー(ReBar付きのメニューバー)のトップレベルアイテムがフラットな色で描画されてますが
これをfoobar2000のコマンドバーみたいにシステム標準の雰囲気にしたいです。方法を教えて下さい。よろしくお願いします。

ttp://i42.tinypic.com/x2rk0m.png
ttp://i43.tinypic.com/x4rsja.png
0960デフォルトの名無しさん2012/02/07(火) 19:07:26.19
>>958
どこにもアクセスしていない状態でやるなら
一度ダミーのURLかhtmlファイルにアクセスしないといけないということでしょうか。
なんとなく無駄な処理をしているような気がして腑に落ちない気もしますが・・・
0961デフォルトの名無しさん2012/02/07(火) 19:27:42.03
>>959
簡単な方法はない
自分ででコマンドバー弄れ

>>960
about:blank開けばいい
0962デフォルトの名無しさん2012/02/07(火) 19:29:39.64
>>960
ダミーURLとかabout:blankアクセスしたときもDocumentCompleteまたないとダメ
面倒だけどそういうもんだと思って割り切らないとIEはいじれない
0963デフォルトの名無しさん2012/02/07(火) 19:39:28.51
>>961,>>962
ありがとうございます。これで作業が進められそうです
0964デフォルトの名無しさん2012/02/07(火) 22:50:02.08
Webで公開されている、javascriptで開けれる小窓をCookie指定してあげて
開きたいのですが、出来ますでしょうか?
厄介なのはIEコンポーネントが元から持っているCookieの値を消して新たに独自で定義したCookieを指定してあげたいのですが、
どうもNavigateやOnBeforeNavigateのリファレンスを見てもヘッダーをいじれるのは自分でついかしたもののみみたいなんです。
コンポーネントが元から持ってきたヘッダ情報をいじるのは無理なんでしょうか。
0965デフォルトの名無しさん2012/02/07(火) 22:55:13.35
マルチするようなやつには無理
09669592012/02/07(火) 23:15:18.62
>>961
具体的にはどういう処理が必要になるのでしょうか?
0967デフォルトの名無しさん2012/02/07(火) 23:30:41.76
>>965
なんだ見てる人いたのか
0968デフォルトの名無しさん2012/02/07(火) 23:39:03.94
>>966
CCommandBarCtrlImplを継承したクラスを作成して
DrawItemをオーバーライドする
09699592012/02/08(水) 00:08:57.58
>>968
レスありがとうです
ちょっとチャレンジしてきます
0970デフォルトの名無しさん2012/02/08(水) 00:21:02.63
>>969
ごめんDrawItemじゃ無理だった
直接CCommandBarCtrlImplのOnParentCustomDrawを書き換えればいける
それか
NOTIFY_CODE_HANDLER(NM_CUSTOMDRAW, OnParentCustomDraw)
をコメントアウトするだけでも大丈夫かも
09719592012/02/08(水) 00:58:41.67
>>970
レスありがとうです
CustomDrawに入り込む寸前でヘッダとにらめっこしてみた所、
m_bFlatMeusという怪しい変数を見つけまして
m_CmdBar.Create(....)の次の行に
m_CmdBar.m_bFlatMenus = false;
と追加した所、すんなりと目的を達成することができました。
良かったら>>970さんも試してみて下さい。
一緒に奮闘してくれてありがとうございました。
0972デフォルトの名無しさん2012/02/21(火) 20:11:34.81
前任者がWTLで作ったプログラムがあるんだが
見た目をかっこ良くしろと言われた。
なんか簡単にかっこ良くする方法ない?
0973デフォルトの名無しさん2012/02/21(火) 20:27:35.55
>>972
たまにこういうこといい出すやついるよな。ご愁傷さま。
がんばってオーナードローしてもやればやるほどダサくなるしwww
0974デフォルトの名無しさん2012/02/21(火) 20:33:41.51
>>973
マジで困ってる。
結構巨大なプログラムなんで全部オーナードローは厳しい。
最初はXPスタイルも適用されてなかったから適用して見せたんだが
「エクセルみたいにならない?」
0975デフォルトの名無しさん2012/02/21(火) 20:38:09.51
つまりリボンインターフェイスにしろって事?
0976デフォルトの名無しさん2012/02/21(火) 20:46:16.53
リボンだとしたら最新のWTLでプロジェクト作ってそこに既存のコードコピペでやれば簡単にできるよな。
面倒だが・・・
どうしてかっこ良くする必要が生じたのかわからないが、気分的に見た目がーっていうなら、作業する
ことで新たなバグを生み出す危険性を言って諦めてもらうのがいいと思うな
0977デフォルトの名無しさん2012/02/21(火) 20:54:30.33
でもリボンにするだけなら簡単だから
それですむならまだマシじゃね?
0978デフォルトの名無しさん2012/02/21(火) 21:12:32.75
>>974
エクセルがかっこ良いってのも凄い感性だw
0979デフォルトの名無しさん2012/02/21(火) 21:13:12.17
ああもうリボン対応してたのか。
とりあえずリボンにしてみるわ。
サンクス。
0980デフォルトの名無しさん2012/02/21(火) 21:13:16.08
WTLのリボンサポートってVista以降専用じゃなかったっけ
0981デフォルトの名無しさん2012/02/21(火) 21:14:42.02
まじかようちまだ90%以上がXPだよ
0982デフォルトの名無しさん2012/02/21(火) 21:28:15.59
なんでVista以降なんだろうな。
OfficeはXPでもリボンだよな?
0983デフォルトの名無しさん2012/02/21(火) 21:42:22.11
Vista以降に搭載されてるOSのリボンサポート使ってるから
0984デフォルトの名無しさん2012/02/21(火) 21:56:45.38
ってことはMFCのほうは独自でリボン持ってるのか。
0985デフォルトの名無しさん2012/02/21(火) 22:24:13.40
>>980踏んでたので新スレ

ATL/WTL Part7
http://toro.2ch.net/test/read.cgi/tech/1329830536/
0986デフォルトの名無しさん2012/02/21(火) 22:29:34.10
おつ
0987デフォルトの名無しさん2012/02/22(水) 00:46:40.50
>>984
MFCのリボンは、Office Fluent UI ライセンスだった気がする
0988デフォルトの名無しさん2012/02/22(水) 19:36:39.99
>>985 乙

>>987
別ライセンスってことは
自社開発じゃなくてどっかから買ってるのかな。
0989デフォルトの名無しさん2012/02/23(木) 13:07:24.30
-
0990デフォルトの名無しさん2012/02/23(木) 14:12:06.43
=
0991デフォルトの名無しさん2012/02/23(木) 16:53:52.09
≡
0992デフォルトの名無しさん2012/02/23(木) 17:36:41.28
#
0993デフォルトの名無しさん2012/02/23(木) 18:30:08.57
丼
0994デフォルトの名無しさん2012/02/23(木) 19:01:16.48
ウィザードからタブベースを選択して作っただけのプロジェクトがあります。
多段タブにしたいと思い、(CTabView)m_viewのCreate時にTCS_MULTILINEを指定したのですが、何の変化もありませんでした。
ちなみに、指定したフラグです→ TCS_MULTILINE | TCS_RIGHTJUSTIFY | TCS_TABS | WS_CHILD | WS_CLIPSIBLINGS | WS_OVERLAPPED | WS_VISIBLE
次の行にm_view.ModifyStyle(0, TCS_MULTILINE);とかやっても変わりませんでした。
CTabViewを多段にする方法を教えてください。
0995デフォルトの名無しさん2012/02/23(木) 19:16:06.57
>>994
m_view.m_tabが実際のタブコントロールだからそっちにスタイル指定しなきゃだめ。
2段になるとビューサイズ位置の調整とかが必要になる?からCTabView派生のクラス作ってやらないと
うまく動かないと思う。
0996デフォルトの名無しさん2012/02/23(木) 19:37:26.35
>>995
ありがとうございます。
m_view.m_tabに指定したら多段になりました。
しかし、Viewの領域が多段に対応してないようなので、もう少し粘ってみます。
つまづいたらまたよろしくです。
0997デフォルトの名無しさん2012/02/23(木) 19:41:25.14
>>996
atlctrlx.h見てみたけど、m_tab.Create が呼ばれてるのは CreateTabControl() で、
これは OnCreate から pT->CreateTabControl() と呼ばれているから派生クラスで再定義できる

あとクライアントの位置調整は CalcTabHeight() で実装されていて
これも再定義できるみたいだから上手くやればいけるかも知れない
0998デフォルトの名無しさん2012/02/23(木) 19:50:03.00
もうちょっと見てみたけどどうやら CalcTabHeight は最初に一度しか呼ばれないらしく
動的な変化には対応してないっぽい

UpdateLayout() あたりを再定義すればやれるかも知れないけど
ある程度ロジックの追加が必要になりそう
0999デフォルトの名無しさん2012/02/23(木) 21:04:28.82
ソース見てたのですが頭がこんがらがってきてしまいました…
本当に凄いんですね…
1000デフォルトの名無しさん2012/02/23(木) 21:24:24.82
       〈 ̄ヽ             |
 ,、____|  |____,、       |
〈  _________ ヽ,     |   /   ヽ
 | |             | |.      |、  .り    l
 ヽ'  〈^ー―――^ 〉   |/      dく\ しl   ノ
    ,、二二二二二_、         | \ン⌒⌒⌒i
   〈__  _  __〉        r-、/      l
      |  |  |  |.           (⌒ ,.イ      l
     / /  |  |    |\.      ~|~ ノ      l
 ___/ /  |  |___| ヽ.     | ̄ノ       l
 \__/   ヽ_____)     |  (       l
                       |  (______)
───────────────-┘ l ヾ    ,イ ̄
                         l  ヾ〜/)\
                    ,,〜ー、 l   ハ  `l\
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。