mfc-ml

2000年12月

27

[mfc 27678] メールが抜けているような・・・

こんにちは。

つい最近、こちらにお邪魔できるようになりました。
#今後ともよろしくお願いいたします。m(._.)m 

で、タイトルにありますように、受信しているスレッドに
たくさん抜けがあるような気がします。

最近の(σ(^_^)が受信している)スレッド番号を列挙しますと、
27590,27594,27598,27601,27602,27604,27605,27607,27608,27610
27613,27674
って感じです。

他の参加させていただいているMLではこのようにはなって
いないんです。

#で、話題の方もとぎれとぎれに読ませていただいております。
なんか、へんなかんじです。
みなさんもそうなのかな?(んなはずないよね?)
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/ ゆーち
_/ E-Mail: y...@fsinet.or.jp
_/ URL: http://myweb.to/youchi/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
27

[mfc 27677] Re: ダイアログを使用せずに OCXを呼び出したい

> 今回初めて投稿させていただきます。
> 隅水と申します。
> よろしくお願いします。

> 現在、NT4.0、VC++6.0(MFC)でDLLを作っています。
> そこで、ダイアログに貼り付けて使用する(タイマーコントロールみたいな)
> OCXを呼び出したいのです。
> しかし、開発しているDLLはダイアログを表示しない為、
> リソースエディタなどは使わずに、コードで直接呼び出したいのです。

> こういう事は可能なのでしょうか?
> また、方法をご存知の方がいらっしゃいましたら、
> ご教授お願いいたします。
> よろしくお願いします。


はじまして ブーきち といいます。

方法は、いくつか存在します。

① COleDispatchDriver を使う。
クラスウィザード(MFC ClassWizard)で[クラスの追加]-[タイプライブラリから]
でOCXを指定して、COleDispatchDriverの派生クラスを自動生成できます。
使用方法は、MSDNライブラリのCOleDispatchDriverを参照。

② スマートポインタを使う。
MSDNライブラリの"#import ディレクティブ"と、"_com_ptr_t"を参照。
後、MSDNライブラリから、"スマートポインタ"で検索をかけるといいでしょう。



どちらの場合でもネックとなるのは、OCXからイベントのFireを受け取るところです。

どちらの場合でもイベントのFireを受け取る、イベントシンクを
"オートメーション"を選択した、CCmdTargetの派生クラスを新規に作成し、
そのイベントシンクをOCXに登録するコネクションポイントの確立(AfxConnectionAdvise())と
イベントシンクをOCXから登録解除するコネクションポイントの解放
(AfxConnectionUnadvise())が必要になってきます。

(OCXからイベントを受け取らない場合は、いりませんが・・・)



でも、私としてはダイアログにOCXを貼り付けて、
そのダイアログを非表示のモードレスダイアログで動かしてしまうのが、
1番簡単だと思います。
そうすれば、OCXからイベントのFireを受け取るところもクラスウィザードで
簡単にスケルトンを作成してくれますので・・・

以上です。
27

[mfc 27676] Re: SCSI- データ転送サイズについて

こんにちは。井上です。

> > 600KB では問題ないのですが、800KB にして
> > ASPI の SendASPI32Command を実行すると
> > SRB_Status が SS_PENDING のままになり、
> > コマンドが終了しません。

> 使用したことも無いのにコメントするのは変かと思いますが、
> MSDNで SendASPI32Command を検索すると、Programming Guidelines の処に、
> 下記のように書かれてあります。
> If an error SS_BUFFER_TO_BIG is returned by the SendASPI32Command routine,
> you should break the transfer down into 64 KByte transfers or less. 
> For maximum compatibility, we recommend that you do not request 
> transfer sizes larger than 64 KBytes unless your application requires it. 

ありがとうございました。
まさに私が探していた内容です。

これからも、よろしくお願いします。

PS. 600KB は間違いでした。 60KBでした。
27

[mfc 27675] Re: [mfc 27671] ファイルダイアログのパス名取得について

吉田といいます。
> こん○○わです。西川と申します。
> いつもお世話になっています。
> 現在、ファイルダイアログを使用し、選択したファイルのフルパスを
> エディットボックスに表示しています。
> ファイル名をフルパスで取得したのはいいのですが、
> 内部処理で、ファイル名までと拡張子を分けたいのです。
> いったんフルパスで取得したファイル名から、どうしたら分けられるのか、
> ご存知の方教えていただけると幸いです。
> 現在の環境はVC++5.0 SP4です。
> よろしくお願いいたします。

文字列処理の話・・・ですよね?
MFCをお使いなら、CString::ReverseFind() ,CString::Mid(), 
CString::Left()などを使えば良いと思います。

char配列などだったら、'.'を文字列の中から探して、
切り分ければ良いのでは無いでしょうか?

はずしてたら、すみません。
27

[mfc 27674] Re: ファイルダイアログのパス名取得について

> いったんフルパスで取得したファイル名から、どうしたら分けられるのか、
> ご存知の方教えていただけると幸いです。
こんにちは。クマと申します。
_splitpath()でどうでしょうか?
記事検索
Amazon.co.jp
  • ライブドアブログ