ATL/WTL
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002名無しさん23
NGNGものだと漠然と思ったりするのですが、どうなんでしょう?
0003デフォルトの名無しさん
NGNG0004名無しさん23
NGNGSTLにしてもそうだけど、ライブラリの抜本的な再構築を
うながすパワーを持ってる。
まあVisualStudioの次の版に入ってたらいいね。>WTL
ちょっと使ってみよう。
0005デフォルトの名無しさん
NGNG> I attended the midnight madness at vcdc tonight. Tony Goodhew (sp?)
> the product manager for VC++ was there. He was posed the question
> about WTL and its future. What he was very clear to state DO NOT USE
> WTL. He said that it was a sample app that accidently escaped M$. He
> said that he wishes that it would have not left M$ and he is angry
> that it got out. He also said that it is NOT supported by M$ or nor
> will it ever be. He said that they had no intentions to ever add any
> features to it, and that it does not fit into the vision for .NET.
> Also he said that eventually ATL will include windowing support, but
> it will not be implemented as WTL (implying that he did not like the
> way it was done <my interpretation>). Then he repeated about five
> times DO NOT USE WTL.
0006デフォルトの名無しさん
NGNG> Osborn:
> On another subject, there seems to be a fair amount of developer
> interest in the Windows Template Library (WTL) that Microsoft
> released in the latest platform SDK [WTL is a C++ template library
> for building Windows applications and is viewed by some
> developers as an alternative to the Microsoft Foundation Classes. -
> JO]. Does Microsoft have plans to support or add to it?
>
> Goodhew:
> WTL is code that was released unsupported and we have no
> intention of updating it. We have no intention of continuing its
> availability. Frankly, it should never have been released and it will
> be removed from the platform SDK at the time of the next SDK
> revision.
>
> Osborn:
> What would you think about an outside group adopting WTL and
> maintaining it as an open source development project?
>
> Goodhew:
> Anyone can create his or her own template libraries. There are very
> successful third-party companies that market their own template
> libraries and their own class libraries for C++. We're not going to do
> that. The WTL is something that we are not going to support or
> continue at Microsoft.
0007デフォルトの名無しさん
NGNGそうなの?
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010名無しさん@お腹いっぱい。
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGWTLの作者、Nenad Stefanovic氏のコメントです。
> Those statements were given by Tony Goodhew. He is a program manager in VC
> group and has nothing to do with WTL. Please don't listen to him, he appears
> to have some personal issue with WTL and his behavior is not correct at all.
> It is all crazy, unfortunately.
>
> WTL will not be killed and the new version will ship in the Platform SDK
> soon. It will not ship is VC7, and it will remain unsupported. As for
> windowing in ATL, I don't know when or how will that be added.
new versionってのは3.1のことね。
001514
NGNG> I'd like to point out that negative comments about WTL come from one person
> (you know who), and not from all of MS. As I said before, WTL will continue
> to be available. New version is expected to ship in the Whistler Beta
> Platform SDK release.
要するに、Tonyは.NETのマーケティングをやってる人間で、
WTLが注目を浴びてるのが気に食わないのでしょう。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGOfficeもNetdocs(だっけ、Outlook+Wordみたいなもん)と
かち合ってるし。
0018デフォルトの名無しさん
NGNGよくあることなんだろうけど、
部外者を必要以上に巻き込まないでほしいね。
0019デフォルトの名無しさん
NGNGMSにも落とし入れようとする奴っているんだな。
MSも成熟して来たって言う証拠だな。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGよかったじゃねえか(ワラ
0023デフォルトの名無しさん
NGNG「C#使え」って勧めてる。(藁
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG>C#はVisual CとVisual C++に新機能を付け加えたものだ。
Tonyすげえな(わら
#Visual Cってなに?
0027デフォルトの名無しさん
NGNGだからそうだろ
0028デフォルトの名無しさん
NGNGThe Weitek WTL 4167 math coprocessor is a set of three chips used as a replacement for the Intel 80387 math coprocessor.
Our math coprocessor libraries only support Intel's 80x87 math coprocessors.
If you wish to use the Weitek WTL 4167 math coprocessor with a Microsoft compiler, you must obtain a third party library that supports it.
0029Weitek WTL 4167チップセットってなに?
NGNGWeitek WTL 4167数学コプロセッサはインテル80387数学コプロセッサに交換として使用される3個のチップのセットである.
我々の数学コプロセッサライブラリはインテルの80x87数学コプロセッサをサポートするだけである.
マイクロソフトコンパイラがあるWeitek WTL 4167数学コプロセッサを使用することを願うならば, あなたはそれを支持する第三者ライブラリを得なければならない.
0030デフォルトの名無しさん
NGNGワラタ
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGWTL(ATL?)でもWinsock1.1の非同期ソケットが使えるか確かめてみた。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGhttp://discuss.develop.com/archives/wa.exe?A2=ind0011b&L=dotnet&F=&S=&P=90605
0038デフォルトの名無しさん
NGNGTony said:
"WTL is a totally unsupported sample. Microsoft recommends that you do not use it. "
相変わらずだな、Tony
0039デフォルトの名無しさん
NGNGhttp://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A2=ind0101c&L=atl&F=&S=&P=15137
これもTonyの陰謀か?(藁
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGもしかして、.NETとかみ合わないから?
じゃあ、なぜWTLは.NETでサポートできないんだ?
0042デフォルトの名無しさん
NGNGWhy do you dislike WTL?
と言ってやれ。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGこんな感じて試験的に作ったオブジェクトを
class ATL_NO_VTABLE HogeImpl :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<HogeImpl, &CLSID_Hoge>,
public IDispatchImpl<IHoge, &IID_IHoge, &LIBID_TestActiveX>
{
public:
HogeImpl(){}
DECLARE_THREADING_MODEL(otApartment);
DECLARE_PROGID("TestActiveX.Hoge");
DECLARE_DESCRIPTION("実験");
BEGIN_COM_MAP(HogeImpl)
COM_INTERFACE_ENTRY(IHoge)
COM_INTERFACE_ENTRY2(IDispatch, IHoge)
END_COM_MAP()
};
親の公開されたメソッドから作成したいのですが
STDMETHODIMP TTestActiveX::NewHoge(IHogePtr* hoge)
{
ここにどう書けばいいでしょう?
}
004847
NGNG>ATL でよく発生するエラーには、実装したクラス(HogeImpl)を対象に new を呼び出してオブジェクトを作成しようとした場合があります。この場合は、奇妙なエラーが発生して失敗します。オブジェクトを作成するには、CoCreateInstance を使用してください。
をやっと見つけました。
しかしCoCreateInstanceとは何ぞや? 先は長いかなぁ
0049デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/specs/S1D179.HTM
005047
NGNG*(void **)hoge=NULL;
HRESULT hr=CoCreateInstance( CLSID_Hoge,NULL,CLSCTX_ALL,IID_IHoge ,(void **)hoget);
でとりあえずエラーは出なくなった
005147
NGNGSTDMETHODIMP TTestActiveX::NewHoge(IHogePtr* hoge)
{
*(void **)hoge=NULL;
HRESULT hr=CoCreateInstance( CLSID_Hoge,NULL,CLSCTX_ALL,IID_IHoge ,(void **)hoget);
(*hoge)->Parent=this;
return S_OK;
}
とかやりたいのだけど当然ダメだ。しょうがないから
STDMETHOD(SetParent(TTestActiveXPtr obj));
を HogeInp1に追加して
(*hoge)->SetParent(this);
にしたら良さそうと思ったが
HogeImp::SetParent(TTestActiveXPtr obj)
{
/*もしかしたら参照カウンタをインクリメントする必要があるかもよ */
}
とコメントがある。 ん〜?
という事はここでAddRefして IHogeが消えるときにReleaceすべきなんだろうか?
いやでも、それは勝手にATLがやってくれてないの?
005247
NGNGあ! いや、かってにやってくれるのは IHogeの参照についてか!
という事はやっぱり AddRef/Releaceは要るんだろうな
005347
NGNGDelphi本にはATLの説明ないし
ActiveX本は3冊買ったけどMFCとセットだもんだからさっぱり判らん
0054デフォルトの名無しさん
NGNG開発環境云々以前の問題だろ。
ATL使いたいならATLの本買えよ・・・。
0055デフォルトの名無しさん
NGNG005647
NGNGActiveXを使うだけなら貼り付けるだけなのでCoCreateInstanceは始めて
見たのじゃ そう責めないでおくれよ。これから勉強するから
>>55 カタログにはMFCも使えるとあるんだけど、よく判らん
買ったActiveXにあるATLコードに 自動作成されたコードが とても似て
るからATLなんだろうと思ってるんだけど、そもそもそれが勘違いなのかも
0057>>56
NGNG0058デフォルトの名無しさん
NGNGとくにこれは極悪すぎ。
T** CComPtr::operator&()
なんでoperator&の戻りがT**なんだ?
普通、こんなoperatorをしかもうそつき戻り値でオーバーロードしねーぞ >>MS
0059デフォルトの名無しさん
NGNG普通、インタフェースを渡す側がAddrefして、
受け取った側はAddrefされていると思って使う。
いらなくなったらReleaseする。
QueryInterfaceが典型的な例だね。
0060デフォルトの名無しさん
NGNGじゃ_com_ptrをつかえよ。
それがいやじゃったら、使うな。
006147
NGNG>>59なるほど。しかし渡す側が自分なものだからややこしい
自分で自分をAddrefしてから渡せばいいのか?
DelphiだとActiveXでも普通のフォーム使うのと変わらん簡単お手軽なのに
C++Builderだとなんかラッパと2つに分かれているからワケワカ状態
Implが付いてるかだけで同じソース上に混在するから、
m_VclCtlからラップ元を辿ればいいといってもさ、すぐ頭が混乱
ダメだな-->自分
0062デフォルトの名無しさん
NGNG_com_ptrって、な〜に〜?
http://www.asia.microsoft.com/japan/developer/library/vclang/_pluslang__com_ptr_t.htm _com_ptr_tなら知っているけど (藁
Interface** _com_ptr_t::operator&()
結局同じじゃねぇーかよ。良く調べてから言えよな (藁
0063デフォルトの名無しさん
NGNGさて、Webページからファイル(データ)を引っ張って来たいの
ですが、どうすればいいでしょう? <PARAM >タグとかで指定
されたファイルを落として来たいのです。
キーワードの一部でもご指導願えれば有り難いです
0064デフォルトの名無しさん
NGNGCreateURLMoniker
006563
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の支配下にしようという魂胆です。
■ このスレッドは過去ログ倉庫に格納されています