ATL/WTL
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG006563
NGNG0066デフォルトの名無しさん
NGNGなんで、ってそりゃIAudioMediaStream::CreateSampleみたいなのがあるからだろ。
たしかに凶悪だが、うそつき戻り値、っていわれるほどひどくはないと思うぞ。
0067デフォルトの名無しさん
NGNGもしかして T& CComPtr::operator*()なんじゃない?
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGよく知らんけど、それ多分スマートポインタでしょ?
CComPtrオブジェクト自体のアドレスなんかなにに使うんだ?
多分operator->()とかoperator=()とかもオーバーロード
掛かっていて、自身をT*と同じように扱えるのがスマート
ポインタの存在意義だと思うんだけど…
class Hoge{
public:
void func(){//何か実装}
}
CComPtr<Hoge> a = new Hoge();
a->func();
多分こんな風に使うんでしょ?
つうか、こんなパターン覚えなよ。OOPやってるなら基本だよ。
0070デフォルトの名無しさん
NGNGCOM じゃ new 使えない。出力変数でやるから。
戻り値にポインタ返すスタイルじゃない分、
やや面倒というか美しくない。仕様だけど悲しい。
0071デフォルトの名無しさん
NGNGこんなことしようとして。
std::list<CComPtr> advsd_list;
ATLのイベントシンクがトホホなんもんで
std::listを使ってイベントシンクを自前で実装しようとしたらコンパイルエラーの嵐。
理由はSTLが T* T::operator&()を前提にしているから。(普通そうだよな)
しょうがないから自前でoperator&をオーバーロードしない、com_ptrを作っちゃったよ。
0072デフォルトの名無しさん
NGNGテンプレートクラスなら止むを得ないのですが、ユーザがコーディングする関数はテンプレートではないので意味無いし
インライン展開を期待しようにも、virtualをインライン展開してもしょうも無い。
ヘッダ直すとインクルードしているソースすべてコンパイルしなおさなきゃいけない。
唯一利点は宣言と実装が一まとめなので手間が省けるくらいかな。
あまり意味を感じないので手直しで.cppソースに書くようにしています。
みなさん、どうしてます?
0073デフォルトの名無しさん
NGNG| templateという機能は、C++のあり方を変えるんだね。
| STLにしてもそうだけど、ライブラリの抜本的な再構築を
| うながすパワーを持ってる。
そして、プログラマは新たなお約束事に従い、新たなC++を覚えてゆく。
いままで培ってきたノウハウを活かすことができず、試行錯誤する。
プログラマは自身の経験を「継承」することができず、段階的に次に進めない。
これでよいのか?
0074ななし
NGNGこれほど改善された言語はないとおもふ。
0075>71
NGNG0076デフォルトの名無しさん
NGNGMFCに未来があればいいが、全くないぞ。
まぁ、WTLもないけどね。
0077デフォルトの名無しさん
NGNG全然スレッド育たないね。
0078デフォルトの名無しさん
NGNG# しかも(MS内部の勢力争いのおかげで)今後も入る事はなさそうだし
0079デフォルトの名無しさん
NGNGその戻り値仕様、実は MS の STLつぶしだったりするかも。
0080デフォルトの名無しさん
NGNG0081結局VB
NGNG高度なことしてるんだという気分に浸ってATLやWTLをやっていてください。
0082デフォルトの名無しさん
NGNGどうする?
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGhttp://mentai.2ch.net/test/read.cgi?bbs=prog&key=980836651
0085結局C#
NGNGATL作った中心人物もMSやめちゃったし。
(『ATLインターナル』でまえがき書いてる人ね。)
http://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0006E&L=ATL&P=R12450
WTLの扱いはご存知の通り。
どうするどうなる、ATL/WTL!?
0086デフォルトの名無しさん
NGNGJavaBeans や Delphiのコンポーネントぐらい簡単に作成できないと
広く普及しないんじゃないのかな?
0087デフォルトの名無しさん
NGNG何かそんな事何かの記事に書いてあったよ。
0088デフォルトの名無しさん
NGNGどうかな?
まあ、ATL Serverまわりはしばらく安泰だろうけど。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGhttp://groups.yahoo.com/group/wtl/
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGでも、時すでに遅しという感じもする...。
0093名無しさん♯
NGNGttp://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0103d&L=atl&F=&S=&P=10825
ttp://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/001/586/msdncompositedoc.xml
それと、次のバージョンでVS.NETに対応するとのこと。
ttp://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0103d&L=atl&D=0&P=6373
Nenadマンセー。ヽ(´ー`)ノ
0094デフォルトの名無しさん
NGNGCOMコンポーネントがCLR対応になる???よくわからん
0095デフォルトの名無しさん
NGNGVB.NETでCOMコンポーネントをつくる/つかうとなると、他に選択子がないです。
009694
NGNGCOMもCLRも抽象化層ですよね?
両方使う意義が理解できなくて混乱してます。はて????
009795
NGNGたとえばIStreamがデータを保存する先はファイルかもしれないし
ソケットかもしれないし、人間の胃袋かもしれない。
だけどどっかに保存するための抽象化されたインタフェースでしょ。
CLRはCLRをサポートするどのような実行環境でも実行できるよう
実装を抽象化しているんでしょ?
CLRで実装されたIStreamがファイルに保存するよう実装されていれば
CLRをサポートする実行環境でファイルに保存できる。
ソケットに保存するよう実装されていればソケットに保存できる。
胃袋に保存するように実装されていれば胃袋に保存できる。
そういうことでは?ちがう?
009894
NGNGふーむ。なんとなくわかりました。
ただそこまで抽象化するとOS(Windows)なんて必要ないような気がしますね。
CLR使えばWinAPIが必要ないわけですし。
0099デフォルトの名無しさん
NGNG0100はじめまして
NGNGOSなんて関係ないのをねらいにしているのでは?
もうすぐ64BitOSも出るでしょうから、その場合の移行をスムーズにするため
とも考えられます。
リコンパイルしなくても動作するように....
0101デフォルトの名無しさん
NGNGすべてのプロセッサをMSの支配下にしようという魂胆です。
0102デフォルトの名無しさん
NGNGwtlのドキュメントとサンプルコードがダウンロードできます。
0103define
NGNG0104デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA016589/index_japanese.htm
0106デフォルトの名無しさん
NGNGttp://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0104a&L=atl&D=0&P=26200
0107デフォルトの名無しさん
NGNGfor ( ; ; ) {
try {
IDTestPtr testPtr( _uuidof( Test ) );
ret = testPtr->method( arg1, arg2 );
cout << "1" << endl;
} catch ( _com_error &e ) {
}
cout << "2" << endl;
}
こんな感じのコードで試しているのですが、何回かループ回った
あと、 "1" を出力して止まってしまいます。
IDTestPtr かその継承元のデストラクタで止まっているという
ことなのでしょうかね? と、した場合にそれはどういった原因
が考えられるでしょう?
IDTestPtr testPtr( _uuidof( Test ) );
はループの外に出しといたほうが生成/破棄の無駄がないのかなぁ?
0108デフォルトの名無しさん
NGNGIDTestPtr testPtr( _uuidof( Test ) );
ここが DCOM だったりした場合は、こんな風にループで
回すと接続に使う経路でポート番号とかを使い尽くして
止っちゃう可能性があると思う。どう止るかまでは知ら
ないけど。
ループの外に出せるならもちろん出しておいたほうが良
いに決まってると思う。ていうかそんなこと聞くなよ〜。
0109デフォルトの名無しさん
NGNGそれ以前に、WTLはあるけど、ATLが手に入らない・・・。
0110デフォルトの名無しさん
NGNG機能がコンパイラにないとつらいと思う。
0111名無しさん♯
NGNGhttp://www.develop.com/downloads/wtlpart1.zip
WTL Makes UI Programming a Joy Part 2: The Bells and Whistles
http://www.develop.com/downloads/wtlpart2.zip
0112age
NGNG0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています