mfc-ml

1999年08月

31

[mfc 18820] SHBrowseForFolder()のカスタマ方法

お世話になります。 Kawakamiです。

過去ログやHPを見ながら、なんとかSHBrowseForFolder()が使用
できる様になりました。

フォルダの新規作成処理をSHBrowseForFolder()に付け加えたい
のですのですが、なかなか出来ません。
方法としては、多分、SHBrowseForFolder()のコールバック関数で
処置すればできると思うのですが仕方がわかりません。
(起動時の選択フォルダの設定・ダイアログのCaptionの設定は
 出来ています。)

「フォルダの新規作成処理追加」等のカスタマ方法を
ご伝授ください。
お願いします。
31

[mfc 18819] Re: ActiveXコントロールで 、 Socketを使いたい。

まさしです。

In [mfc 18794] ActiveXコントロールで、Socketを使いたい。
YOTARO <y...@geocities.co.jp> Wrote:

> 実行時に、アサーションや例外が発生するわけでもなく。ただ、何も
> 起こらずに、Connectが失敗するのです。なぜでしょうか?

解決方法は、VFC-LINK さんの提示されている通りだと思います。

んで、蛇足。

多分、Create() の段階ですでに失敗していると思うので、
必要ならば戻り値をチェックしてくださいませ。
そこで、 ::GetLastError() を呼び出せば、原因がわかると思います。

ではでは。
31

[mfc 18818] Re: 配列のオ-バーフロー?

あひる様wrote:
> SEKIYA Hiroakiのコメントが参考になります。

> 最近ではコンテナ関係はまったく実装してません。
> stlを利用します。

そうですね。私もようやく最近になってSTLを使うようになりました。
(今回の場合は、vector.at()を利用してます。例外をthrowしてくれるので)
しかし、悲しいことに既存のソースで、私の一存で決めれない場所は..。

みなさま、ご意見・ご回答ありがとうございました。
31

[mfc 18817] Re: メンバ変数の宣言につい て

まさしです。

もはやどうでもいいけど、現実逃避がてら(?)、試してみました(笑)。
# VC++6 + SP3

まず、クラス定義がこの順。

class CMyClass  
{
    ...
    CInternetSession m_testInet;
    CFtpConnection* m_ptestConnection;
};

(1)
  : m_ptestConnection(m_testInet.GetFtpConnection("string"))

  → OK (暗黙の m_testInet() が先に呼ばれる)

(2)
  : m_ptestConnection(m_testInet.GetFtpConnection("string")),
    m_testInet()

  → OK (これでも m_testInet() が先に呼ばれる)

ここから先、クラス定義がこの順。

class CMyClass  
{
    ...
    CFtpConnection* m_ptestConnection;
    CInternetSession m_testInet;
};

(3)
  : m_ptestConnection(m_testInet.GetFtpConnection("string"))

  → NG (GetFtpConnection() が先に呼ばれる)

(4)
  : m_testInet(), m_ptestConnection(m_testInet.GetFtpConnection("string"))

  → NG (GetFtpConnection() が先に呼ばれる)

でした。

In [mfc 18816] Re: メンバ変数の宣言について 
うにみそ <u...@dia.vip.co.jp> Wrote:

> ちなみに、VC6だときちんとコンストラクタでの初期化リストの
> 順に構築されます。

上記の結果からうにみそさんが勘違いされているのではないかと思いますデス。

> ちなみに、VC6では、
>     リファレンス/特殊メンバ関数/特殊メンバ関数を使った初期化/
>     基本クラスとメンバの初期化
> ってとこに明記してありましたので間違いないと思います。

同じところを見ているつもりなんですが(アレ?)、そこには、
" コンストラクタで使うこの構文については、「メンバ オブジェクトの初期化」
  と「基本クラスの初期化」を参照してください。"
と書いてあって、
     リファレンス/特殊メンバ関数/特殊メンバ関数を使った初期化/
     メンバオブジェクトの初期化
をみると VFC-LINK さんが提示してくれた事が載っています。

ちなみに URL 表示は(読み方がわからんが)

    mk:@MSITStore:D:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98
    \98VS\1041\vclang.chm::/html/_pluslang_initializing_member_objects.htm

です。

ではでは。
31

[mfc 18816] Re: メンバ変数の宣言につい て

うにみそ です。

   From:【 VFC-LINK <P...@nifty.ne.jp> 】
   On:  【 [mfc 18808] Re: メンバ変数の宣言について  】
 〆 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
> > メンバ初期化リストは左から評価されます。
> > だから、順番を間違えては変なことになります。

> と、普通のC++userなら思うでしょうね(^^;
> VC5だと、C++言語リファレンスの「メンバ オブジェクト, 初期化」の
> ヘルプトピックの下の方に・・・。

うわぁ。VC5って邪悪だったんですねぃ。
ちなみに、VC6だときちんとコンストラクタでの初期化リストの
順に構築されます。
# もちろん、仮想派生をのぞく。

仮想派生した基底クラスは、左から基底クラスを評価したときに、
最初に継承リストに現れたときですよね。
# まさかこれもVC5では違う?

ちなみに、VC6では、
    リファレンス/特殊メンバ関数/特殊メンバ関数を使った初期化/
    基本クラスとメンバの初期化
ってとこに明記してありましたので間違いないと思います。
# 試してはいないが、それを前提で不具合は起きたこと無い

> ま、他のプラットフォームに移植することを考えたら、記述順番も考慮
> すべきなのでしょうね。たぶん。

まぁ、VC6もきちんと準拠したんだから、VC5で作るにしても
順番を意識しておいた方がいいでしょうね。

>--                                            --<
> うにみそ    mailto:u...@geocities.co.jp     <
>                    u...@dia.vip.co.jp       <
> http://www.geocities.co.jp/SiliconValley/9772/ <
>--                                            --<
記事検索
Amazon.co.jp
  • ライブドアブログ