ATL/WTL Part3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG(Part1)ATL/WTL
http://piza.2ch.net/test/read.cgi/tech/978029639/
この後なぜか分離
(Part2-1)ATL 相談室
http://pc5.2ch.net/test/read.cgi/tech/1029029882/
(Part2-2)WTLお勉強スレッド
http://pc5.2ch.net/test/read.cgi/tech/1078150663/
WTLの最新版↓
http://sourceforge.net/projects/wtl/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGついでにあっちの削除依頼出してこい
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGThe So-Software Stdio
ttp://home.att.ne.jp/banana/akatsuki/top/main.html
0006デフォルトの名無しさん
NGNG00075
NGNGいきなり意味不明な荒らしが来たと思ったが、
自分がstudioをstdioと誤記したことを、ほのめかしてたわけだな。
そんなわけで訂正。
The So-Software Stdio
↓
The So-Software Studio
0008デフォルトの名無しさん
NGNGttp://home.att.ne.jp/banana/akatsuki/
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGわからなかったからってムキになるなよ
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015関連サイト
NGNGttp://home.att.ne.jp/banana/akatsuki/
WTL研究所
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL.htm
Windows Template Libraryの概要
ttp://www.mars.dti.ne.jp/~kattoshi/Program/
WTL support list
ttp://groups.yahoo.com/group/wtl/
The Code Project - WTL
ttp://www.codeproject.com/wtl/
viksoe
ttp://www.viksoe.dk/code/
MSDNのATLウィンドウクラス概要
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_atl_ATL_Window_Classes.asp
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGhttp://www.lightship.co.jp/FileVisor6/help/overview/newfeature.htm
0018デフォルトの名無しさん
NGNGなんつーかソース公開されてるならともかくそれだけ見せられても・・・
0019デフォルトの名無しさん
NGNGVirtual Truth Lab.
ttp://lamoo.s53.xrea.com/
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGDonut
ttp://www.tigercrown.co.jp/cakeland/etc_story/recipe/page13.htm
0023デフォルトの名無しさん
NGNGここは知らなかった!
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGURLがエロサイトっぽいから敬遠してたよ。
0026デフォルトの名無しさん
NGNGワロタ
漏れもそう思った。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGここも知らなかった!
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGヴァカがいっぱいおる
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGこれってさあ、あからさまに>>19の中の
ttp://lamoo.s53.xrea.com/develop/wtl/wtl.html
のパクリだよな・・・
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG自分が挫折しただけだろ w
0038デフォルトの名無しさん
NGNG・「MFCに慣れていてAPIあまり知らないけど、MFCから離脱してみたい。」
WTL使いは、この2つのグループに分けられます。
あなたはどっち?
0039デフォルトの名無しさん
NGNG・「MFCもAPIも慣れてるけど、APIより楽できてMFCより軽量なのが欲しい。」
0040デフォルトの名無しさん
NGNGオレオレ
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG変な人だね
0046デフォルトの名無しさん
NGNGぶっちゃけ、メンテじゃない。
不具合箇所を発見しても手が入れられない。実に虚しい。
プログラマが止むに止まれずMFCコードをAPIラッパへと移植する哀しい作業が待っているのである。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGたくさんあったらそもそも使ってない。極、稀に見かけるだけだよ。
WinInetとか。こういう場合、使わないという解決策しかない。
0050デフォルトの名無しさん
NGNG誰も使ってないんだろうな。
0051デフォルトの名無しさん
NGNGでもATLのHttp系クラス(名前忘れた)にもバグがあったんじゃなかったっけ?
とWTL方向に話を戻してみる。
0052デフォルトの名無しさん
NGNG原因はGetAddrInfoW()を呼び出すから。
これが原因でCSocketAddrを使用するCSocket等もエラーを起こす。
MSに文句を言ったら修正版を送ってきた。VC7.1の話。
0053デフォルトの名無しさん
NGNGhttp://www.viksoe.dk/code/imagelistbox.htm
ここにあるImageListBoxコントロールをダイアログに貼り付けて
みました。表示までできたけどもクリックしたときの
メッセージハンドラのつけかたがわからんのです。
BEGIN_MSG_MAP_EX( CMainDlg )
NOTIFY_HANDLER( IDC_MENU_LIST, LBN_SETFOCUS, OnMenuSelect)
・・
ではだめなのかなぁ?
005453
NGNGどうすれば直せるのかわからんです・・。orz
すまん、知恵くれ。たのむ。
0055デフォルトの名無しさん
NGNGCOMMAND_HANDLER_EX( IDC_MENU_LIST, LBN_SELCHANGE, OnMenuSelect)
ってことでした。
0056デフォルトの名無しさん
NGNG日本語フォントをSetFontすればいいんでねーか?
0057デフォルトの名無しさん
NGNG005854
NGNGうまくいった。thanx
0059デフォルトの名無しさん
NGNG修正版が送られてきたってことは、
VC開発陣が不具合を既に知ってて修正コードも作ってたってことだね。
006052
NGNGいや。ウィザードが吐いたWebサービスにアクセスするためのクラスを使うと
エラーを起こすから俺がMSに文句を言ったんだけど、
最初はなかなか原因が判明せず、何回かやりとりしてやっと原因が明らかになった。
だから修正コードを作ってくれたのはその後。
0061デフォルトの名無しさん
NGNG実装は全てヘッダに書いて、インライン展開するかどうかコンパイラに任せるのが
ナウなヤングにバカウケなのでしょうか?
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGそれくらい自分で判断すれば?
0065デフォルトの名無しさん
NGNGナウなヤングにバカウケなのかを聞いてるだけだろ。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGそれぐらい自分で判断すれば?
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG即座にヘッダーにコピペしてプロジェクトに導入できると思うが、
試行錯誤して頻繁に内容を変更するコードの場合、
ヘッダーで全部済ますのはかなり不便だね。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGちょろっと試す時のお気楽さのためなんじゃないかと思う。
ちょっとしたテストではない規模のプログラムでは、
末端のクラスまですべてがヘッダだけから出来ているとどんなメリットがあるのだろう。
0075デフォルトの名無しさん
NGNG>ちょろっと試す時のお気楽さのためなんじゃないかと思う。
馬鹿再来だな。
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGちょっと試すのにヘッダだけで完結してる方がよさそうに見えるけど。
コンパイル負荷が問題になるほど大きなプログラムを
ちょっと試す程度で書けるの?
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGUINT cb1 = 0;
if (pidl1 != NULL) // May be NULL
cb1 = GetSize(pidl1) - sizeof(pidl1->mkid.cb);
で、ITEMIDLISTの最後の2バイトNULLを引くためなら単純に2を引けばいいと思うんだけど、
わざわざsizeof(pidl1->mkid.cb)としてるのはなぜ?
0085デフォルトの名無しさん
NGNGマジックナンバーを使いたくない
0086デフォルトの名無しさん
NGNGそれはわかるんだけど、なぜcbを指定してるの?
ITEMIDLISTの最後はcbのサイズ分だけNULLで埋める、って決まりある?
それともたまたまcbがUSHORTで2バイトだってだけの理由で使ってるの?
0087デフォルトの名無しさん
NGNGhttp://homepage1.nifty.com/Roy_/Software/WTL/WTL_Lecture06.htm
↑のソースもcbを基準にしてるんだよなぁ。
0088デフォルトの名無しさん
NGNGITEMIDLISTはmkid.cbが0のデータがあればそれを終端子とみなしてる。
つまり、ITEMIDLISTの最後のデータはmkid.cbの2byteだけかつ0の値。
で、pidl1とpidl2両方GetSizeしてるが、GetSizeは終端子2byteのサイズを含めて計算する。
pidl1とpidl2二つ分の終端子は必要ないから、前者の終端子分サイズを詰めてる。
つまり、
cb1 = GetSize(pidl1) - sizeof(pidl1->mkid.cb); // ( pidl1のサイズ + 終端子サイズ ) - 終端子サイズ
cb2 = GetSize(pidl2); // ( pidl2のサイズ + 終端子サイズ )
::CoTaskMemAlloc(cb1 + cb2); // (pidl1のサイズ + pidl2のサイズ + 終端子サイズ
0089デフォルトの名無しさん
NGNGMSDN の The Shell Namespace ていうやつを読んでみてください。
真ん中くらいに図があるんだけど、それが「2Byte-NULL」で終わってる
その下の辺りに2 Byte の NULL で埋めろって書いてあるよ
以下引用
PIDLs
For the Shell application programming interface (API),
namespace objects are usually identified by a pointer to their
ITEMIDLIST structure, or pointer to an item identifier list (PIDL).
For convenience, the term PIDL will generally refer in this
documentation to the structure itself rather than the pointer to it.
The PIDL shown in the preceding illustration is referred to as a full,
or absolute, PIDL. A full PIDL starts from the desktop, and contains
the item IDs of all intermediate folders in the path. It ends with
the object's item ID followed by a terminating two-byte NULL. A full
PIDL is similar to a fully qualified path and uniquely identifies
the object in the Shell namespace.
0090デフォルトの名無しさん
NGNGってのも変な気がする。
cb==0でabIDが無い(サイズ0)のITEMIDLISTで終わる
というのが素直な考え方だと思う。
0091デフォルトの名無しさん
NGNGいや、ITEMIDLISTの終端は2バイトのNULLだってのもわかってるし、
>>84がその2バイト(cb=USHORT=2バイト)のNULLを省くコードだってのもわかってる。
>つまり、ITEMIDLISTの最後のデータはmkid.cbの2byteだけかつ0の値。
MSDNに書いてるのは「2バイトNULL」であって、「cbの分」とは書いてないと思うんだけど?
MSDNに「cbと同じサイズのNULL」とでも書いてあればわかるんだけど、
読む限り終端の2バイトNULLとcbの関係については書いてないと思う。
で、改めてソース見てると
while (pidl->mkid.cb != NULL){
cbTotal += pidl->mkid.cb;
pidl = Next(pidl);
}
とかあるので、ポインタが終端の2バイトNULLの部分にいっても
SHITEMIDと同じように扱うためかなと思った。
つまり>>90が書いてるように
ITEMIDLISTの終端NULL = abIDがないSHITEMID
として扱うために終端はcbと同じサイズなのかなと。
これ正式にMSDNには書いてないよね?ただのtwo-byte NULLだけで。
0092デフォルトの名無しさん
NGNGcb のサイズが2バイトだったからというほうが自然だろうな。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGいままさに、それにはまってます。
http://support.microsoft.com/default.aspx?scid=kb;JA;822334
unicodeビルドでWS2_32.dll内にFreeAddrInfoWがみつからんと言われてしまう。
どこかにアップデータとかあるのでしょか?
何か情報あればご教授いただきたく思います。
よろしくお願いいたします。
0095デフォルトの名無しさん
NGNGここにアップしとくよ。
http://tmp.servequake.com/up/atlfix.zip
どっか適当なディレクトリを作ってそこに解凍して、
環境設定でそのパスを「インクルードファイル」ディレクトリの
高順位に設定しておけばOK。
0096デフォルトの名無しさん
NGNGありがとうございました。
試してみたいと思います。
他の人たちはこまってないのかな。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGウィルスをアップしないでください。
0099デフォルトの名無しさん
NGNGありがとう。俺も悩んでいた。助かった。
>>97
目をつぶってね。
>>98
何か警告でもでたの?
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG>>98
>>100
意味が分かりません
0102デフォルトの名無しさん
NGNGつまり、やってることは著作権保護法違反ってやつだ。
ま、自己責任で使う分にはMSも黙認してくれるだろーが。
0103デフォルトの名無しさん
NGNGタイーホはまだですか?
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGどのような条件の下で>95がqfeを貰ったのにかによるし、その条件が
わからんので何とも言えんな。
ただ、ファイル名からすると、プライベートHotfixではないので、タイーホされることは
ないから、>95よ、安心しろ。
KBページからはダウンロードできないので、恐らく、必要時にMSに言えばすぐに貰えるものだろう。
結構、言語製品には、この手のものが多いからな。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGどうせお前はWTLに挫折した奴だろ
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGそんなに「挫折」という言葉が珍しいかい? w
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGWTLを味わう前に挫折したくせにね。 ( ´,_ゝ`)プッ・・
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG質問は少ないよね。
0123デフォルトの名無しさん
NGNG活発なスレは裏を返せば自分で調べることもできない
薄らハゲの集まりということか……
0124デフォルトの名無しさん
NGNGつーかWTL使ってるくらいで自分を上級者って言うの恥かしくないか・・・
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG何かWTLにコンプレックスでもあるのか?
>>124はいたってマトモな意見だと思うが。
0127デフォルトの名無しさん
NGNGまぁ、WTLは難しい=自分は上級者だからできる、と思い込んでるから挫折とか素人は手を出すなとか言ってるんだろうけど。
はっきり言ってWTLを使うだけなら難しくもないし上級者である必要もない。
見てるこっちが恥ずかしくなるから、WTL使ってるだけであんまり自分を上級者だと思わない方がいいぞ。
質問が少ないのはユーザーが少ないだけだ。WTLの前スレの>>1が作ったML見りゃわかるだろ。
14人て。しかも立てた>>1もやる気ねーし。やる気無いのが見てわかるから新規に参加する奴もほとんどいねーし。
本家のサポートリストのようにユーザーが多ければ普通に質問も話題も出てくるっつーの。
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG放置してればいつかは活発になると思ってるのかな。今でも。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG自分がヘタレだからって、他人も同じだと思うなよ。 w
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGどう考えてもMFC以上に先が無いのに。
0139デフォルトの名無しさん
NGNGそのこころは?
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGWTLかと思ったらWiXの方だった・・・
0144デフォルトの名無しさん
NGNGCCmdBarを継承してクールなメニューを作ったんだが。
2Kだとメニューの枠が立体的でかっちょ悪い。
XPなら勝手にフラット&影になってくれるけど。
メニューウィンドウの作成をフックするんだっけ?
メンドクサイからいいや・・・。
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNG困らないのに、何でATLと分離する需要があるの?
0153デフォルトの名無しさん
NGNGWTL開発者がATLのバージョン毎にソースを用意する必要がある。
つまりVCのバージョン毎に用意しなければならなくなる。
もし、純粋なAPIラッパーであれば従来のSDKヘッダーと同様に、
Unicode/MBSCと_WIN32_WINNT、WINVER、_WIN32_IEあたりで
切り分ければ良かったはず。あと、_WIN32と_WIN64があるか。
これでも十分煩雑だけど・・・。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGExpressEditionやVC++Toolkitユーザ<需要
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGSDKが無償ならクラスライブラリも無償で欲しいと思っても別におかしくないわな。
俺はVC++Pro使ってるけど。
0159デフォルトの名無しさん
NGNGなんだ、図星か。
0160デフォルトの名無しさん
NGNGATLに依存しまくってんだから。
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNGあんまし依存してないけどな。
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGなんか必死な奴いるけど、単に非依存になればいいなって話だろ。
何ムキになってんだか。
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGおまえはそればっかりだな。
0167デフォルトの名無しさん
NGNG何ムキになってんだか。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGお前のレスはずっと説得力ないんだが、
非依存になったら何か困るのか?
ここでVC++持ってることをアピールして何か意味あんのか?
正直、このスレ見てる奴はみんな持ってると思うんだが。
0170デフォルトの名無しさん
NGNG離れられないんでちゅねー
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGWindowsとかDirectXとかWMPのほうがよっぽど。
0174デフォルトの名無しさん
NGNGVSには相当な金・頭脳が投入されていると思われる。
0175デフォルトの名無しさん
NGNG拡張性も利便性もたとえばemacsにすら劣っているように見えるけど、超えるの定義は何?
アプリとあるけど、開発環境に限定しないこの世に存在するすべてのソフトウェアをさしているの?
0176デフォルトの名無しさん
NGNGまぁ、自社の開発者が自分の環境を整えるために機能拡張するんだから
凝った作りにもなるわな。社内での能力アピールにもなるし。
それが結果としてMSで一番安定したアプリケーションを生み出す原動力に
なっているのが皮肉なんだろ。
逆に言えば、WMPなんかどうせ開発者たちは凝った使い方せんから
聞けさえすればあとはどうでも(ry
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGMSのメリットは考えるだけ無駄。
0181デフォルトの名無しさん
NGNG既存のユーザーはATLと切り離されても影響ないし、
いまから新たにWTLはじめようなんて言う物好きもいないだろう。
VCTKとか、まともなツールキットがないコンパイラを使ってる貧乏人がMS純正品を使いたい
とか言うすごーく特殊な需要しかないだろ。
普通の人はWxとか自作、はたまたDel等のRADに手を染めるほうがよっぽど建設的だ。
0182デフォルトの名無しさん
NGNGだから非依存になったら困ることあるのかって。
特殊な需要だろうが、これからWTL始めようとする物好きだろうが、
メリットはメリットだろ。
そこまで非依存を拒絶する理由がわからん。
反論したけりゃまず説得力のあるデメリットの例を挙げてみ。
つーか本当にWTL使ってんの?
WTLユーザーを減らすような考え方しかできてないみたいだけど。
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNGおまえはそればっかりだな
0187デフォルトの名無しさん
NGNGもしかして分離にメリットがないと感じているのは一人だけだと思ってる?
0188デフォルトの名無しさん
NGNGすぐ「貧乏人」を連呼して逃げる奴は。
0189デフォルトの名無しさん
NGNG全然違和感がない。
なぜならWTLはATLを拡張するためのものだから。
0190デフォルトの名無しさん
NGNG論点がずれてる。
そりゃメリットがないと感じてる奴はいるだろう。
ただメリットがあると感じてる奴もいるってこった。
VC++持ってる奴の中にもない奴の中にも。
それを「金が無いから」だのとひとくくりにして反論してるつもりになってるからウンザリしてんだよ。
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG厚かましいんだよ。
0193デフォルトの名無しさん
NGNG社員かおまえは。
てか過去ログ嫁。フリーでもいいがWTLをATL非依存化でもいいって書いてるだろ。
さらに言えばWTLをATLに吸収でもいい。
でもフリーorATL非依存化の方がユーザーが増えるからフリーor非依存化の方がいいなって流れだ。
要は使用やバージョンアップに二つのライブラリのバージョンを気にするのがめんどうってことだ。
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG貧乏人という仮想ターゲットを脳内で作りだして優越感に浸りたいだけの電波なので、レスしても電波レスしか返ってこない。
0196デフォルトの名無しさん
NGNGATLやWTLに関する有意義な情報交換をやりましょう。
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG↓
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG所詮、オプソ厨の程度はこんなもんか。
0204デフォルトの名無しさん
NGNGユーザ数が増えれば情報量も増えるでしょ。
0205デフォルトの名無しさん
NGNG要望だしたら扱ってくれるかな。
自分で記事を投稿する元気はないけど。
0206デフォルトの名無しさん
NGNG俺がWTLを知ったのもこの板だし。
0207デフォルトの名無しさん
NGNGプロファイルしたいときはvc6でコンパイルしなきゃいけないから
結局古いATLのほうにあわせなきゃならんのがめんどくさい
0208デフォルトの名無しさん
NGNGロハで落とせるし。
0209デフォルトの名無しさん
NGNGたしかプロファイラ使用後に最適化するオプションついてるんだよな
0210デフォルトの名無しさん
NGNG分離反対派は海外のforumなんか覗いたこと無いんだろうな…
0211デフォルトの名無しさん
NGNGWTLがATLに依存しなくなるってことは、今WTLとATLが共有している部分は、別々の互換性が無いクラスに分かれるってこったろ?
ATL::CWindowとWTL::CWindowが混ざったプログラム俺は書きたくないね。
ATLとWTLを統合するほうがまだ建設的。
0212デフォルトの名無しさん
NGNGというかここまでで反対の理由が一つも挙がってないよな。
メリットが少ないからしなくていいってだけで。
要するにどっちでもいいのとちゃうんかと。
やたら反対する理由が知りたい。
0213デフォルトの名無しさん
NGNG互換性を残しつつ作ることも可能じゃないか。
逆に完全にATLから独立するように作るなら混ざりようがないし。
ATLと統合も良いと思うけど。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG速度的にきつくてあきらめた記憶がある。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGインストールが終わんね
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGNotes: Misc bug fixes, patches, and feature requests work.
変更点
ttp://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtla-03/index.html
0222デフォルトの名無しさん
NGNG今までずっとMSの7.1が最新だと思ってた俺はアホか・・・
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGsupport list、今度は新バージョンが置いてある場所を知らない奴か・・・
新バージョンについてろくな投稿がないな・・・
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG>>221
0236デフォルトの名無しさん
NGNGMSG_WM_CONTEXTMENU(OnContextMenu)
END_MSG_MAP()
LRESULT OnContextMenu(HWND hWnd, CPoint& ptClient)
{
ATLTRACE("OnContextMenu\n");
return 0;
}
ツリーコントロール内でコンテクストメニューを出したいのですがうまくイベントが発生しません。
右Wクリック又は、右ドラッグ->右ボタンアップの操作を行った場合はちゃんとイベントは飛んでくるみたいです。
そもそも他のメッセージを捕まえて行うんでしょうか?
(WTL固有の問題かもしれないのでこちらに書き込みました)
0237デフォルトの名無しさん
NGNG0238236
NGNG今開発してるの(SDI)はもうちょっと複雑ですが、
先ほどSDIのビューとしてツリーを使ったもので試してみた所同じ現象が起きました。
ウィザードが生成したコードに>>236の部分のみ変更を加え、
MainFrameからツリーへノードをいくつか追加してます。
0239236
NGNG正常にWM_CONTEXTMENUが飛んできます。
ツリーコントロールは他に必要な手続きがあるんでしょうかね。
0240質問
NGNGそれとも、もの好きのためだけのライブラリですか?
0241デフォルトの名無しさん
NGNG>>17
0242デフォルトの名無しさん
NGNGMFCでも同じだね。NM_RCLICKしかないかも。
0243236
NGNGええ。MFCでも同じでした。
理由はわからないけどツリーコントロールはWM_CONTEXTMENUが飛んで来ない仕様だから
NM_RCLICKなんていう通知メッセージがあるんですかね。
エクスプローラでも同じみたいなのでNM_RCLICKで対処してみます。
ただNM_RCLICKだと項目が選択されてTVN_SELCHANGINGとかが発生しちゃうんだよなぁ。
0244デフォルトの名無しさん
NGNGerror LNK2005: __osplatform は既に atlmincrt.lib(atlinit.obj) で定義されています。
とか言われてコンパイル出来ないんですがどうすればいいんでしょう??
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGそれをしゃべれば、それは
マルチスレット、C言語標準関数、そして、例外を使うことが出来ないとなります.
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG「ATLでCRTをできるだけ使用しない」「いいえ」
としたらリンクできました。
デフォルトでMIN_CRTなのか(;´Д`)
0249デフォルトの名無しさん
NGNGこんな感じでエディットコントロールをサブクラス化し、
WM_KEYDOWNを処理したく思っています。
しかしコントロールクラス側のMESSAGE_HANDLERでWM_KEYDOWNを取っただけで、
何故か矢印キーやDelete、Home、Endキー等が、エディットコントロール内で
効かなくなってしまいます(英数字キーやBSキー等は普通に動きます)。
何か原因に心当たりのある方、教えて頂けないでしょうか。
0250デフォルトの名無しさん
NGNGあなたがメッセージを横取りしてしまったためにエディットコントロールがキー入力をハンドリングできなくなってしまったのです。
動いているキーはWM_KEYDOWNではなくWM_CHARなどで処理されているのでしょう。
0251249
NGNGなるほどなるほど!そういえばすっかり忘れていましたが、
文字以外でも、スペースやBSだけはASCIIコードありますもんね。
SetMsgHandled(FALSE);が、普通のサブクラス化におけるCallWindowProcの役割を
果たしてくれるのかと思っていたのですが、違うみたいですねぇ。
しょうがないので、あまりスマートじゃ無さそうですが、自分でCallWindowProcを呼び
m_pfnSuperWindowProcというメンバを渡すことで解決しました。
レスありがとうございました。
0252デフォルトの名無しさん
NGNGたったの一晩で今まで表示されていなかったCCommandBarCtrlImplのメンバなどが表示されるようになりました!
2億円、 3億円、 5億9千万円収入者続出しています(違
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGやたらコンパクトなんですが。。。
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGMFCとATLしか使ったこと無いんで。
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGCランタイム無だったような。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNGCランタイムは、ATLで開発を始めてから使わない習慣が出来てしまいますた。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNGDEBUGモードだと内部でstdio.hも読み込まれて、sprintfとかの標準関数が使えるのですが、
RELEASEモードだと、stdio.hが読み込まれません。。
これはなんでこんな仕様になっているのでしょうか?
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGつーか、Dependency Walker で確かめりゃいいじゃん。
0268デフォルトの名無しさん
NGNGふぁっきゅ〜だな。
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGのちのちの移植性を考えてみても使わないメリットは小さい気がするのだけど。
0271265
NGNG>Releaseだとデフォルトで_ATL_MIN_CRT
そうなんですか。。
なんでビルドの種類によって違うんでしょうか。。変な仕様ですね。。
とりあえず、リリースモードの時だけ、atlbase.hのあとにstdio.hを読み込むようにしました。
0272デフォルトの名無しさん
NGNGリリースから_ATL_MIN_CRTを外せば?
0273デフォルトの名無しさん
NGNGATL使ってる時点で
0274デフォルトの名無しさん
NGNGAddStringで10個くらい項目を足しているのに
右側の▼を押してもリストが展開されません。
見た感じ項目数0のリストが表示されているようです。
この表示数を増やすにはどうすればいいんでしょうか。
0275デフォルトの名無しさん
NGNGWTL関係なくて、CComboBoxのウィンドウが小さいだけ。
プログラムでウィンドウのサイズを変えるなり、
リソースをテキストで開いてサイズ書き換えるなりすればOK
或いは例えばVC6なら、リソースエディタでコンボボックスの▼の辺りを
クリックすれば、ドロップダウンのサイズを変えられるよ。
0277デフォルトの名無しさん
NGNGif((pMsg->message < WM_KEYFIRST || pMsg->message > WM_KEYLAST) &&
(pMsg->message < WM_MOUSEFIRST || pMsg->message > WM_MOUSELAST))
return FALSE;
// give HTML page a chance to translate this message
return (BOOL)SendMessage(WM_FORWARDMSG, 0, (LPARAM)pMsg);
とあるのは何のため?
前者のif文は、IEのコンテキストメニューを表示したりするために
マウス関連メッセージを有効にするため?
後者のSendMessageは何のためだろう。
0278デフォルトの名無しさん
NGNGgive HTML page a chance to translate this message
0279デフォルトの名無しさん
NGNGこれを増やすにはどうしたらいいですか?
0280デフォルトの名無しさん
NGNG>>274へ戻る
0281デフォルトの名無しさん
NGNGPreTranslateMessageがtranslateの場所では?
なぜWM_FORWARDMSGで転送してんの?
0282デフォルトの名無しさん
NGNGコメントアウトして試してみろよ
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG負け犬の遠吠えにしか聞こえないからやめとけ
0290デフォルトの名無しさん
NGNG正しく日本語使おうね。
0291デフォルトの名無しさん
NGNGはぁ?
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNGいやいやいや、そんな定義はないよ
0298デフォルトの名無しさん
NGNG前のほうの if 文で、web browser control に転送しないメッセージのとき単に false を返して終了し、
後ろの SendMessage で実際にWEB Browser control 側にメッセージを転送しています。
これは入力フォーカスがビューウィンドウにあって、BS やら ALT+矢印やら TAB やらが押下されたとき、
WEB Browser control 側にそれを処理する機会を与えるための処理です。
(WM_FORWARDMSG のハンドラはatlhost.hで実装されていて、 ole control の IOleInPlaceActiveObject::
TranslateAccelerator() を呼び出す)。
詳しくは IOleInPlaceActiveObject::TranslateAccelerator の説明を参照。
0299デフォルトの名無しさん
NGNG諦めていたら、なぜかPlatformSDKではなくDDKにATL3.0が
付いてきてました。
WTL7.5はATL7前提とかいう話も見聞きしてますが、とりあえず
ATL3.0でも使えてるんで情報あげ。VCTKスレに書くべき?
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG従ってほぼ無償でMSとかから入手できるが???
もしかして釣られた?
0302デフォルトの名無しさん
NGNGこれってどっから出たデマ情報なんだろうな?
俺も聞いたことある。
0303デフォルトの名無しさん
NGNGDDKって今は有償じゃなかったっけ?
0304デフォルトの名無しさん
NGNGはるばるアメリカから送ってくることを考えたらほぼ無償でしょ。
MS的には来年にはVSExpressも出すし、.NET もあるし、
もはやVCTK+ATL+WTL+MFCくらいは勝手に持ってけ状態なの
かも(今見るとMFC4.2もDDKにあるような…)。
VCTK見た時は最適化コンパイラでも素のコンパイラだけでは
Mingw/gccの方が〜と思ったもんだが、ATL/WTLが使えるなら
手軽なWindows/C++開発環境としては最強かも。
0305デフォルトの名無しさん
NGNGおおー素晴らしい!
貧乏人の俺がVC6を窓から投げ捨てる日が来た?
0306デフォルトの名無しさん
NGNGVC6もATL3.0じゃん。
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGそうか、これ使い回せばいいのか
2005Express+VC6のATL+WTL+仕上げにVCTKでOK?
ゴメンヨ
まぁ2005Expressもうちじゃ重いんだよね…( ´・ω・)っ[VC6]ミ
0310デフォルトの名無しさん
NGNGViolent and Crazy Team Killer もしくは、Visual C++ Tool Kit
0311デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGなぜに?
0314デフォルトの名無しさん
NGNGVC6のATLはVC6でしか使っちゃ駄目とか?
0315デフォルトの名無しさん
NGNGそ、そうなのか
今規約をざっと見てみたところ、そういう記述は無さそうだけど、どうなんだろ
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGそういやWTLとATLの分離を頑なに反対してた奴に似てるな
0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG「CWindowはCOMと無関係であるにも拘らず・・・」と永遠に続くのであった。
0323デフォルトの名無しさん
NGNGCOMサポートはATLの一部分に過ぎないんだから
別に分離しなくても使わなきゃいいだけの話だと思うが。
0324デフォルトの名無しさん
NGNGC++BuilderユーザやCygwin・GCCユーザでも使えると嬉しいってこった。
0325デフォルトの名無しさん
NGNGGCCユーザーやCygwinユーザーはwxWidgetsでも使ってればいいじゃん。
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGワラタ
おまいの頭には汎用ライブラリの利点という文字は無いのか
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGビルドはできるのだけど、実行しようとするとエラーで異常終了するわけだが・・・。
さて、VC7の場合、どのATLヘッダーとリンクすればいいかね?
0331330
NGNG0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGVC7付属のATL。
0334330
NGNG説明不足だった。VC7ではなくて、VCTK2003。
PSDKのWin64のヘッダではランタイム異常終了するし、
VC98のヘッダでは金毘羅さえ通らない。
さて、どうしたものか。
0335デフォルトの名無しさん
NGNGあとどんなソース書いたのか。
0336デフォルトの名無しさん
NGNGリンカオプションが間違ってたらビルド完了さえできないはず。
ATLを使わずAPIだけを使っている他のプロジェクトはちゃんと動いてる。
というか、VCTK2003でATL使ってる人っているのか?
そもそもATL3.0はVCTK2003でちゃんと動くものなのか?
0337デフォルトの名無しさん
NGNGWin64 用のヘッダか・・・ウィンドウプロシージャサンクしてるとこのコード読んだ?
atlbase.h の _stdcallthunk 。_M_IA64 とかが定義されてると当然落ちるけど。
0338330
NGNG_M_IA64 はPSDKリファレンスの「The Tools」に書かれている内容では、直接定義してはならないとあるみたい。
自分はいつもどおり _WIN32のマクロ定義を使ってる。
PSDKにはatlbase.hが2種類ある。
<installdir>\Microsoft Platform SDK\include\Win64\atl\atlbase.h (2002/08/21 08:34:30)
<installdir>\Microsoft Platform SDK\src\mfc\atlbase.h (2001/08/15 15:05:30)
一応、両方のパスで試した。Win64版はビルドできるけど実行時に落ちる。
src\mfc版はコンパイルが通らない。ほぼV98版と同じエラー。
ちなみに、コンパイルオプションは、/arch:SSE2 /G7 /GS を追加してる。
せっかくある機能は使いたいのが人情でしょ。駄目・・・?
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGせめて落ちる場所くらい特定してから来い。
0341デフォルトの名無しさん
NGNGせっかくソース公開されてんだし。
著作権にだけは気をつけて。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG他人にバレないように気をつける。
0345デフォルトの名無しさん
NGNGWTLで異常終了するのを確認。WTL7.5(wtl75_4291.zip)を使ってる。
異常発生位置は、atlframe.h の456行目
::CreateWindowEx()
VC6.0の"ATL/WTL AppWizard"で作ったSDIアプリのプロジェクトをメイクファイルエクスポートして
VCTK2003環境でビルドすれば他の人も異常終了を確認できると思う。
ATLヘッダーはPSDのWin64版を使っている。(_ATL_VER=0x0300)
0346345
NGNG0347345
NGNGPSDKWin64ヘッダを使ってTK(=VC7)でビルドした実行ファイルが異常終了することは、
全く関係がないと考えてよいと思う。
PSDKのWin64ヘッダファイルでWin32アプリをTKでビルドすると問題が起きるっぽい。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGテツレファイ?
0353デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?lr=lang_ja&oe=sjis&q=%54%53%74%72%69%6e%67
Stringの誤字です。
0354350
NGNGTStringをCStringTに文字列痴漢して読んで貰いたい。
0355デフォルトの名無しさん
NGNGこいつアホだな。DelphiスレでATLラーメンでも食って死んでろ
0356デフォルトの名無しさん
NGNGどういう意味かわからない。なんか元ネタあるの?
0357デフォルトの名無しさん
NGNGATL + ラーメン。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNG同意。
「低い」を漢字で書けないなんて、レベルが低すぎる。
0361デフォルトの名無しさん
NGNG同意。
いちいち細かいところで嬉しそうに突っ込んでくるなんて、レベルが低すぎる。
0362デフォルトの名無しさん
NGNGhttp://www.tokachi.co.jp/wtl/
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGttp://www.4ni.co.uk/listing.asp?cat=884&style=0&company=42881
0365デフォルトの名無しさん
NGNGttp://www.ncc.go.jp/jp/ncc-cis/pub/cancer/010217.html
0366デフォルトの名無しさん
NGNGhttp://www.tokachi.co.jp/wtl/index.html
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGだとしたら非道く狭いシェアを当て込んだもんだな
つか真面目な話、こんなのが引っかかるのは邪魔だなぁ
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGぜひTokachi Web LinkがSTLに合わせる理由をマジレスして頂きたい( ゚д゚)σ)´Д`)
0372デフォルトの名無しさん
NGNGGoogleでWTLを検索すると十勝Webリンクが一番上にヒットしてた。
ニュース以降はWTLに関するニュース記事やブログが上位になっていったなぁ。
ま、未だに十勝Webリンクも上位にヒットするけどな。
0373デフォルトの名無しさん
NGNG次スレテンプレート候補ということでFA?
話は変わるが、
yahooフォーラムで出てた通りサンクの構造体をユニオンにして
WIN64ヘッダでビルドしたDirectX使用のWTLアプリは不意にOS毎落ちる希ガス。
諦めてVC98でビルドしたバイナリだけつかうようにしてる。
原因は調べる気なし。つか、OS道連れなもんで原因特定方法わからんし。
0374デフォルトの名無しさん
NGNGttp://msdn.microsoft.com/visualc/downloads/updates/atl/default.aspx
0375デフォルトの名無しさん
NGNGまぁ2.0だし。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG現在、WTL、BOOST、LOKIでどれにしようか迷っています。
互換性、プログラムの簡潔性を重視したいので、どれか一つに絞りたいと思います。
どれが良いんでしょうか?
よろしくおねがいいたします。
0378デフォルトの名無しさん
NGNGガッ
0379デフォルトの名無しさん
NGNG用途が違うから絞るものじゃない。
それぞれの用途を調べて自分で決めれ。
0380デフォルトの名無しさん
NGNGウリャッ
0381デフォルトの名無しさん
NGNGSTLportっていうのもあるよ。これはSGI(注:創価学会ではありません)の技術がいっぱい詰まった、
未来のてんぷれーとーらいぶらりーさ。
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG別に一つに絞らなくても構わないと思うぞ。
例えば、お前の言うBoostとLokiとATLを組み合わせて、
boost::shared_ptr<Loki::SmartPtr<CComPtr<I***> > >
とすれば、最強の超スマートCOMポインタが作れたりする。
0385デフォルトの名無しさん
NGNG漏れ boost は shared_ptr と function の為にしか使ってないや・・・
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNGメッセージループで処理すべきメッセージが無いときに呼ばれるんじゃなかったっけ。
0388デフォルトの名無しさん
NGNGCMessageLoopから派生したクラスを書けば、そのような挙動にすることも可能だよ。
漏れは、ゲームとかリアルタイム系のアプリ作るときには使ってる。
0389デフォルトの名無しさん
NGNGboostはゲームソフトの抱き合わせ販売のようなものだ
――ゲーテ
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG常に連続して呼ばれるわけではないのだ
>>388
頭(・∀・)イイ
早速やってみるyo
0392デフォルトの名無しさん
NGNGゲーテかい?
0394デフォルトの名無しさん
NGNGwhile(他にメッセージが無い){
アイドル処理;
}
なメッセージループは嫌だなぁ。
どんなアプリもCPU100%
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNGお兄ちゃんに謝れ。
0398デフォルトの名無しさん
NGNG俺だよ。
0399デフォルトの名無しさん
NGNGここにあるデモプロジェクトがコンパイル出来ません。
一番シンプルそうなDockSiteSampleとか。
同梱されているincludeフォルダにインクルードパスを通す。
プロジェクトにDockImpl.cppを追加。
stdafx.cppからDockImpl.cppをインクルード。
MainFrameでDockingWindow.hをインクルード。
_ATL_MIN_CRTを解除して/GXコンパイルオプションを設定。
…山のようにウォーニングやらエラーが出ます。
何か忘れてる事とかあるんでようかね。
助言ください!
0400399
NGNGVC++ 7.1
WTL 7.5.4291.0
0401デフォルトの名無しさん
NGNG> ウォーニング
ワーニング、のほうがが正しい発音。
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG>>プロジェクトにDockImpl.cppを追加
これをビルドの対象からはずした?
0404403
NGNG.net からコンパイラのチェックが厳しくなったんで、C2501 とかを
直すには
Before:
typedef TDockingWinTraits::CCaptionCCaption;
After:
typedef typename TDockingWinTraits::CCaptionCCaption;
というように typename が必要だった気がする。
しかもかなりの箇所を修正する必要があったはず。
頑張れ
0406デフォルトの名無しさん
NGNGベツニ面倒じゃないよ
0407デフォルトの名無しさん
NGNG[wɔ่:ɾniŋ] のほうが正しい発音。
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGエンジョイとかバケーションとかしまいにゃイギリスとかどうなのよ
0410デフォルトの名無しさん
NGNGCスレやそこらで散々既出の話題。
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGカタカナ表記する場合はワーニングで統一して欲しいと思う吉宗であった(AA略)。
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGただ自分は正しい発音を知っるって事をちょっとだけ誉めてもらいたかっただけなんだ。
許してやってくれ。
0416デフォルトの名無しさん
NGNGttp://www.codeproject.com/macro/WTLHelper.asp
0417デフォルトの名無しさん
NGNGあっそう、よかったね。
これからは厨房日記は自分のblogにつけてくれ、頼む。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG私も _ATL_MIN_CRT にずっぽりはまってしまいました。
このスレの上の方を見るとマクロから消せば良いという
結論になってますよね?
それで確かに動くようにはなったのですが、このまま常に
「_ATL_MIN_CRT を消す」と思ってて良いのでしょうか?
一応このあたりの内容は目を通してみました。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vcconusing_atl_min_crtinyouratlproject.asp
http://hp.vector.co.jp/authors/VA022575/c/atlmincrt.html
http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl08-03/
http://www.hi-ho.ne.jp/babaq/comprog2.html
0425デフォルトの名無しさん
NGNGそうじゃないなら消す。
0426デフォルトの名無しさん
NGNGmallocとかstr系とか使えない関数があるから危険みたいな、
そういうところにいまいち納得がいかなくて・・・
0427& ◆sQw2IvQ8pg
NGNGリンク通らなくなるのが謎。
どうせ使えないのならそもそもある意味が分からない。
0428デフォルトの名無しさん
NGNG私もなぜ Release の時だけデフォルトで
_ATL_MIN_CRT 付けてるのかなーと思います。
MS 的には何らかの意図があったのだと思いたいのですが。
「どうせ消すのに」という意見参考になりました。
アドバイスありがとうございます。
0429デフォルトの名無しさん
NGNGどこに危険と書いてあった?
>>427
サイズを小さくする=Cライブラリ関数を使わないようにする=Cライブラリをリンクしない
だからリンク通らないのは当然。
>>428
MSの意図は知らないが、そもそもATLはプログラムサイズを小さくする設計だったので、
デフォルトで極力小さくするようにしたと思う。
じゃあなんでデバッグ版に_ATL_MIN_CRTが付いてないんだと言われたら知らん。
デバッグ時はCライブラリ関数を使うと思ったんじゃないかな。
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG横と縦にスクロールバーが付くと、一番端までスクロール出来ないです。
端の部分が、スクロールバーの下に隠れてしまい、見えていない状態です。
これを防ぐにはどうしたらいいのでしょうか?
それとも、予めスクロールバー分サイズを大きくしておくしかないのでしょうか?
0433432
NGNG逝ってくる
スクロールバー使う時は、DoPaintとかOnPaintで、
スクロールバーのオフセットを考慮した描画しなくちゃいけないんだね。
そこら辺をやらずに悩んでたorz
0434デフォルトの名無しさん
NGNGgcc使ってるんだけどWTLを導入するメリットってある?
0435デフォルトの名無しさん
NGNGATLが必要だよ
0436デフォルトの名無しさん
NGNGない
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGClassWizardが使えない事を除けば、MFCと作業量に違いがない。
カスタマイズが容易なWTLに流れるのは自然なこと。
かといって、MFCが劣るわけでもない。
本格的なGUIアプリは今もMFCが現役。
一部のクラス機能だけを使いたいときにはWTL。
それ以外の場合はMFC。
0439デフォルトの名無しさん
NGNG今更MFCはちょっと使う気になれない。
#本格的なGUIアプリってなんだろ?
#一部のクラス機能ってなんだろ?
#それ以外ってなんだろ?
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNGどっちでもいい。
0443デフォルトの名無しさん
NGNGWTL
0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG常にそういわれ続けてるけど、未だに実現していない。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG資料がないと開発できないやつには向いていない
君たちには WTL のコードがすべて開示されているじゃないか?
って誰かが言っていた気がする
0451デフォルトの名無しさん
NGNG名に使うにしても、ヘッダくらいは目を通すでしょう。(w
0452デフォルトの名無しさん
NGNGあとはソース。
調べてわかったことはWebで公開。
こうして資料が増える。これ。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNGてか、>>456はネタじゃなかったらチンカス以下ですね
0458デフォルトの名無しさん
NGNG察してやれ
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGそれ、かなり好きです。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG意味不明なんだが
0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG例えば?
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG天下のマイクロソフトが作るものにバグなんかあるはずがないだろう。
藻前らの使い方が悪いのだ。
0469デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101931660/
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNGidl に適当にデュアルインターフェイスを書いて、
Url や LockType という名前のプロパティを定義してコンパイルすると
プロパティ名が勝手に小文字に変換されるんですが、
どなたか再現する方、原因・解決法をご存知の方はいらっしゃいませんか?
自動生成されるC++ヘッダの方は問題なくput_Url/get_Urlになっているのですが、
タイプライブラリの方が小文字になってしまいます。
ITypeInfo で確認できます。
VS.NET 2003です。
0472デフォルトの名無しさん
NGNG原因分かりますでしょうか。例外を無視すれば問題は無いのですが、あまり気持ちが良くなくて。
CFileDialog dlg_file_open(TRUE, _T("txt"), NULL, OFN_HIDEREADONLY | OFN_CREATEPROMPT,
_T("テキストファイル (*.txt)\0*.txt\0ビットマップファイル (*.bmp)\0*.bmp\0JPEGファイル (*.jpg)\0*.jpg\0\0") );
dlg_file_open.DoModal();
//実行結果(DoModal内でGetOpenFileNameが呼ばれたときに例外が出る)
例外処理 (初回) は Test.exe (KERNEL32.DLL) にあります: 0x000006B5: (名前がありません)。
例外処理 (初回) は Test.exe (KERNEL32.DLL) にあります: 0x000006B5: (名前がありません)。
0473デフォルトの名無しさん
NGNGプログラムが止まらないなら問題なし。
0474デフォルトの名無しさん
NGNGそんなもんですかー。
止まらないのでこのままやってしまいます。レスありがとうございました。
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGだってその例外、ちゃんと内部でキャッチされてるじゃん。
MSの人も例外を使いたかったんだよ。
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGキャッチされてても良くない(動作はするが意図したものとは違う)こともあるぞ。
0479デフォルトの名無しさん
NGNGそういうときはエラーが返る、はずなんだけど、ググってみると同じ状況でこの例外が発生して
かつ期待した動作にならない、なんとかならんか、なんてことを言ってるロシア人がいるね。
0480デフォルトの名無しさん
NGNG右側にプレースバー?の無い旧式になるんだけど
どうすれば今の形式で表示出来るの?
0481デフォルトの名無しさん
NGNG::GetOpenFileName()を直接呼び出し。
↓Windowsプログラマの常識
CFileDialogを使う人=厨房
0482デフォルトの名無しさん
NGNG右側じゃなくて左側の「履歴」とかが入ってるボックスのこと?
Windows2000で追加されたものなので実行環境を限定してもよければ
#define _WIN32_WINNT 0x0500
(#define WINVER 0x500)も
とすれば、出てくるけど。
ついでに、OPENFILENAME構造体の拡張部分も見ておくといいよ
0483482
NGNG出てくるってのは、CFileDialogを使った場合も。
あと、SDKが古すぎる場合はとうかわからない。
VC6で附属のSDKだとダメかも。
ヘッダーでOPENFILENAMEを確認してみて、
無ければ最新のSDKで。
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGMFCを使う人=厨房
0486デフォルトの名無しさん
NGNGWindowsプログラマ=厨房
0487デフォルトの名無しさん
NGNGプログラマ=厨房
0488デフォルトの名無しさん
NGNG一般人=厨房
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG台所=厨房
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNGパラッパだろ
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG作成すると、例えばCFooってクラス名のコントロールだとすると、
必ず「CFoo Object」って名前でレジストリに登録されて、
どう頑張っても名前を変えられないのはバグですか?
属性なしのプロジェクトであれば、ATLコントロールウィザードの
「名前」ページの「種類」に設定した通りのコントロール名になるのに、
属性つきプロジェクトでは、全く同じ設定にしても
「CFoo object」という名前でしか登録されないです。
いくら調べても原因が分かりませんでした。
0504デフォルトの名無しさん
NGNGつまり。
難しいことはさーっぱり分からないでげすよ。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNGcocolassのクラスの属性のvi_progid、progid、helpstringとか、
リソースファイルの *rgs 内の記述なんかは何になってますか?
0507デフォルトの名無しさん
NGNG[
coclass,
threading("apartment"),
vi_progid("Foo.Foo"),
progid("Foo.Foo.1"),
version(1.0),
uuid(<省略>),
helpstring("ネオむぎ茶"),
support_error_info(IFoo),
registration_script("control.rgs")
]
control.rgsの関連部分の抜粋
HKCR
{
NoRemove CLSID
{
ForceRemove {[!output CLSID_REGISTRY_FORMAT]} = s '[!output TYPE_NAME]'
0508デフォルトの名無しさん
NGNG☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃☀☁☂☃
0509デフォルトの名無しさん
NGNGやりはじめたものなんですけどもね、
あのですね、下のサイトからですね
http://www.codeproject.com/wtl/wtlbrowser.asp
WTL Browserのソースファイルをダウンロードしてですね
ビルドしたところ
以下のようなエラーがでてきたんですよ。
\code project\wtlbrowser_src\WTLBrowser\WTLBrowser.rc(355) :
fatal error RC4214: Codepage not valid: ignored
rc.exe の実行エラー
どうも
resource scriptの
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
#ifdef _WIN32
LANGUAGE 0xD, 0x1
#pragma code_page(1255)
#endif //_WIN32
という部分が引っかかっているようなんですが
これは一体なんなのかわかりますかね?
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNGSystem.Windows.Forms
0512デフォルトの名無しさん
NGNG俺がダウンロードしたソースではその部分はこうなってるけど。
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
0513509
NGNGリソースファイルの
////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
(略)
#endif // English (U.S.) resources
/////////////////////////////////////
の直後に
///////////////////////////////////////
// Unknown language: 0xD, 0x1 resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
#ifdef _WIN32
LANGUAGE 0xD, 0x1
#pragma code_page(1255)
#endif //_WIN32
(略)
#endif // Unknown language: 0xD, 0x1 resources
/////////////////////////////////////////////////
の記述があってその部分を削ってコンパイルビルドしたらうまくいきますた。
言語設定かなんかの問題なんでしょうか。
なんか謎です。
0514デフォルトの名無しさん
NGNGvoid Hoge() { Hoge(); }
0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG状態の遷移に合わせて実行時の挙動を動的に変えるのにすごく便利なことに気づいた。
お前らも使え。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG俺の指にいったい何が・・
0520デフォルトの名無しさん
NGNGダジャレ書き込みでタイプミスは最低だな。
芸人として終わってる。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG間違ったのは518じゃなくて516だぞ
0524デフォルトの名無しさん
NGNG意味がさっぱり分からんのだが。
0525デフォルトの名無しさん
NGNGそれはATLを理解してないからだよ
0526デフォルトの名無しさん
NGNGATLもWTLも、もちろんALT_MSG_MAP も普通に使っているが、
523の発言の意図がよー分からん、と言っただけ。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGミスした張本人ということか。マジ笑えるw
0531デフォルトの名無しさん
NGNG>>516は、>>498を見て、ちょっとドラクエがやりたくなったところで、
ついうっかりWTLのことが頭をよぎったんでしょ
0532デフォルトの名無しさん
NGNGCSortListViewCtrl
CZoomPrintPreviewWindow
CZoomScrollImpl
0533デフォルトの名無しさん
NGNGいやだから「ダジャレ書き込みでタイプミス」したのは誰なのよ
0534533
NGNG0535デフォルトの名無しさん
NGNGなにに追加したんだ?
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGFreethreadのCOMオブジェクトの実装方法?
普通にスレッドセーフに作るだけ。
クリティカルセクションやMutex、イベントで排他や待ち合わせを行い、
必要ならWindowメッセージ等でスレッド間のRPCを行う。
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNGま、こういうこともたまにはあるんだろうけどさ。
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG俺が憶えてる限りでは、2005年は生きてきた中で一番何もない年だったな。
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG情報サンクス。
しっかし、相変わらずペめb(ry
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG意味不明
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGリリースノートにはこうある。
Release Name: WTL 7.5.5002.0
Notes: More bug fixes, new zoom scroll classes, zoom print preview, sort list view classes, new reflect notifications macros.
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGttp://cvs.sourceforge.net/viewcvs.py/wtl/
0557デフォルトの名無しさん
NGNGむしろ本家
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNGatlgdi.h に CLogFont とか。
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNGCLogFontもViksoe氏だっけ?
びくそえマンセー
0562デフォルトの名無しさん
05/01/18 16:28:260563デフォルトの名無しさん
05/01/18 17:30:480564デフォルトの名無しさん
05/01/24 21:31:46ドラゴンボール7つ集めたか?
0565デフォルトの名無しさん
05/01/24 21:32:40レーダーに写らない
0566デフォルトの名無しさん
05/01/24 21:40:11俺もジェブロン出すのにいろいろ試した記憶があるなー≫
たしか、stdafx.hにあるWindowsバージョン関係の定数を上げたら、表示されるようになった気がする。
0567デフォルトの名無しさん
05/01/24 21:41:480568デフォルトの名無しさん
05/02/01 08:21:17WTL楽だし楽しいね。
0569デフォルトの名無しさん
05/02/01 19:55:540570デフォルトの名無しさん
05/02/01 22:13:510571デフォルトの名無しさん
05/02/01 23:12:580572デフォルトの名無しさん
05/02/07 20:24:400573デフォルトの名無しさん
05/02/07 21:10:390574デフォルトの名無しさん
05/02/07 23:13:540575デフォルトの名無しさん
05/02/08 03:56:47なにかイベントがあった時にしかOnIdleに飛んでこないよ・・・
バグ?仕様?
0576デフォルトの名無しさん
05/02/08 07:44:310577デフォルトの名無しさん
05/02/08 08:14:28キューが空になった時に一回づつ呼ばれるのであって、
アイドリング時に漫然と何度も呼ばれるわけではないと何度言えば(ry
そもそもアイドリング判定なぞ、誰がどうやるのかと小一時間(ry
0578デフォルトの名無しさん
05/02/08 08:25:350579デフォルトの名無しさん
05/02/08 11:49:56ステータスバーやツールバーの領域を除外していないサイズが返ってくるのですが。
どうすれば計算済みのクライアント領域を取得出来るの?
0580デフォルトの名無しさん
05/02/08 11:54:080581デフォルトの名無しさん
05/02/08 12:18:11MFC使えば
0582デフォルトの名無しさん
05/02/08 12:23:02適宜クライアント領域を算出する手間を惜しむ人には、WTLは難しい。
0583575
05/02/08 13:54:11オーバーライドしてTRUEを返すようにしたらちゃんと動きました。
というか、DirectXならここでレンダー呼べばよさそう。
CMessageLoop::Run自体はOnIdleを継続して呼べるようになってました。
0584デフォルトの名無しさん
05/02/08 14:07:340585デフォルトの名無しさん
05/02/08 14:23:370586デフォルトの名無しさん
05/02/08 15:09:310587デフォルトの名無しさん
05/02/08 21:57:47MFCもフレームウィンドウでGetClientRectすればバーを含めたサイズを返すし、
MFCのアイドルハンドラもただループ回してるだけじゃないし。
WTLどうこう以前に、質問者はMFCやWin32APIもあまり知らないんじゃないかと。
0588デフォルトの名無しさん
05/02/08 21:58:51そのループなら、viksoeさんのライブラリに既にある。
CMessageLoopEx とか言う名前と、UI更新との相性が悪いので、俺は前から独自のを使ってるが。
つーか、ちょっと前にも同じようなこと書いた覚えがあるぞ
0589デフォルトの名無しさん
05/02/08 22:17:10.NETになれば計算なんてしないでも
プロパテ設定しておけば勝手に引っ付くわけで
0590デフォルトの名無しさん
05/02/08 22:40:03何言ってんだ?
日本語喋れ
0591デフォルトの名無しさん
05/02/08 22:56:34ATL/WTLAppWizardでビュー付きウィンドウ作って見れ。
0592デフォルトの名無しさん
05/02/08 23:04:490593デフォルトの名無しさん
05/02/08 23:18:35ここのWM_SIZE見れ
ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_275.htm
0594デフォルトの名無しさん
05/02/09 00:07:330595デフォルトの名無しさん
05/02/09 00:24:11残念。RECTを求める関数じゃなくて指定RECTにリサイズする関数じゃん。
つか、自分で計算しろと何度言えば(ry
0596デフォルトの名無しさん
05/02/09 13:51:290597デフォルトの名無しさん
05/02/09 21:57:560598デフォルトの名無しさん
05/02/10 10:46:47ツールバーやステータスバーの領域が除外される
0599デフォルトの名無しさん
05/02/10 11:27:180600デフォルトの名無しさん
05/02/10 12:19:260601デフォルトの名無しさん
05/02/10 18:23:140602デフォルトの名無しさん
05/02/10 20:08:570603デフォルトの名無しさん
05/02/10 21:42:150604デフォルトの名無しさん
05/02/11 03:19:050605デフォルトの名無しさん
05/02/11 03:57:280606デフォルトの名無しさん
05/02/11 22:05:21゚
ジャイコ
0607デフォルトの名無しさん
05/02/19 15:00:270608デフォルトの名無しさん
05/02/19 15:40:26慰めてほしいのかい?
0609デフォルトの名無しさん
05/02/19 16:44:540610デフォルトの名無しさん
05/02/20 02:56:10WTL8まだかなー
0611デフォルトの名無しさん
05/02/21 20:34:050612デフォルトの名無しさん
05/02/22 00:51:54http://www.studio-kura.com/index.html
・使用方法はSafariなどのウェブブラウザと全く同じです。
ただし、データの読み込み時に右上のオジサンと一緒に
「カバディ!」と叫んでください。声が止まると読み込みが中止されてしまいます。
・読み込みが正しく終了するとオジサンが「カバディ!」というのをやめます。
そうしたら声を出すのをやめましょう。
いつまでも叫んでいるとバカみたいです。
0613デフォルトの名無しさん
05/02/22 13:02:47自前アプリに埋め込んだウェブブラウザの画像読み込みを抑止する方法がわかりません
ざっと検索した範囲だと、ホストから実装して、Invokeをオーバーライドするみたいな事が書いてあるようなのですが、
CAxWindow::SetExternalDispatchで外部ディスパッチを指定すれば
そこでダウンロードコントロールをいじれるんじゃないかなという気がして試してみたいのですが、、
ここで必要なディスパッチインターフェイスをどうやって用意するべきか分かりません。
何か良いサンプルはありませんか?
0614デフォルトの名無しさん
05/02/22 13:25:01言ってることがよくわからないけど、web browser コントロールがインライン等で画像をダウンロードするのを
抑制したいっていう話なら、CAxHostだかなんだか忘れたけど MFC のホスト側にIServicePrivider を実装して
自前の IBindHost を提供してあげればよかったと思うけど・・・ググってみるといくつかヒットするな。
http://www.google.co.jp/search?hl=ja&q=web+browser+control+IBindHost&lr=
http://www.dotnet247.com/247reference/msgs/9/45332.aspx
実装例もあるけど仕事で書いた奴だから見せられません。
基本的には下のほうのURLで示されているのと同じ方針でOK。
「ダウンロードコントロール」ってのが何なのかわからないので外してたらゴメン。
0615デフォルトの名無しさん
05/02/22 14:02:35ttp://msdn.microsoft.com/library/default.asp?url=/workshop/browser/overview/Overview.asp
アンビエントプロパティから、簡単に設定できるように書いてあるので、
外部ディスパッチを指定できるCAxWindowを使用しながら簡単にアンビエントプロパティの設定が
出来るのではないかと思っているのです。
MFCは使っていないので、そのままの方法で出来るのか分かりませんが少し調べてみます。
Monikerとか分からないものが出てきているのでしり込みはしますが・・・。
0616デフォルトの名無しさん
05/02/22 14:18:56なるほど。それならアンビエントプロパティの設定で簡単に出来そうですね。
↓とか。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vclrfiaxwinambientdispatchex.asp
0617デフォルトの名無しさん
05/02/22 20:04:56VC7.1を使ってATLの属性付きDLLプロジェクトを作成したのですが、
デフォルトで作成されるrgsファイルにエントリを追加しても
まったくレジストリに追加されません。
VC6では出来ていたのですが、このrgsファイルは使われていないんでしょうか?
0618デフォルトの名無しさん
05/02/24 18:30:430619デフォルトの名無しさん
05/02/25 23:26:000620デフォルトの名無しさん
05/02/26 05:59:210621デフォルトの名無しさん
05/02/26 15:07:510622デフォルトの名無しさん
05/02/26 16:30:52O either
>>621
You are honest !!
0623デフォルトの名無しさん
05/02/26 17:26:240624デフォルトの名無しさん
05/03/02 00:44:25(テキスト含めた)ファイル入出力、レジストリ読み書きはどうやるのが筋でしょうか?
VC++7であれば、なにやら便利そうなクラスが転がっているみたいなのですが・・・
0625デフォルトの名無しさん
05/03/02 01:46:29ATL3.0でもCRegKeyはあるよ
0626デフォルトの名無しさん
05/03/02 12:33:43漏れはWTLなら、ファイルIOは素のAPI呼び出しか
C++の標準ライブラリとか使うなぁ。
テキスト操作は std とか boost とか。
0627デフォルトの名無しさん
05/03/09 00:28:37ありがとうございました
0628デフォルトの名無しさん
05/03/09 02:41:420629デフォルトの名無しさん
05/03/10 00:38:34いっしょにまよってあげるね
0630デフォルトの名無しさん
05/03/10 02:11:160631デフォルトの名無しさん
05/03/10 03:19:31CString::GetBuffer()の使い方を知らないの?
0632デフォルトの名無しさん
05/03/10 19:37:36知らんわけないだろう。
いちいちGetBuffer→ReleaseBufferするのはタイプ量も多いし
コードも見づらくなるし最大文字数も書かなきゃいけないし、面倒くさすぎって事。
0633デフォルトの名無しさん
05/03/10 20:07:010634デフォルトの名無しさん
05/03/10 22:32:29センスねーな
0636デフォルトの名無しさん
2005/03/25(金) 14:45:05少しWin32知ってればドキュメント代わりになるなあ
とたまにage
0637デフォルトの名無しさん
2005/03/25(金) 23:56:590638デフォルトの名無しさん
2005/03/26(土) 06:27:030639デフォルトの名無しさん
2005/03/29(火) 09:45:38スプリッタウィンドウを伴うMDIアプリケーションを
作成したいと考えています(VC++.NET、WTL7.5、Windows XP SP2)。
ttp://www.codeproject.com/wtl/mdisplit.asp
を参考に作っていたのですが、このサンプルには
バグがあるようで、それの解決方法がわかりません。
まずバグについて具体的に書かせていただきます。
このサンプルでは、スプリッタウィンドウの左ペインにAboutダイアログを表示させる
という口実で、本来あったであろうメニューリソースのHelp項目を無くしています。
この為、CMDIWindow::GetStandardWindowMenu関数は常にNULLを返しており※、
MDI子ウィンドウが新しく作成されても、メニューのWindow項目以下に
キャプションリストの追加が行われなくなっています。
※キャプションリストを追加するためのメニューアイテムは
名称が_WTL_MDIWINDOWMENU_TEXTと一致し、かつ
メニューバーの右から二番目になければならない。
これを解決するために、メニューバーの末尾に適当な項目を追加してやると、
キャプションリストの追加は行われるようになるのですが、
10個目のMDI子ウィンドウを作成しようとするとプログラムが異常終了してしまいます。
0640639
2005/03/29(火) 09:46:23その他のウィンドウという項目の追加処理に失敗しているようです。
※上記サンプルではキャプションリストの追加自体が行われていないので、
10個以上作成してもこのバグは発現しません。
多分、MDIフレームの直下にあるべきMDIクライアントが、
スプリッタウィンドウをはさんで存在しているため、MDI関連のメッセージとかで
うまく処理されていないものがあるのでは?と想像しつつソースを眺めているのですが
どこが原因なのか皆目見当もつきません。
試しにWTLを使わずWin32API直書きでMDIフレームとMDIクライアントの間に
別ウィンドウをかましたテストプログラムを作ってみたりもしたのですが、
その場合、この現象は起きないのですが…
どなたか解決策(もしくは別の実装案)を御存知の方はいらっしゃらないでしょうか?
0641デフォルトの名無しさん
2005/03/29(火) 11:48:35m_hWndMDIClient の親をスプリッタに切り替えるのをやめると、
クラッシュせずに10個目以降のためのメニュー項目が追加されるようになるよ。
当然、画面表示はおかしくなっちゃうけどね。
別の実装としてはこれ?
http://www.codeproject.com/wtl/wtldockingwindows.asp
大げさになっちゃうけど。
0642639
2005/03/30(水) 02:45:44>m_hWndMDIClient の親をスプリッタに切り替えるのをやめると、
ヒントありがとうございます。
自身の子ウィンドウでなくとも、
スクリーン座標の相対位置で適切にペインの配置が可能な
スプリッタウィンドウクラスを作ることで、
(見かけ上は)正常に動くプログラムを作成できました。
ちょっと汚い実装かな?とは思うのですがw
※もしかしたら、メインウィンドウはSDI(CFrameWindowImplから派生)にしておいて、
class CMDIFrame : public CWindowImpl<CMDIFrame, CMDIWindow>
こんな感じのクラスを作ってやった方がイイのかな?
とりあえず問題なく動いてるようなのでこれで逝こうかなと思いますが、
もっとスマートな実装がありましたら情報いただけると幸いです。
>別の実装としてはこれ?
>http://www.codeproject.com/wtl/wtldockingwindows.asp
実は、私のほうでも、スプリッタがうまくいかないのなら
ドッキングウィンドウに仕様変更しちゃおうかなとか考えてましたw
0643デフォルトの名無しさん
2005/03/31(木) 00:03:210644デフォルトの名無しさん
2005/03/31(木) 09:17:590645デフォルトの名無しさん
2005/04/03(日) 15:13:040646デフォルトの名無しさん
2005/04/04(月) 16:48:220647デフォルトの名無しさん
2005/04/11(月) 01:54:00MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
END_MSG_MAP()
WTLをはじめてみようと思ったのですが、この書式ってなんですか?
cでもc++でも見たことないんですが、、、。
0648デフォルトの名無しさん
2005/04/11(月) 02:05:480649デフォルトの名無しさん
2005/04/11(月) 02:06:59マクロで定義されてるだけだよ。
0650デフォルトの名無しさん
2005/04/11(月) 02:07:340651デフォルトの名無しさん
2005/04/11(月) 22:18:50ヘッダーファイルくらい見ろよ。
0652デフォルトの名無しさん
2005/04/11(月) 22:32:450653デフォルトの名無しさん
2005/04/11(月) 23:21:43WTLはじめる前に
Cを勉強しなおしたほうがよいと思います。
0654デフォルトの名無しさん
2005/04/14(木) 19:42:020655デフォルトの名無しさん
2005/04/15(金) 06:53:120656デフォルトの名無しさん
2005/04/17(日) 02:50:23Changes since the last release:
- Bug fixes
- Misc. class/method improvements
- Wizard97Test
- Sample for Wizard97 base classes
- Improved support for Windows CE: CMenuBarCtrl, CPropertySheetImpl, frame windows
- Enabled CDialogResize for Windows CE
- Added CScrollContainer class
0657デフォルトの名無しさん
2005/04/21(木) 01:59:13- Removed Native Support
0658デフォルトの名無しさん
2005/04/21(木) 07:16:320659デフォルトの名無しさん
2005/04/21(木) 08:28:53それならC++のテンプレートライブラリにする意味ないんじゃね?
0660デフォルトの名無しさん
2005/04/21(木) 20:23:130661デフォルトの名無しさん
2005/04/21(木) 20:28:390662デフォルトの名無しさん
2005/04/21(木) 21:26:46というのはおいといて、ワーカースレッド作りたいけど
ATL/WTL的にはなにも手助けしてくれないから
SDKの関数使っていればいいのかな?
かっこいいクラスある?
0663デフォルトの名無しさん
2005/04/21(木) 21:38:090664662
2005/04/21(木) 21:51:40あ、SDKの関数と言うよりはCランタイムの関数
0665デフォルトの名無しさん
2005/04/21(木) 22:34:38CRTThreadTraits
0666デフォルトの名無しさん
2005/04/21(木) 23:11:590667662
2005/04/22(金) 00:33:36CWorkerThreadとかまんまのクラスあるやん
ATL Server クラスのほう見てなかったorz
0668デフォルトの名無しさん
2005/04/24(日) 11:40:28COYaにCKoのインターフェースを作って、そのあとIKoにプロパティ
作ると、なぜかCOYaにもできるのですが、なんでですか。
しかも、
CoCreate(COya,IOya,&oya)
oya->QueryI(CKo,IKo,&ko)
ko->xxx
ってやっても、そのoyaにもできたしまったほうのプロパティのほうを
取りにいこうとしてしまいます。
0669デフォルトの名無しさん
2005/04/24(日) 13:14:51COya、CKoを含めて、その辺のコードを示しなさい。
0670デフォルトの名無しさん
2005/04/24(日) 19:24:07こっちはコードいらずです。
ATLシンプルオブジェ2こつくって、クラスビューワ(?)の
COyaのところで右クリックして、インターフェースでCKoを
追加します。
そして、IKoのところで右クリックしてプロパティ追加ってやると、
IKoに追加してるのにCKoとCOya両方が書き換わってりょうほうに
同じget_xxx set_xxxができちゃいます。なんでCOyaにも
できるのか理解できません。別に継承とかしてるわけではないのに・・。
0671デフォルトの名無しさん
2005/04/24(日) 20:02:080672デフォルトの名無しさん
2005/04/24(日) 20:04:48わかってるくせに。まちがいはてきとうにほかんしなされ
0673デフォルトの名無しさん
2005/04/24(日) 23:53:10_DEBUGの時とそうでないときと違ったりしないよね・・・・?
見事にそうなっちゃったんだけど自分が悪いんだよなぁ・・・
リリースビルドの時だけ背景真っ白
0674デフォルトの名無しさん
2005/04/25(月) 00:47:31ATLASSERTの中に必要な処理を書いてるとか
0675デフォルトの名無しさん
2005/04/25(月) 00:49:36ATLのソースを見れば分るだろ。
0676673
2005/04/25(月) 04:22:07MFCと違ってVERIFYねぇ→式の評価はしてくれるんだろう
と思いこんでた
すまそすまそすまそorz
0677673
2005/04/25(月) 04:31:49#ifdef _DEBUG
#define ATLVERIFY(f)ATLASSERT(f)
#else
#define ATLVERIFY(f)((void)(f))
#endif
0678673
2005/04/25(月) 04:32:520679sage
2005/04/25(月) 14:13:30IKoに追加されてるのは、インタフェイスの宣言としてのプロパティ。
COyaに追加されてるのは、その実装。
インタフェイスを持ってるんだから、実装もあるはず、ということで
COyaに追加される。そこに実装を書く。
たぶんお前みたいな初級者は、
IKoに実装を書いて「IKoに書いたからCOyaに同じメンバいらねぇよ!」とか
思ってるんだろうけど、そのやり方はちょっと間違ってると思う。
0680デフォルトの名無しさん
2005/04/25(月) 23:49:040681デフォルトの名無しさん
2005/04/27(水) 01:04:380682デフォルトの名無しさん
2005/04/27(水) 04:10:200683デフォルトの名無しさん
2005/05/15(日) 02:47:52「COMMAND_RANGE_HANDLER とその使い方」
ttp://homepage1.nifty.com/Roy_/Software/WTL/WTL_Lecture10.htm
0684デフォルトの名無しさん
2005/05/16(月) 23:29:23http://kikyou.info/diary/?200312
これを参考にしているのですが、CreateControl()の引数にどんなIStreamを渡せばいいのかわかりません。
試しにSHCreateStreamOnFile()で適当なSWFファイルを開いて取得できる
IStreamを渡したらCreateControl()に失敗するようになりました。
ご指導おねがいします。
0685sage
2005/05/17(火) 16:16:54そこのサイトに詳しく書かれている通りの内容を帰す IStream を、
>>684自身が作ればいい。
IStreamの実装を自分でしたくない/できないなら、
GlobalAllocでメモリを確保して、そのサイトの情報をもとに内容をセットアップして、
CreateStreamOnHGlobalでメモリストリームを作ってIStream::SetSizeでサイズ指定する、
とかしても良い。
0686デフォルトの名無しさん
2005/05/18(水) 00:04:55{
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
END_MSG_MAP()
LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
{
::OutputDebugString("CMyWindow::OnPaint()\n");
return 0;
}
};
これではOnPaint()のオーバーライドができないのですが
どうすればいいでしょうか?
0687sage
2005/05/18(水) 12:47:53よく知らんが、CAxWindowでクライアント領域一杯にActiveX コントロールが
ホスティングされてる状態だと、無効領域が無いからOnPaintは呼ばれない
んじゃない?
0688デフォルトの名無しさん
NGNGスプリッタウィンドウ周り、クラスブラウザから読めなくてオートコンプリートぜんぜん効かない
これってIDEのテンプレート引数周りのバグ?
atlcrack.hのマクロもクラスブラウザおかしくなるし
ちなみにVS.NET 2003
0689デフォルトの名無しさん
2005/05/19(木) 02:35:07WTLに限らず、ファイルをまたいだマクロは
インテリセンス系は解析しない(できない)。
できるのはprebuilt.ncbに入ってる奴だけよん
バグといえばバグなのかも知れんが、
マクロとかそういうC++の腐った言語仕様を、膨大な数のファイルから
リアルタイムに解析するのはちょっと無理なんじゃないかな
0690デフォルトの名無しさん
2005/05/19(木) 19:30:10仕様的に完璧はムリというのは同意
0691688
NGNG>>689氏の言葉がヒントになった。感謝。
http://ranobe.sakuratan.com/up/updata/up38210.jpg
0692688
NGNGatlsplit.hの上らへんに、atlwin.hからコピってきたマクロをこんな風に貼り付け
#if !defined(__ATLAPP_H__) && !defined(__ATLWIN_H__)
#define BEGIN_MSG_MAP(theClass) \
(略)
#define END_MSG_MAP() \
(略)
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd) \
(略)
#endif
検証してみたが、BEGIN〜とEND〜のマクロだけヘッダに書いてあればクラス構造は
正しく認識できるらしい。
ただしDECLARE_WND_CLASS_EXはデフォではvoid型の関数として認識してた。
しかし、クラス内メッセージマップ持ってるヘッダも他にもあるのに
なんでこいつだけ認識されなかったりしたのだろうか
0693689
2005/05/20(金) 00:21:32おーよかった。
ちなみにVS.NET2003では、自作クラスのときも、
BEGIN_〜END_〜とかDECLARE_〜とかのマクロ系とか、
あとクラス内定義のテンプレートクラスとかいったものは、
できるだけクラスの最後の方に書いた方が
そのクラスのメンバを認識してくれる確率が上がるっぽい。
まあ困ったら試してみる価値はあり。
インテリセンスのためだけにメンバの順番を変えたりするのは
う〜んな感じがしないでもないけど。
0694デフォルトの名無しさん
2005/05/22(日) 11:36:48Imports System
Namespace Class1
Public Interface IClass1
Function Test_Func1() As Integer
Sub Test_Func2(ByVal a As Integer, ByVal b As Integer)
End Interface
Public Class Class1
Implements IClass1
Private m_val As Integer
Public Sub New()
m_test_prop = 0
m_val = 0
End Sub
Public Function Test_Func1() As Integer Implements IClass1.Test_Func1
Return m_val
End Function
Public Sub Test_Func2(ByVal a As Integer, ByVal b As Integer) Implements IClass1.Test_Func2
m_val = a + b
End Sub
End Class
End Namespace
0695デフォルトの名無しさん
2005/05/22(日) 11:39:54で、質問なのですが、
VB.NETで作ったクラスライブラリをアンマネージのVC++から呼ぼうとしているんですが、
何故かクラスライブラリ内のメンバ変数へのアクセスがうまくいきません。
VB.NETコードは上記のとおりで、これをビルド後VC++のプロジェクトにコピーして
RegAsm.exe Test_Dll.dll /tlb:Test_Dll.tlb
を実行して、以下のコードをデバッガで走らせました。
0696デフォルトの名無しさん
2005/05/22(日) 11:40:48RegAsm.exe Test_Dll.dll /tlb:Test_Dll.tlb
を実行して、以下のコードをデバッガで走らせました。
[C++:main.cpp]
#include <windows.h>
#include <atlcomcli.h>
#import "Test_Dll.tlb" named_guids named_guids raw_interfaces_only
void main(){
long ret;
HRESULT hResult;
char path[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, path);
::CoInitialize(NULL);
::CComPtr<Test_Dll::IClass1> comPtr;
//Test_Dll::IClass1* comPtr;
hResult = ::CoCreateInstance((REFCLSID)Test_Dll::CLSID_Class1, 0, CLSCTX_INPROC_SERVER, (REFIID)Test_Dll::IID__Class1, (LPVOID*)&comPtr);
hResult = comPtr->Test_Func2(1, 1); //<-ここでメモリアクセスの例外発生
hResult = comPtr->Test_Func1(&ret); //一行上のコードをコメントにして実行するとret=-858993460
::CoUninitialize();
}
長い書き込みになってホントすいません
よろしくお願いします。
0697デフォルトの名無しさん
2005/05/24(火) 10:52:46DialogBoxIndirectの文字がどこにも無いから無理かなぁと思いつつ
0698デフォルトの名無しさん
2005/05/24(火) 12:27:49ttp://www.codeproject.com/wtl/resourcelessdialogtoolkit.asp
これはどう?お望みのものか分からないが
0700デフォルトの名無しさん
2005/05/24(火) 21:56:42(TVS | LVS)_EDITLABELSスタイルを指定して、ラベルを編集しようとするとエラーがでるんですが、普通に編集できるようにする方法はありますか?
ダイアログベースやMFC・SDKだと大丈夫なようなんですが…
0701デフォルトの名無しさん
2005/05/24(火) 23:07:380702700
2005/05/24(火) 23:48:37atlframe.hの2311行目でStack overflowが発生。
LRESULT OnCommand(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
{ //-- ここでエラー --//
bHandled = FALSE;
if(m_bBlockAccelerators && HIWORD(wParam) == 1) // accelerators only
・
・
環境:
WTL 7.5.5102.0
VC++.NET2003
Windows2000sp4
です。
0703デフォルトの名無しさん
2005/05/26(木) 20:26:39デバッグ実行してとまったところで呼び出し履歴見る!
0704700
2005/05/27(金) 00:29:15CHAIN_CLIENT_COMMANDS()が原因でした…
0705デフォルトの名無しさん
2005/05/28(土) 13:23:46今月のCMAGAZINE6月号に掲載されている特別記事「IEをカスタマイズして自由に操作する」を自分のPCで試してみたのですが、CSampleModuleクラスの定義がウィザードで作成されたコードに組み込まれなくて困っています。
自分の試した方法は、[新規作成]から ATLプロジェクトを新規作成し、プロジェクト名を Sample にしました。
これで Sample.cpp 内に CSmpleModuleクラス が定義されるはずなのですが、Sample.cpp 内に CSmpleModuleクラスの定義は無く、自分で CSmpleModuleクラスを定義しようとすると、
error C2011: 'CSampleModule' : 'class' 型の再定義
というエラーが出てしまいます。
多分どこかには定義されていると思うのですが・・・
具体的に何をしたいのかと申しますと、CSmpleModuleクラス内で DllRegisterServer() と DllUnregisterServer() をオーバーライドしたいのです。
問題の原因は、Cマガの記事で使用されている開発環境が、 .NET2003 なのですが 自分の環境が .NET2002 なのが原因だと思いますが、 .NET2002 でも方法はあるのではと思っています。
方法をご存知の方お願いいたします。
0706デフォルトの名無しさん
2005/05/28(土) 13:28:08クラスビューにCSampleModuleは表示されていないかい?
ダブルクリックすれば定義に飛べるよ。
0707705
2005/05/28(土) 13:38:42返信ありがとうございます。
クラスビューに CSampleModule は表示されているのですが、CSampleModuleクラスにメンバの定義が無いせいかダブルクリックしてもツリーが開かれるだけで定義は表示されません。
ちなみに開かれたツリーには CSampleModule の親クラスと思われる、 [ベースとインターフェース]というツリーが表示されます。
方法をご存知の方、お願いいたします。
0708デフォルトの名無しさん
2005/05/29(日) 14:57:110709デフォルトの名無しさん
2005/05/29(日) 16:26:54MSのサポートなんて必要か?
0710デフォルトの名無しさん
2005/05/29(日) 16:38:06ヘッダソースがあるんがから、自分で直せよ
0711デフォルトの名無しさん
2005/05/29(日) 16:53:18MSに丸投げできるじゃん。
そんなこともわからないの?
0712デフォルトの名無しさん
2005/05/29(日) 17:11:13ソフトを納入される業者はたまったもんじゃないな。
0713デフォルトの名無しさん
2005/05/29(日) 17:37:300714デフォルトの名無しさん
2005/05/29(日) 18:09:28丸投げしても自分のスケジュールが延びたりはしないだろう。。。
だから、投げておいたとしてもバグの回避策とかみんながんばって探すのでわ?
0715711
2005/05/29(日) 18:51:31ごくろうさま。
仕事は遊びじゃないんだから責任の所在って言うのが大事なんだよ。
誰も責任とってくれないオープンソースなんか怖くて使えない。
0716デフォルトの名無しさん
2005/05/29(日) 18:57:370717デフォルトの名無しさん
2005/05/29(日) 19:00:520718デフォルトの名無しさん
2005/05/29(日) 20:54:170719デフォルトの名無しさん
2005/05/29(日) 22:22:16っていったい何のためにやってるんですか?
すっげぇ邪魔なんすけど
0720デフォルトの名無しさん
2005/05/29(日) 22:26:42Win16APIにそんな名前の関数があった名残。
0721デフォルトの名無しさん
2005/05/30(月) 00:27:45> 誰も責任とってくれないオープンソースなんか怖くて使えない。
MS だって責任とらないぞ、別に。
0722デフォルトの名無しさん
2005/05/30(月) 01:20:120723デフォルトの名無しさん
2005/05/30(月) 04:08:42そーだったんすか!!ありがとうごます、Win16てっ使ったことねかったんで。
擬似マルチタスク関係?の関数の名前ぽっいすね。
とりあえず #undef Yield しときます。
>>722
いちよーこれでもWTL使ってんすよ〜〜(汗
0724デフォルトの名無しさん
2005/05/30(月) 09:19:080725デフォルトの名無しさん
2005/05/30(月) 10:15:320726デフォルトの名無しさん
2005/05/30(月) 10:20:030727デフォルトの名無しさん
2005/05/30(月) 19:49:430728デフォルトの名無しさん
2005/05/30(月) 20:02:270729デフォルトの名無しさん
2005/05/30(月) 22:07:230730デフォルトの名無しさん
2005/05/30(月) 22:48:36お邪魔タクシー
灯台下暗しと
大正デモクラシー
お前らそんなレベルだ。
0731デフォルトの名無しさん
2005/06/02(木) 02:40:30インシデントって知ってる?
0732デフォルトの名無しさん
2005/06/02(木) 21:46:550733デフォルトの名無しさん
2005/06/02(木) 21:58:35ちっこい奴はいつまでも続けるからほっとけ。
0734デフォルトの名無しさん
2005/06/02(木) 22:43:060735デフォルトの名無しさん
2005/06/03(金) 13:39:56全然丸投げにならないだろ。
0736デフォルトの名無しさん
2005/06/03(金) 13:51:310737デフォルトの名無しさん
2005/06/03(金) 20:06:57┏┫┃┃┃ 雑談は ┃┃┃┣┓
┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃
┃ ┃┃┏━━━┓┃┃ ┃
┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━━━┛┗┳━┳┛┗━━━━┛
┏┻┓┃
┏━┛ ┣┻┓
┗━━━┫ ┗━┓
. ┗━━━┛
0738デフォルトの名無しさん
2005/06/04(土) 00:19:590739デフォルトの名無しさん
2005/06/10(金) 19:50:080740デフォルトの名無しさん
2005/06/10(金) 21:15:340741デフォルトの名無しさん
2005/06/10(金) 23:53:110742デフォルトの名無しさん
2005/06/11(土) 13:27:160743デフォルトの名無しさん
2005/06/11(土) 22:38:190744デフォルトの名無しさん
2005/06/11(土) 23:41:25ほら、恥ずかしがらずに。
0745デフォルトの名無しさん
2005/06/12(日) 00:04:28ttp://sourceforge.net/tracker/?atid=652372&group_id=109071&func=browse
書式は適当に合わせておけばいいかと
0746デフォルトの名無しさん
2005/06/22(水) 00:04:57http://game10.2ch.net/test/read.cgi/game/1119365420/
0747デフォルトの名無しさん
2005/06/22(水) 06:40:240748デフォルトの名無しさん
2005/06/27(月) 17:56:54WTLを使用する際に、
VCのIDEでインテリセンスをきかせたいのですが、
どうすればいいのでしょうか?
0749デフォルトの名無しさん
2005/06/27(月) 17:58:55俺は特に何かしたつもりは無いが使えている。
0750748
2005/06/27(月) 18:01:11とりあえずWTLを落として解凍し、
ヘッダファイルの入ったディレクトリをIDEのオプションのProjectsのインクルードファイルに追加していますが、
WTLにインテリセンスがきかないんです。
0751デフォルトの名無しさん
2005/06/27(月) 18:03:180752748
2005/06/27(月) 18:11:41それはできます。
たとえば、
class hoge : public CWindowImpl<hoge>なクラスの中で、
WTLのメッセージマップを使ったときに、
CWindowのメンバが表示されなくなるんです。
0753748
2005/06/27(月) 18:57:22http://www.codeproject.com/wtl/WTLIntellisense.asp
0754デフォルトの名無しさん
2005/06/28(火) 07:07:290755デフォルトの名無しさん
2005/07/03(日) 00:22:260756デフォルトの名無しさん
2005/07/03(日) 22:48:240757デフォルトの名無しさん
2005/07/04(月) 10:00:040758デフォルトの名無しさん
2005/07/04(月) 12:14:490759デフォルトの名無しさん
2005/07/04(月) 12:25:020760デフォルトの名無しさん
2005/07/05(火) 18:57:300761デフォルトの名無しさん
2005/07/11(月) 12:15:350762デフォルトの名無しさん
2005/07/18(月) 21:14:250763デフォルトの名無しさん
2005/07/18(月) 22:49:170764デフォルトの名無しさん
2005/07/18(月) 23:22:070765デフォルトの名無しさん
2005/07/20(水) 22:59:47鬼ゴム(5196)とか日本配合飼料(2056)とかシキボウ(3109)あたりがあやしいと思う
筋の仕込みは終わってると思われ
0766デフォルトの名無しさん
2005/07/20(水) 23:00:120767デフォルトの名無しさん
2005/07/20(水) 23:25:390768デフォルトの名無しさん
2005/07/21(木) 07:15:590769デフォルトの名無しさん
2005/07/21(木) 13:47:090770デフォルトの名無しさん
2005/07/23(土) 22:10:490771デフォルトの名無しさん
2005/07/24(日) 09:28:100772デフォルトの名無しさん
2005/07/24(日) 12:03:33ITmedia エンタープライズ:Monadがないなら、Longhornにする意味はない
ttp://www.itmedia.co.jp/enterprise/articles/0506/15/news070.html
0773デフォルトの名無しさん
2005/07/24(日) 12:40:20(;´∀`) 外されたモナー
0774デフォルトの名無しさん
2005/07/29(金) 00:09:38hoge.
と打つとIntelliSenseがMFCの方のCComboBoxの
内容を示してくれるのはどうにかなりませんかねぇ。
WTL::CComboBox としないと正確にWTLの方を表示してくれない。
0775デフォルトの名無しさん
2005/07/29(金) 00:33:390776デフォルトの名無しさん
2005/07/29(金) 00:38:11>>774 むしろ付けれ。MFCとの差別化の意味でね。
0777デフォルトの名無しさん
2005/07/29(金) 00:41:10差別も何も
0778デフォルトの名無しさん
2005/07/29(金) 00:49:34ATL::CStringとWTL::CStringの使い分けな。どっちのヘッダもインクルードしてるんで、明示しないと正しく使ってくれないのよ
0779デフォルトの名無しさん
2005/07/29(金) 01:11:290780デフォルトの名無しさん
2005/07/29(金) 01:33:19でもatlmisc.hもインクルードしちゃってるのよorz
0781デフォルトの名無しさん
2005/07/29(金) 08:34:24#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _WTL_NO_AUTOMATIC_NAMESPACE
0782デフォルトの名無しさん
2005/07/29(金) 21:15:410783デフォルトの名無しさん
2005/08/03(水) 13:10:24プロジェクトに同名のダイアログ(CMainDlg)がプロジェクトに存在すると、ダイアログのリソース
編集画面で、ボタンクリックした時に作られるイベントハンドラのコードの実装が、違うプロジェクトの
方に入っちゃうんだけど、どうすれば直せるの?
0784デフォルトの名無しさん
2005/08/03(水) 23:40:42ボタンクリックで作らない。
てか、プロジェクト毎にクラス名くらい分けようや。
0785デフォルトの名無しさん
2005/08/05(金) 07:46:12WTLのコントロールのテンプレートクラスのメンバ関数を使いたい
かつ、独自のメンバを付け加えたり、それに飛んでくる一部のメッセージを使って何かしたい
ってときにはどうすればいいんですか?
たとえばボタンで、サブクラス化だと、WTL::CButtonとサブクラス化用のクラスの二つを使わないといけないので面倒なんです。
class OresamaSubClass : public CWindowImpl<OresamaSubClass>
{
//略
void OresamaFunction() {SendMessage(WM_SETTEXT, 0, (LPARAM)_T("俺様ボタン"));}
}
//使うとき
WTL::CButton wtl_btn ;
OresamaSubClass btn ;
wtl_btn.Create(ほげほげ) ;
btn.SubclassWindow(HWND(wtl_btn)) ;
//WTL::CButtonのメンバ関数はwtl_btnから
//独自のメンバ関数はbtnから。
これをこんな風にできたらいいですが。
OresamaButton btn ;
btn.Create() ;
//btnからWTLのメンバ関数も独自のメンバ関数も使える。
0786デフォルトの名無しさん
2005/08/05(金) 13:00:58ttp://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/ATLwindowing/
0787785
2005/08/05(金) 16:22:13class OresaamButton : public CWindowImpl<OresamaButton, WTL::CButton>
{
//メッセージマップでもメンバ関数でもなんでも
}
最初、こうやればCButtonを継承できるかと思っていたんですが。
class OresamaButton : public WTL::CButton
ATLやWTLに関する分かりやすいドキュメントってありませんか?
特にWTLに関してはググるよりヘッダ読んだほうが早いような気がするんですが……。
0788デフォルトの名無しさん
2005/08/05(金) 21:11:170789デフォルトの名無しさん
2005/08/08(月) 13:00:51ちと古いが、ATLInternals 読んでおけ。
0790デフォルトの名無しさん
2005/08/09(火) 16:06:040791デフォルトの名無しさん
2005/08/10(水) 20:41:06動作しているActiveXのスレッドIDを取得したいのですが、方法ご存じないでしょうか、
最初、CAxWindowのコンストラクターでGetCurrentThreadId()で取得してみたのですが
どうも動作してるActiveXのスレッドとは違うようでした。
よろしくお願いします。
0792デフォルトの名無しさん
2005/08/11(木) 16:36:40どうして違うスレッドと言い切れるのかわからないが。
もし違うというのであれば、CAxWindowを継承したクラスの
インスタンスを作成したスレッドとそのインスタンスのWindowをCreateしたスレッドが違うことになる。
そのクラスのOnCreateの中でGetCurrentThreadIDを呼びだす、というのではどう?
0793791
2005/08/11(木) 20:49:48レスありがとうございます。
>どうして違うスレッドと言い切れるのかわからないが。
デバッカーで追いかけると「CreateControl」をコールした瞬間にスレッドが作られるのでそう考えました。
(デバッカーのスレッド一覧表示を監視してました)
>そのクラスのOnCreateの中でGetCurrentThreadIDを呼びだす、というのではどう?
CAxWindowのCreateをオーバライトしてGetCurrentThreadIDはやってみたのですが、
これですと「CreateControl」をコールした瞬間に出来たスレッドIDではなくCAxWindowのスレッドIDが戻ってくるようでした。
何か情報ありましたらお願いします。
0794デフォルトの名無しさん
2005/08/11(木) 20:55:18ToolHelpAPIでThreadを列挙して、差分でも取ったら?
0795デフォルトの名無しさん
2005/08/11(木) 21:56:44どなたかご存知ないでしょうか?
0796デフォルトの名無しさん
2005/08/12(金) 00:21:22http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl13-02/index.html
0797デフォルトの名無しさん
2005/08/12(金) 01:06:47一個のツールバーのボタンの並びの中にコンボボックス埋め込みたいんじゃないの?
区切り線の上に無理矢理配置させるとかかなりトリッキーな方法使わないとできないけど。
MFCだとダイアログバーってのがあったけど、複数コントロール細長のダイアログ作って
リバーとして登録するだけの代物だな。もちろんWTLでも可能。
でもこれだとシェブロンが(少なくとも自動的には)描かれない。
0798デフォルトの名無しさん
2005/08/17(水) 19:17:52なんじゃこりゃ、って感じで困惑してるんですが。
ATLシンプルオブジェクト
[
coclass,
threading("apartment"),
vi_progid("uu.www"),
progid("uu.www.1"),
version(1.0),
uuid("4FA2C351-B4C6-4548-950B-53E49347AD4B"),
helpstring("www Class")
]
class ATL_NO_VTABLE Cwww :
public Iwww
{
public:
Cwww(){}
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct(){ return S_OK; }
void FinalRelease() {}
public:
};
IwwwはDualインターフェースなんだけど、
そもそもIUnknownの実装やIDispatchの実装を担う部分がない。
このクラスファクトリも定義されているところも見当たらない。
一体どうなってるの?ヘッダにidl属性[・・・]が入っている時点でもはや
C++じゃないし。
0799デフォルトの名無しさん
2005/08/17(水) 20:10:470800デフォルトの名無しさん
2005/08/17(水) 20:13:41ATL ウィザードのどっかに、”属性”がどーたらいうオプションがあるから、
ソレをはずせば、旧来の(VC6時代の)コードが吐かれる。
0801800
2005/08/17(水) 20:18:11ちなみに属性プログラミングをすると、IDL が作成されないので、
個人的には便利だと思ってるけど、細かい変更が出来ないので
オレは結局属性は使ってない。
0802798
2005/08/17(水) 20:20:22属性は何かちょっと気持ち悪い気がしますね。
0803デフォルトの名無しさん
2005/08/17(水) 21:15:38そうだったのか
ATLはもうちょっとわかりやすくならんのか
0804デフォルトの名無しさん
2005/08/17(水) 22:28:03展開されたコードを見ると反吐が出るが(w
0805デフォルトの名無しさん
2005/08/18(木) 00:58:010806デフォルトの名無しさん
2005/08/18(木) 12:18:06ところでみんな読んでるの?>ATLInternals
この前買おうと思って書店いったらおいてなかった。
というかATL関係の本が1冊しかなかった。
.NETの本はやたらあるんだが。
MSの主張とは裏腹にまだまだ必要とされてると思うんだけどな。
0807デフォルトの名無しさん
2005/08/19(金) 01:41:50今やってるのも.netって話だったけど面倒だからATLで作っちゃった。
でもATLもBEGINXXとかマクロいっぱいで勉強する気がおきん。
0808デフォルトの名無しさん
2005/08/20(土) 11:17:260809デフォルトの名無しさん
2005/08/25(木) 18:43:03アルファー付きビットマップの取得には、IViewObjectExのDrawで取得してるんですが、
画像自体は正しく拾えてきてるようなんですが、アルファーチャンネルが正しく拾えなく困ってます。
アルファーチャンネルの数値を見ると、0かFFしか無い感じです。
何方かアルファーチャンネルの取得の仕方をご存じありませんでしょうか。
IOleInPlaceObjectWindowlessがかなり怪しいと感じてるんですが。
何か情報ご存じでしたら教えてください。よろしくお願いします。
0810デフォルトの名無しさん
2005/08/25(木) 18:53:08前にもコメントしたかもしれませんが、無理です。
そもそも IViewObject が描画対象とする DC は普通の GDI の DC なわけで、
ほぼ全てのActiveXオブジェクトは、どうあがいてもαチャンネルなど描画して
はくれません。
InPlace で Windowless なCOMオブジェクトは、単に与えられたDCの既存の
背景の上に上書きする形で自分自身を描画しているだけです。
時間が掛かってもかまわないのであれば、黒い背景の上に描画、白い背景の
上に描画、と2度繰り返して差分を取って反転すればほぼα情報に近いものが
得られるような気もしますけど・・・
0811809
2005/08/25(木) 19:16:39コメントありがとうございます。
私はこちらへの書き込みは初めてですが、以前のコメントは見逃してしまいました。
すれを頭から見てみます。すいません。
このURLにある商品はFlashのActiveXのプラグインを使用して背景を透過しているのですが、
これと似たようなことをしようと考えてます。
htt://www.screentime.com/software/mprojector/
こちらはサンプルの実行ファイルです。
htt://www.screentime.com/downloads/red_rubber_ball.exe
とりあえず自分もFlashを使用して透過の実験を行っているのですが、FlashPlayer7であれば一部(デバイスフォントの表示が何故が透過されてしまう)
を除いてコンテンツのアルファーが反映され表示されていたんですが、
FlashPlayer8にバージョンアップしてしまうと挙動が変わり、先に書き込みしたような状況になってしまっています。
このソースを参考にしています。
ttp://s-tomo.sakura.ne.jp/haruna/040707.cpp
また何か情報ございましたらよろしくお願いします。
0812デフォルトの名無しさん
2005/09/07(水) 22:17:48ttp://sourceforge.net/projects/wtl
0813デフォルトの名無しさん
2005/09/07(水) 22:59:03ヒント: ウィンドウレス
0814809
2005/09/08(木) 10:33:11レスありがとうございます。
>ヒント: ウィンドウレス
これって「IOleInPlaceObjectWindowless」の事指してますか?
自分は、名前からしてこれが"くさい"と思いATLのヘッダー見てみたんですが、自分では解決出来そうな情報が見つけられませんでした。
出来ましたら、もう少し具体的に教えていただけると助かります。
よろしくお願いします。
0815デフォルトの名無しさん
2005/09/10(土) 10:07:07Windows用の軽量ウィンドウクラスライブラリとしては今は何がはやってんだろ?
0816デフォルトの名無しさん
2005/09/10(土) 10:15:040817デフォルトの名無しさん
2005/09/10(土) 16:27:37独 自 実 装
0818名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:25:01てか、2chにカキコがなかったら廃れたことになるのかよ w
0819デフォルトの名無しさん
2005/09/15(木) 07:05:57一つの指標にはなるだろうよ。英語圏は知らんがなー
0820デフォルトの名無しさん
2005/09/29(木) 23:59:500821デフォルトの名無しさん
2005/09/30(金) 00:14:200822デフォルトの名無しさん
2005/09/30(金) 01:36:110823アホ
2005/09/30(金) 01:55:180824デフォルトの名無しさん
2005/09/30(金) 02:00:30ttp://pc8.2ch.net/test/read.cgi/pcnews/1099389901/238-
0825デフォルトの名無しさん
2005/09/30(金) 23:04:24ttp://groups.yahoo.com/group/wtl/message/1317
↑+自己処理以外に何か良い方法はありますか?
SetMenuItemInfo、CheckMenuRadioItemは両方ともチェックがつかないので駄目でした。
環境:
win2000sp4
VC++.NET2003
WTL 7.5.5249.0
0826デフォルトの名無しさん
2005/09/30(金) 23:47:100827デフォルトの名無しさん
2005/10/01(土) 02:09:130828デフォルトの名無しさん
2005/10/01(土) 09:57:080830デフォルトの名無しさん
2005/10/02(日) 14:32:290831デフォルトの名無しさん
2005/10/08(土) 09:07:42キタ
0832デフォルトの名無しさん
2005/10/08(土) 17:32:55そんなの今まで無かったしさぁ。
まったく騙そうったってそうはいかな・・・・ほんまや!
0833デフォルトの名無しさん
2005/10/08(土) 18:12:080834デフォルトの名無しさん
2005/10/12(水) 02:46:290835デフォルトの名無しさん
2005/10/12(水) 09:44:060836デフォルトの名無しさん
2005/10/12(水) 21:36:290837デフォルトの名無しさん
2005/10/13(木) 22:42:160838デフォルトの名無しさん
2005/10/13(木) 23:37:010839デフォルトの名無しさん
2005/10/14(金) 20:28:440840デフォルトの名無しさん
2005/10/17(月) 10:38:270841デフォルトの名無しさん
2005/10/17(月) 18:00:240842デフォルトの名無しさん
2005/10/17(月) 18:34:57↑ここでの評価が五つ星なのだが、このスレの住人が投票したのかな。
むしろ下の個人HPでの実績にたいする評価っぽいのだが・・・。
ま、不満はないけどね。WTLを日本語ドキュメントにしてくれてる貴重な人だし。
ttp://home.att.ne.jp/banana/akatsuki/
0843デフォルトの名無しさん
2005/10/17(月) 20:43:19下のページは読みやすいけど、上のはちょっとね・・・
0844デフォルトの名無しさん
2005/10/18(火) 10:48:150845デフォルトの名無しさん
2005/10/18(火) 12:48:41無愛想な画面しか表示されませんけど・・・
0846デフォルトの名無しさん
2005/10/18(火) 19:30:13>>841
無愛想な画面しか表示されませんけど・・・
0847デフォルトの名無しさん
2005/10/18(火) 20:11:26無限の情報への入り口と言いたまへ
0848デフォルトの名無しさん
2005/10/20(木) 22:11:52とりあえず次のように実装してるんですが、一向にキーの押下情報などのメッセージが受信できません。
class CtestDlg : public CDialogImpl<CtestDlg>
{
public:
virtual BOOL PreTranslateMessage ( MSG * pMsg )
{
ATLTRACE( "uMsg=%x\n" , pMsg->message ) ;
return TRUE ;
}
BOOL PreTranslateAccelerator( MSG * pMsg )
{
ATLTRACE( "uMsg=%x\n" , pMsg->message ) ;
return TRUE ;
}
BOOL TranslateMessage(MSG* pMsg)
{
ATLTRACE( "uMsg=%x\n" , pMsg->message ) ;
return TRUE ;
}
}
何方か情報がありましたら、教えてくださいよろしくお願いします。
0849デフォルトの名無しさん
2005/10/20(木) 22:38:46PreTranslateMessageはWTL::CMessageFilterを継承していなければならない。
0850デフォルトの名無しさん
2005/10/21(金) 02:00:13AddMessageFilterは呼んだの?
0851デフォルトの名無しさん
2005/10/21(金) 07:06:050852デフォルトの名無しさん
2005/10/28(金) 23:48:57WTL8.0クル━━━(゚∀゚)━━━ !!!
0853デフォルトの名無しさん
2005/10/29(土) 06:21:56const CLSID ID_Foo = {1, 2, 3, {4, 5, 6, 7, 8, 9, 10, 11}};
const IID IID_IFoo = {11, 10, 9, {8, 7, 6, 5, 4, 3, 2, 1}};
class IFoo : public IUnknown {
public:
STDMETHOD_(DWORD, FooAdd)(DWORD a, DWORD b) { return a + b; }
IFoo() : m_dwRef(0) {}
STDMETHOD(QueryInterface)(REFIID iid, VOID **ppI) { /* 省略 */ }
STDMETHOD_(ULONG, AddRef)() { return ++ m_dwRef; }
STDMETHOD_(ULONG, Release)() { /* 省略 */ }
private:
DWORD m_dwRef;
}; /* 以下略 */
これを使うクライアントはどう書けばいいのでしょうか? 例えば、DLLでないかもしれなくても、直接pifoo->FooAdd()などとしてもよいのでしょうか?
また、他人にこのサーバを使わせるには、以下のconst IID...とclassの部分をヘッダファイルにして渡せばいいのでしょうか? それともタイプライブラリというものを作るのでしょうか?
あと、おかしいところを指摘して下さい。
const IID IID_IFoo = {11, 10, 9, {8, 7, 6, 5, 4, 3, 2, 1}};
class IFoo : public IUnknown {
public:
STDMETHOD_(DWORD, FooAdd)(DWORD, DWORD);
};
void main() {
IFoo *pifoo = NULL;
CoInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(L"Foo", &clsid);
CoGetClassObject(clsid, CLSCTX_ALL, NULL, IID_IFoo, (void **)&pifoo);
DWORD dwResult = pifoo->FooAdd(1, 2);
printf("FooAdd(1, 2) = %d\n", dwResult);
pifoo->Release();
} /* エラーチェックは省略 */
0854デフォルトの名無しさん
2005/10/29(土) 09:18:010855デフォルトの名無しさん
2005/10/29(土) 09:37:16いきなりサーバを作ろうと考えるな。とりあえずクライアントを使うだけに徹しろ。
0856デフォルトの名無しさん
2005/10/29(土) 10:36:30Inside COMでも読んでみなよ。それからここに来てね。
0857デフォルトの名無しさん
2005/10/29(土) 11:34:57このスレできくんだからサーバー側はATLのウイザード使えばいいのに。
クライアントはヘッダーとxxx_i.cつかえばOK。#importとかもあるけど
あとFooAddのリターンおかしいよ
0858デフォルトの名無しさん
2005/10/30(日) 01:00:250859デフォルトの名無しさん
2005/10/31(月) 00:22:01const CLSID ID_Foo = {1, 2, 3, {4, 5, 6, 7, 8, 9, 10, 11}};
const IID IID_IFoo = {11, 10, 9, {8, 7, 6, 5, 4, 3, 2, 1}};
こんな書き方はじめてみたのは俺だけ?
>>853
ATL Server/Client のサンプルでもみれば
0860デフォルトの名無しさん
2005/10/31(月) 00:32:090861デフォルトの名無しさん
2005/11/01(火) 01:52:560862デフォルトの名無しさん
2005/11/01(火) 07:34:360863デフォルトの名無しさん
2005/11/01(火) 18:25:59サーバのDLLがインターフェイスへのポインタを返す関数を独自に公開してしまえば……。
駄目か?
0864デフォルトの名無しさん
2005/11/01(火) 18:47:410865デフォルトの名無しさん
2005/11/01(火) 19:48:14あと「ATL インターナル」に載ってるサンプルコードってどこいったらありますかね?
情報ありましたら、よろしくお願いします。
0866デフォルトの名無しさん
2005/11/01(火) 21:04:24直接DllGetClassObjectを呼べば出来る。
十分COMだと思うが。
0867デフォルトの名無しさん
2005/11/01(火) 22:55:05こいつを使おうとすればCoInitialize(Ex)も必要になるしな。
0868デフォルトの名無しさん
2005/11/01(火) 23:16:24Firefox (だっけ?)とか、RealPlayer とかはそんな感じだよね。
0869デフォルトの名無しさん
2005/11/02(水) 02:24:150870デフォルトの名無しさん
2005/11/02(水) 16:39:32レスありがとうございます。
具体的な問題としては、CAxWindow、CAxHostWindowでActiveXコンポーネントをインスタンス化したウインドウで「WM_KEYDOWN、WM_KEYUP」のイベントを取得したいんですが、
キーを押しても一向に流れてこないんですよ、「WM_SYSKEYDOWN、WM_SYSKEYUP」は来るんですが、
自分はまだCOM、ATLの知識が乏しいもので、具体的なサンプルなどどこかに無いものかと思いまして。
何か情報ありましたら、よろしくお願いします。
0871869
2005/11/02(水) 23:51:17CAxWindow を継承したビューで
BOOL PreTranslateMessage(MSG* pMsg)
if((pMsg->message < WM_KEYFIRST || pMsg->message > WM_KEYLAST) &&
(pMsg->message < WM_MOUSEFIRST || pMsg->message > WM_MOUSELAST))
return FALSE;
if ( pMsg->message == WM_KEYDOWN ) {
return SendMessage(pMsg->message, pMsg->wParam, pMsg->lParam);
}
return (BOOL)SendMessage(WM_FORWARDMSG, 0, (LPARAM)pMsg);
}
みたいにやって受け取るのはダメ?
正しいやり方をご存知のかたは教えていただけると幸い
ちなみに、こことか参考になるかな?
http://www.codeproject.com/wtl/wtl4mfc6.asp
の Keyboard Handling のセクションとか
そして ATL インターナルのソースは
http://www.wiseowl.com/downloads/downloads.aspx から入手可
0872デフォルトの名無しさん
2005/11/06(日) 13:57:38頑張るのはいいけど方向違うwwww
0873デフォルトの名無しさん
2005/11/06(日) 13:58:460874869
2005/11/06(日) 14:48:270875OLE馬鹿
2005/11/07(月) 13:32:41>>865
とりあえず
つ <Inside OLE 第二版>
っていうか、
CAxHostWindowでActiveXコンポーネントをインスタンス化したウインドウで
*だれ*の WM_KEYDOWN取りたいかによって違うよ。
きみと違ってみんなエスパーじゃないんだから、
はっきり書かないとわかんねぇよ。
0876853
2005/11/12(土) 06:28:52重大な事を書き忘れていました。
私はVCでなく、BCコマンドライン無料版(BCC)を使っています。
VCは使ったことがありません。
ですから実際の所、ATLもクラスウィザードもわかりません。
以前はCOMのスレがあったような気がするのですが、無くなったみたいなのでここに来ました。
Inside COM/Inside OLEは欲しいのですが、高いです。
それでMSDNで勉強しています。英語なので難しいですが・・・
Platform SDKは落としたいのですが、大きすぎます。アナログ電話ですから・・・
真に無料のプログラミングを目指しているので、電話代がかかるものはなるべく落とさないようにしています。(だから無料でもBCBは使っていません)
ちなみに、MIDLコンパイラが欲しいのですが、SDK以外にはあるでしょうか?
>>855
オートメーションやその他のインターフェースのサーバー(IEなど)について一応動作するクライアントを書いてはみたのですが、タイプライブラリの使い方がわからないのでヘッダが存在するオブジェクトしか操作できません。
それで最も簡単なサーバーについてタイプライブラリを作ってみたいと思ったのですが・・・
クライアントからのタイプライブラリの使い方を理解するのにいい既存のオブジェクトはあるでしょうか?
>>857
xxx_i.cというのは、どうやると生成されるのですか? IDEでサーバーをコンパイル? MIDL.EXE?
それと、FooAddのリターンは何がおかしかったですか?
あと一般的な質問があります。
1. たいていのコードでは、インターフェースと実装は、別のクラスに分けられていますが、これはなぜなのでしょうか? 分けないとどういう不都合が起こるのでしょうか?
2. COMの一般的なコードでは、Co/CreateInstance()が「オブジェクト」の生成を担うことになっているようですが、IClassFactoryはサポートせず、Co/DllGetClassObject()で目的オブジェクトの生成を行う、というスキームはあり得ないのでしょうか?
さらに、オブジェクトが必要なく、グローバルな関数機能だけが欲しい場合に、私が書いたようにすることはないのでしょうか?
0877デフォルトの名無しさん
2005/11/12(土) 09:17:471.
インターフェイスと実装を分離しておけば、実装クラスに変化があっても、
インターフェイスには何の変化もなくバイナリ互換でそのまま使い続けられる。
COMもそれを取り入れた。
2.
無理。そんなことしたいなら別にCOMを使わないで好きにやればいい。
0878デフォルトの名無しさん
2005/11/13(日) 01:19:15>Platform SDKは落としたいのですが、大きすぎます。アナログ電話ですから・・・
>真に無料のプログラミングを目指しているので、電話代がかかるものはなるべく落とさないようにしています。(だから無料でもBCBは使っていません)
>ちなみに、MIDLコンパイラが欲しいのですが、SDK以外にはあるでしょうか?
この時代にネタか?
0879デフォルトの名無しさん
2005/11/13(日) 01:40:18853を相手にするのはやめよう。
InsideCOMは買えないとか、PSDKも落とせないとか、もういいよ。
0880デフォルトの名無しさん
2005/11/13(日) 11:57:58InsideCOMって5000円もしたのか・・・
0881デフォルトの名無しさん
2005/11/14(月) 08:18:04悲しい。そんなスレ悲しすぎる・・・
0882デフォルトの名無しさん
2005/11/15(火) 18:26:42{
_T( "初期化項目1" ) ,
_T( "初期化項目2" ) ,
_T( "初期化項目3" ) ,
_T( "初期化項目4" )
} ;
こんな事したいんですけど、どう書けばできますか?
0883デフォルトの名無しさん
2005/11/15(火) 19:41:01できないので個別に追加する
0884デフォルトの名無しさん
2005/11/15(火) 20:16:42みたいなのならできたような気がする。
つまり演算子を隔てて初期化項目を並べればよかったはず。
templateスレか何かで出た様な。
0885デフォルトの名無しさん
2005/11/15(火) 20:40:26#include <functional>
PCTSTR pszInitializer[] =
{
_T("初期化項目1"),
_T("初期化項目2"),
_T("初期化項目3"),
_T("初期化項目4"),
};
CSimpleArray<CAtlString> strArray;
std::for_each(pszInitializer, pszInitializer + sizeof pszInitializer / pszInitializer[0],
std::mem_fun1_ref(CSimpleArray<CAtlString>::Add);
コンパイルは試していないから少々間違っているかもしれない。
こんなことするなら初めからstd::vector使うべきか。
0886デフォルトの名無しさん
2005/11/15(火) 21:36:47一晩もかからんだろ
0887デフォルトの名無しさん
2005/11/15(火) 21:44:420888デフォルトの名無しさん
2005/11/15(火) 21:47:050889デフォルトの名無しさん
2005/11/18(金) 20:26:16これでコンパイルが通った。(VC8)
もっと簡単な書き方があるかもしれん。
template<class T>
class CSimpleArrayEx2 : public CSimpleArray<const T&>
{
public:
CSimpleArrayEx2& operator()(T t)
{
Add(t);
return *this;
}
};
CSimpleArrayEx2<int> sAry = CSimpleArrayEx2<int>()(1)(2)(3);
sAry(4)(5)(6);
0890デフォルトの名無しさん
2005/11/19(土) 05:21:510891デフォルトの名無しさん
2005/11/19(土) 16:54:14ちゃちゃっちゃちゃんちゃん
ちゃんちゃかちゃんちゃん
ちゃちゃっちゃちゃんちゃん
♪灯油を給油しようとお〜も〜たら〜
あふれてこぼれちゃいました〜(自動)
チックショ
0892デフォルトの名無しさん
2005/11/19(土) 19:38:42スプリッタウィンドウにタブビューを貼り付けて利用してるんですが、
どうも奇妙な現象が発生中。
/ML時に、タブが配置される(タブが増減する)領域が、
起動前の背景と同じになってしまいます。
…なぜか背景ブラシが設定されてないんです。
何故なんでしょうか?
因みに/MLd時は正常に動作してます。
[環境]
VCTK1.01 WTL7.5.5280.0 Beta1 ATL3.0
0893デフォルトの名無しさん
2005/11/20(日) 16:27:50変数の初期化忘れとかじゃなくて?
0894デフォルトの名無しさん
2005/11/20(日) 17:36:27変数ですか…?
う〜ん、現在の状態では、特に変数は使って無いです…(スケルトンに近い)
もしかして、ATL or WTLのメンバ変数の事でしょうか?
デバック版のLIBCD.libで上手くいって、
LIBC.libでヘマる理由が不明で、かなり困惑中。
0895892
2005/11/20(日) 17:46:05親子関係か、メッセージの反射あたりのような気がするがメッセージ
マップとか、Window を作っているあたりのソースを出してもらえれば
検証するよ?
うpろーだに揚げてくれても可
0896デフォルトの名無しさん
2005/11/20(日) 18:12:39宜しくお願いします。私では、サッパリなので…
ttp://kuroneko-upload.no-ip.info/uploader/sn/src/up1955.zip
一応、丸ごと入れときました。後、必要ないかもしれませんが、
例のオプションだけ変更して、ビルドしたバイナリも同梱しておきました。
0897892
2005/11/20(日) 18:23:45現象は確認できたけど。
0898デフォルトの名無しさん
2005/11/20(日) 18:49:28コンパイル時に使っているbatファイル↓(*要PATH設定)
ttp://kuroneko-upload.no-ip.info/uploader/sn/src/up1958.zip
これをもし、使うならソースファイルと同ディレクトリで実行して下さい。
日本語の正式版でたらVC8(勿論Express版)使いたい…12月が待ち遠しいです
0899892
2005/11/20(日) 19:18:18動いているなぁ・・・。
たぶんソースの問題ではなくて define されている値の問題のような
気がするんだけど、
define.h の
#define WIN32_IE0x0200
は、まずいんじゃない?
少なくとも俺の環境だと、
fatal error C1189: #error : WTL requires IE version 3.0 or higher
とでるし、commctrl.h の ICC_TAB_CLASSES をみると
#if (_WIN32_IE >= 0x0300) のなかで定義されてるから。
とりあえず、
#define WIN32_IE0x0300
にしてみたらどう?
#はずしてたらごめん
0900デフォルトの名無しさん
2005/11/20(日) 19:37:30IDEがある人が羨ましいです。
defineの値を変更してみたのですが、変化がありませんでした…
一応、全てのdefineを消してみたりもしたのですが、駄目でした。
0901デフォルトの名無しさん
2005/11/20(日) 19:50:24#define _WIN32_IE 0x0300
じゃない?(先頭にアンダーバー)
ただのミスかもしれんが。
0902892
2005/11/20(日) 19:59:17たしかに
>>900
とりあえず、_WIN32_IE 0x0300 にしてみて
それと、俺のコンパイルオプション
/O1 /D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG"
/D "_ATL_MIN_CRT" /D "_MBCS" /FD /ML /GS
こっちがリンカのオプション
/OUT:"Release/app.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:WINDOWS /MACHINE:X86
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
odbc32.lib odbccp32.lib
0903892依頼者
2005/11/20(日) 20:01:31そうですね。修正したら、>>899にあるエラーメッセージが出るようになりました。
しかし、修正しても背景ブラシが設定されないままです…
0904892依頼者
2005/11/20(日) 20:12:24提示されたオプションでビルドしてみましたが、結果は変わりませんでした…
何故…?
すみません…なんかかなり面倒ですよね、コレ。
0905892
2005/11/20(日) 20:27:02DECLARE_WND_SUPERCLASS(NULL, CTabCtrl::GetWndClassName())
コレをコメントアウトしてみたら?
0906デフォルトの名無しさん
2005/11/20(日) 20:42:18comctl ver 6.0(XPビジュアルスタイル)の場合にそんな現象出てた気が…
サブクラス化して背景ブラシ設定して回避したんだっけかなあ。
Rebarもスタイルによっては、上2ドットくらい背景透けてたこともあったかも。
0907892& ◆mVxpvGktgc
2005/11/20(日) 20:45:170908892
2005/11/20(日) 21:05:45ためしに Windows 2000 で試してみたけど、彼のビルドしたやつは
背景が描画されなかったので、ちょっと違うような気もする。
再現しないのは、俺が ATL 7.1 だからか?
0910デフォルトの名無しさん
2005/11/21(月) 09:02:45そのbatでやってみたけど、うちでも正常だな。因みに
#define _ATL_NO_DEFAULT_LIBS
#define _ATL_NO_AUTOMATIC_NAMESPACE
を消さないとビルド出来なかった。
こちらはATL7.1 WTL7.5。環境が違うので何とも言えんな…
0911892依頼者
2005/11/21(月) 15:25:22defineを消してみましたが、やはり変化無しです…
どうもdefineは関係ないと思われます。一応、いろいろ消してみたので。
0912デフォルトの名無しさん
2005/11/21(月) 22:05:380913893
2005/11/21(月) 23:02:05ためしに VC6 + ATL3.0で試してみたが再現しない
http://groups.yahoo.com/group/wtl/message/11898
ここをみると、正式にサポートしてないみたいだね。
ってことは、PlatformSDK の ATL を無理やり?使ってると推測して、
Win64\ATL にある atldef.h のバージョンは確かに3.0になってるけど、
VC6 でインストールされる ATL と DIFF 取ってみるとずいぶん差分が
あるんだよね(修正だけかどうかわからん)
http://www.kakaku.com/prdsearch/detail.asp?PrdKey=03107010096
買ってもそんなに高くないような気がするけど
同じ環境で試している人のレスを待ったほうがいいかも
0914デフォルトの名無しさん
2005/11/21(月) 23:30:54PSDKのATL3.0はそのままではWin32で使えない。
ビルドはできるがランタイムエラーが発生するらしい。
Microsoft Visual C++ Toolkit 2003 質問箱
http://pc8.2ch.net/test/read.cgi/tech/1109618655/53
0915893
2005/11/21(月) 23:34:26そうでしたか、フォローありがとうございます。
いや、再現できないし、ググッてみると、VC++ 2003 Toolkit + PSDK ATL
っていう組み合わせを使っている人がひっかかったので、892 ももしかして
そういう環境だから、おかしいのかな?と思ったんで
0916デフォルトの名無しさん
2005/11/21(月) 23:36:040917892依頼者
2005/11/22(火) 00:54:05>>912-915
記憶が曖昧なのですが、言われてみればそうかもしれません…
ただ、PSDKからとって来た事は間違いないでしょう。
(DSDKにはありませんよね?)
ただ、>>914のリンク先の記述と、こちらの持ってるatlwin.hが違う…
単純にバージョン違いならいいのですが。
WTLは完全にフリーで使えるライブラリだと思ってたのに…残念です
0918デフォルトの名無しさん
2005/11/22(火) 02:55:20警告がウザイ以外は今のところ問題無いよ。
http://pc8.2ch.net/test/read.cgi/tech/1131590396/16-17
0919914のリンク先の53
2005/11/22(火) 04:15:49あれは一つ前(2003年2月版だったかな?)のPSDKに入ってたATLです。
最新のPSDKのは、下のスレで別の人が対処法を書いています。
VC6使いがVC8 Expressを使ってみるスレ
http://pc8.2ch.net/test/read.cgi/tech/1131590396/17
PSDKに付属していないatlthunk.libの中にあると思われる関数を
直接atlbase.hに書き込むという対処法で、これで確かに動くようには
なるのですが、何せatlthunk.libの中で実際にはどういう処理が
行われているのか分からないので、安全かどうかは分かりません。
0920892依頼者
2005/11/22(火) 20:44:51VC8ExpressにはATLありませんよね?
WTL使えるってのはPSDKのを利用と言う事ですしょうか?
>>919
どうやらその対処法は、こちらも行っていたみたいです。
ただ、atlwin.hの修正は知らなかったのでやってみたのですが、
逆にwarningが発生します…
0921デフォルトの名無しさん
2005/11/23(水) 02:09:04当然OLEDBもダメだから
mdbファイルのデータ吸出しも無理だなきっと。
0922デフォルトの名無しさん
2005/11/23(水) 03:31:08子ウィンドウとして作成したら、親のビュークラスに向かってWM_PAINTが送られ続け、止まらなくなるという
変な状態になったんですが、原因と解決策が分かる方いらっしゃいますか?
MainFrame
+-ViewA
+-ViewB
↑ウィンドウはこんな感じの階層です。
ViewAに向かってWM_PAINTが延々と送られ、CPU使用率がMAXになってしまいます。
0923デフォルトの名無しさん
2005/11/23(水) 03:40:22WM_PAINTのハンドラでCPaintDCオブジェクトを作ったら直りました。
いまいち理解できないので、もうちょっと勉強してきます。
0924デフォルトの名無しさん
2005/11/23(水) 09:12:08ADO
0925デフォルトの名無しさん
2005/11/23(水) 10:02:51上手く動きません。
WTL::CMenuHandle m;
m.Attach(LoadMenu(_Module.GetResourceInstance(),MAKEINTRESOURCE(IDR_MAINFRAME)));
m.InsertMenu(1,MF_BYPOSITION | MF_STRING,1,_T("test"));
どう試行錯誤してもorz解決策ご存知の方居ましたら教えて頂けると幸いです
0926デフォルトの名無しさん
2005/11/23(水) 10:54:07m.LoadMenu(IDR_MAINFRAME);
でいいんじゃない?
0927デフォルトの名無しさん
2005/11/23(水) 11:24:05解決しました。。。
どうやらSetMenu(m);を入れないとダメだったようです。
0928デフォルトの名無しさん
2005/11/23(水) 22:28:00うまく解決する方法ってありますか?
メーリングリストにも綺麗な解決策はありませんでした。
0929デフォルトの名無しさん
2005/11/23(水) 23:06:28エンドユーザにどんなにおかしくても笑いをこらえるよう、お願いすれば解決する。
プログラマ側でエンドユーザの笑いのセンスを取得して処理するような仕様はクソだぞ。
0930デフォルトの名無しさん
2005/11/23(水) 23:21:09えーと、説明が下手ですみません。
クラスビューというのは、VCに付いているクラスの一覧を表示する機能を持ったパネルのことです。
BEGIN_MSG_MAP_EXを使うと、これがクラスのメソッドをうまく解析してくれないので、
なにか、うまい解決策はないものかと。
0931デフォルトの名無しさん
2005/11/23(水) 23:45:26M$に文句言う。
0932デフォルトの名無しさん
2005/11/23(水) 23:46:59VS2005
0933デフォルトの名無しさん
2005/11/24(木) 00:06:35レスども。
最新版では直ってるんですね。
とりあえず、メーリングリストのやり方で対策しときます。
0934デフォルトの名無しさん
2005/11/24(木) 06:39:470935デフォルトの名無しさん
2005/11/30(水) 07:57:390936デフォルトの名無しさん
2005/12/05(月) 23:29:47http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=8baf310d-75a9-489a-9a76-c18c0e727d95
0937デフォルトの名無しさん
2005/12/05(月) 23:50:29日本語で書いていいとは知らなかった。
0938デフォルトの名無しさん
2005/12/05(月) 23:59:560939デフォルトの名無しさん
2005/12/06(火) 00:39:51いいね。
でも日本語だと、日本人以外の投票者は得られないかな…
0940デフォルトの名無しさん
2005/12/06(火) 01:39:18オープンソース化にはあまり賛成出来ないな。
0941・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/06(火) 02:03:16WTLにも独自のCStringがあるしなぁ。むしろSTLのstringクラスとの互換性強化きぼん。
0942デフォルトの名無しさん
2005/12/06(火) 03:11:230943デフォルトの名無しさん
2005/12/06(火) 03:53:06IntellisenseがMFCのクラスと勘違いした支援出してくるのが困る。
0944デフォルトの名無しさん
2005/12/06(火) 04:01:49940はダウトだろ
0945・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/06(火) 04:29:580946デフォルトの名無しさん
2005/12/06(火) 04:36:30atlstr.h -- ATL用
afxstr.h -- MFC用
ってことでいいのかな?
0947デフォルトの名無しさん
2005/12/06(火) 07:40:23MFCとATLではTraitsも違う。
0948デフォルトの名無しさん
2005/12/06(火) 09:13:01実装の差異があるかどうかじゃなくてヘッダを共有してる事実こそ重要だろ。
0949デフォルトの名無しさん
2005/12/06(火) 09:52:56論点はそこじゃないだろ
940の日本語が紛らわしいのが悪いとみたw
皆は「ATLがMFCを使っている」と解釈
0950デフォルトの名無しさん
2005/12/06(火) 12:06:450951デフォルトの名無しさん
2005/12/06(火) 12:16:04皆なんて言うな皆なんて。
0952デフォルトの名無しさん
2005/12/06(火) 14:32:530953デフォルトの名無しさん
2005/12/06(火) 18:38:45これはいけないことですか?
CAtlArray<IHTMLDocument2*> pHTMLArray;
void hoge(IHTMLDocument2 *pDoc)
{
pHTMLArray.Add(pDoc);
}
0954デフォルトの名無しさん
2005/12/06(火) 20:43:090955デフォルトの名無しさん
2005/12/06(火) 21:04:180956953
2005/12/06(火) 21:22:53CAtlArray<CComPtr<IHTMLDocument2>>でエラーがでてよくわからんかったわけですが、
CAtlArray<CComPtr<IHTMLDocument2> > arr;
Addref, Release
上のどっちかというが判明しました、ありがとうございます。
先生、さよーなら。
0957デフォルトの名無しさん
2005/12/07(水) 15:38:29SetFocusをしてもキーボードフォーカスが移動しないので・・
0958デフォルトの名無しさん
2005/12/07(水) 20:52:40mouse_event
0959デフォルトの名無しさん
2005/12/07(水) 21:25:160960デフォルトの名無しさん
2005/12/08(木) 03:32:05COMオブジェクトのプロパティに使いたいのだけれど、
こういうの1つ1つIDLで再定義していくんですか?
具体的にはWAVEFORMATEXをプロパティとするオブジェクトを作りたいのですが。
0961デフォルトの名無しさん
2005/12/08(木) 03:54:390962デフォルトの名無しさん
2005/12/08(木) 04:00:10それだとVARIANT型のプロパティになるんですよね?
よくDirectXなんかでDSBUFFERDESCみたいな構造体を
直接受け付ける関数あるじゃないですか。
ああいうのはどうなってるんでしょうか
0963デフォルトの名無しさん
2005/12/08(木) 04:38:270964デフォルトの名無しさん
2005/12/08(木) 05:49:15IDLに#include "windows.h"とやるとコンパイルできなくて、
typedef struct tagWAVEFORMAT { .. } WAVEFORMAT;
とするとIDLのコンパイルは通るのですが
生成されるmyclass.hを使うときにWAVEFORMATの二重定義になって困っていました。
そこでIDLで宣言するときに
cpp_quote("#ifdef WAVEFORMAT")
typedef ...
cpp_quote("#endif")
として、生成されたmyclass.hで無効にしてやると上手くいきました。
0965デフォルトの名無しさん
2005/12/09(金) 05:48:480966デフォルトの名無しさん
2005/12/09(金) 07:20:340967デフォルトの名無しさん
2005/12/09(金) 14:44:420968デフォルトの名無しさん
2005/12/09(金) 21:14:290969デフォルトの名無しさん
2005/12/10(土) 10:51:53レジストリを消すとかしないと駄目ですか?
0970デフォルトの名無しさん
2005/12/10(土) 15:48:50そうかも
俺も2つとか残っててマンドクセーと思ったことが
0971デフォルトの名無しさん
2005/12/10(土) 17:53:32ファイルをコピーしているだけ
0972・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/10(土) 18:08:040973969
2005/12/11(日) 00:06:11C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\vcprojectsから
WTL*.vsz, WTL*.vsdir, WTL*.ico を消すだけですね。。
0974デフォルトの名無しさん
2005/12/11(日) 02:15:50CMutexとかみあたらないんだけど...
0975・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/11(日) 02:57:18Win32APIでがんばりましょう。
普通に_beginthreadex使えるよ。CRT使わないならCreateThread(Ex)ね。
あとはCriticalSectionなりMutexなり。
俺は親スレッドにデータ渡すときは
parent.SendMessage(WM_USER_SENDDATA, (WPARAM)data, (LPARAM)dataSize);
で配列渡してるけどね。メッセージキューの利用はスレッドセーフなのです。
っていうかむしろそれ以外の方法使うの危険。
ATL Serverにはそのものズバリなスレッドクラスがあったけど
使った経験ない。
0976デフォルトの名無しさん
2005/12/11(日) 23:42:05APCとか、IOCPとかは危険?
0977・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/11(日) 23:56:10メッセージキューってのはリストビューとかのウィンドウにデータを渡すときの話ね。
無理矢理CriticalSectionとか使って書き込んでもデッドロックすることがあるから。
0978デフォルトの名無しさん
2005/12/12(月) 00:00:06マウスやらキーボードやらのイベント入ってきていつ溢れるか分からない。
マウスとか忙しいと捨てられてるし。
0979デフォルトの名無しさん
2005/12/12(月) 00:13:300980・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/12(月) 00:23:55SendMessageして親スレッドでAddItemとかさせないと、リストの上にマウスかざしただけで即デッドロックするおw
0981デフォルトの名無しさん
2005/12/12(月) 01:41:570982デフォルトの名無しさん
2005/12/12(月) 01:48:27サンプル希望
0983デフォルトの名無しさん
2005/12/12(月) 01:57:12例えば std::deque<> あたりの出し入れをスレッドセーフにするだけでも使えるでしょ?
読み出す側は同期的に待つならイベントが使えるだろうし、
非同期にやるなら追加したあと PostMessage() することにするとかさ。
0984デフォルトの名無しさん
2005/12/12(月) 02:02:30デッドロックしてくれなかったら、逆に困るに10000ディナール。
0985・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/12(月) 17:18:44えっと非同期の方法を応用すると、
EnterCriticalSection→親スレッドのコンテナに追記→LeaveCriticalSection→PostMessage(リストに反映汁)
でええんかな。
俺の場合、実はリストビューは大概オーナーデータにするので、データだけを更新するとか、ある程度は融通は利く。
まぁいちおう考慮してみますわ。
ただ、SendMessageだと親スレッドが処理が終わるまで子スレッドがストールする、という
問題については、現状たいした問題じゃなかったりする。
リストへの追記の頻度がそれほど高いわけでもないし、状況次第。
実際問題、リストに登録する以外の使い道のないデータなんで汎用性持たせてもそんなに意味は無かったりする。
>>984
まー、さすがにデータ1件ずつにつきメッセージ投げるようなヴァカな真似はしてない。
スレッドごとにバッファメモリを用意して、ある程度まとまったデータにしてから配列で渡してる。
WM_SENDDATAってメッセージもあるくらいだし、メッセージキューにアドレス入れて
非同期でデータ交換するのって一般的だと思ってたんだけど。
0986デフォルトの名無しさん
2005/12/12(月) 17:33:23リストビューの実装をオーナーデータにすべき。
データベースメモリと別に、わざわざリストコントロール内にデータベースが存在する時点で厨確定。
とりあえず、LVS_OWNERDATA で検索すべき。
0987デフォルトの名無しさん
2005/12/12(月) 17:34:58データがあるかどうか見て、なんかあればあるだけ処理しちゃうというのもいいかも。
0988デフォルトの名無しさん
2005/12/12(月) 17:37:34ぷ
0989・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/12(月) 17:39:21普通にオーナーデータにしてるが、CListViewCtrlImpl<Foo>とコンテナクラスを多重継承したクラス構成にしているwww
0990デフォルトの名無しさん
2005/12/12(月) 17:41:43>WM_SENDDATAってメッセージもあるくらいだし、メッセージキューにアドレス入れて
>非同期でデータ交換するのって一般的だと思ってたんだけど。
ちっとも一般的じゃない。
外部プロセスから作為的なメッセージを受信した場合、
それが正しいアドレスかどうか検出する方法がない。
セキュリティに配慮したアプリケーションを作るなら、
アクセス制限された共有メモリとイベント通知でデータ送信をするしかない。
そういいつつ、自分も面倒だからそこまでやらないけどさ。
0991・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/12(月) 17:44:48OnIdleに噛ますのか。それアリだな。
子スレッドがアクティブなときもリストの項目ソートしたり削除したりできるようにしてるのだが
全部の操作にいちいちロック・アンロックかけるのも面倒なのよ。
親ウィンドウを持つスレッドのみが直接データモデルを操作するほうが現状楽だったり。
0992デフォルトの名無しさん
2005/12/12(月) 17:46:57・・・多重継承は要らんでしょ。移植・仕様変更に弱くなるだけだよ。
時には、似た処理内容をコンソールアプリで提供しなけばならなくなったりするでしょ。
0993・∀・)っ-●○◎- ◆Pu/ODYSSEY
2005/12/12(月) 18:22:550994デフォルトの名無しさん
2005/12/12(月) 18:33:18そろそろスレ違いっぽいので、Win32API質問スレでおながいします。
というか、もうすぐ1000。
0995デフォルトの名無しさん
2005/12/12(月) 21:03:07ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/l50
0996デフォルトの名無しさん
2005/12/12(月) 23:00:280997デフォルトの名無しさん
2005/12/12(月) 23:24:370998デフォルトの名無しさん
2005/12/13(火) 00:50:290999デフォルトの名無しさん
2005/12/13(火) 00:54:431000デフォルトの名無しさん
2005/12/13(火) 00:55:2010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。