mfc-ml

2005年05月

31

[mfc 50868] Re: [mfc 50866] Re: 自前のアンインストーラ

とっちゃんです。


> 書き込んだ直後に再起動をした場合、書き込まれない不具合があったので、
> フラッシュ処理を入れています。かなりハッキリと確認できてます。
> 普通は、再起動を確認するので大丈夫なのかもしれませんけどね。

あ~、書き込んだ直後ってのは段取りとしてはなかったなぁ。
だから、問題にならなかったのかぁ。

そうですね、仕組み的には書き込み直後でシャットダウンというのもありえますからね。
そういう意味では、フラッシュは入れておいたほうが安全度は全く変わってきますね。

いまでも使ってるところってあるかなぁ?<うちの実装...
31

[mfc 50867] Re: [mfc 50860] Re: [mfc 50857] Re: [mfc 50856] Re: [mfc 50851] ソケットプログラム

神谷です。


> HMMNです。
>
>
> >
> > OnReceive()関数ないでSend()関数を使っています。サーバ側の処理になりま
す。
> >
> > Send()されているかをエラー処理を追加して調べた結果、エラーが
> > あり正確に送信されていませんでした。
> >
> > 色々と調べているのですが「データを送信しても安全である」状態と言うのが
> > 分からない状況です。
> >
>
> OnReceive()は、データ受信側で利用するメソッドです。
> データを受け取っているドライバー(正確には違いますが...)が受信バッファー
にデータ
>
> が届き、取り出せますよ、という状態になったときにコールされるものです。
> アプリケーションの目的にもよりますが、一般的にはここでReceive()をコールす
るタイ
> ミングです。
>
> CAvmReceiveSocketを派生させる際に、OnSend()を定義してください。
> このメソッドで、Send()を1回だけコールしてみてください。
> 残りのデータは、OnSend()がコールされたときにSend()を使って渡してください。
> これを、データがなくなるまで繰り返せば、データを正しく送出できると思いま
す。
>
> 「データを送信しても安全である」というタイミングは、OnSend()がコールされる
> タイミングです。また、接続直後で送信のバッファーにデータがないときも、その
> タイミングです。

色々とありがとうございます。

現在送信するデータは、ファイルを読み込み、読み込んだデータをSend()関数
によって送信しています。
初心者ですみませんが、ファイルを読み込みながらのデータ送信ができなくて
苦戦しています。なにか良い方法がありましたら教えていただけると助かります。

> >
> > void CAvmReceiveSocket::OnReceive(int nErrorCode)
> > {
> >
> > TCHAR szBuff[SEND_DATA_SIZE];
> > TCHAR nkBuff[SEND_DATA_SIZE];
> > CString strGetFile;
> >
> > ZeroMemory(szBuff, sizeof(szBuff));
> > int Len = Receive(szBuff, SEND_DATA_SIZE);
> > strGetFile = szBuff;
> >
> > long lTotal = 0;
> > int nBytesSent;
> > int nError;
> >
> > if (strGetFile == "Get File"){
> >
> >  CFile AvmFile;
> >  CFile AvmFile2;
> >  BOOL bRet = AvmFile.Open("NK.bin", CFile::modeRead|CFile::typeBinary);
> >
> >  while(UINT nRead = AvmFile.Read(nkBuff, SEND_DATA_SIZE)){
> >
> >   lTotal += nRead;
> >   //Sleep( 500 );
> >   nBytesSent = Send(nkBuff, nRead);
> >   if (nBytesSent == SOCKET_ERROR){
> >    nError = WSAGetLastError();
> >   } else {
> >
> >   }
> >
> >  }
> >   AvmFile.Flush();
> >  AvmFile.Close();
> > }
> >
> > CString str;
> > str.Format( _T("%ld bytes") , lTotal );
> > m_pDlg->m_editReceive.SetWindowText( str );
> > delete this;
> >
> > }
> >
> >
>
>
>
31

[mfc 50866] Re: 自前のアンインストーラ


社本@ワックです。

> 最後の、フラッシュはなくても大丈夫ですよ(おいらの実装には入ってません)。

書き込んだ直後に再起動をした場合、書き込まれない不具合があったので、
フラッシュ処理を入れています。かなりハッキリと確認できてます。
普通は、再起動を確認するので大丈夫なのかもしれませんけどね。


// 社本 明弘
// http://www.wac-jp.com/programmers/
// http://www.ailight.jp/blog/sha256/
// Microsoft MVP for VC++ (Oct 2003 - Oct 2005)
31

[mfc 50865] Re:■プリンタの状態の所得について

まつもとです。

一応貼っておきます。

http://support.microsoft.com/default.aspx?scid=kb;ja;160129

---
松本 弘之
31

[mfc 50864] ■プリンタの状態の所得について


つちだ と申します。

USB接続プリンタ(HP社のものを使用中)USBケーブルを外してあるのに、
プリンタフォルダでの状態を見ると
”準備完了”となっています。なぜ??
プリンタに印字データを送信する前に本当に接続されていてレディ状態か確認する
方法が知りたいのですが、
どのようなAPI関数、手続きをすれば良いか教えてください。
記事検索
Amazon.co.jp
  • ライブドアブログ