BLK314 の回答履歴
- 圧縮すると容量が増える。
動画ファイル(200MB前後@avi)をrarやzipや7zその他いろいろな圧縮方法で圧縮するとなぜか容量が増えています。 WinRAR,7-zip,+Lhaca,Lhaplusなどのソフト試しましたがすべて結果は容量が増えていました。 ■質問内容 なぜ圧縮しているにもかかわらず容量が増えるのか。 わかる方お願いします。 多少詳しい説明、専門的な用語が入ってもかまいません。
- ベストアンサー
- その他([技術者向] コンピューター)
- noname#250142
- 回答数5
- 圧縮すると容量が増える。
動画ファイル(200MB前後@avi)をrarやzipや7zその他いろいろな圧縮方法で圧縮するとなぜか容量が増えています。 WinRAR,7-zip,+Lhaca,Lhaplusなどのソフト試しましたがすべて結果は容量が増えていました。 ■質問内容 なぜ圧縮しているにもかかわらず容量が増えるのか。 わかる方お願いします。 多少詳しい説明、専門的な用語が入ってもかまいません。
- ベストアンサー
- その他([技術者向] コンピューター)
- noname#250142
- 回答数5
- [MFC]AfxBeginTreadでのスレッド強制終了の方法について
WinInetで多数のクライアントとHTTP通信を行うプログラムを作成しています。 やりたい事は閉じたネットワークの中で 生きているホストを調べるということです。 HTTP_GETの可否で判断させるつもりですがpingでも構いません。 (DHCPサーバーのリース情報などは参照できない状態環境) 逐次処理で一台ずつタイムアウトは待ってられないので ホストの台数分だけスレッドを作成します(クラスCなら256台分)。 <!-- コード --> UINT MyThreadProc(LPVOID pParam) { CMyHost* hostData = (CMyHost*)pParam; hostData->Get(); return 0; } void CMyDlg::OnStart() { CMyHost hostData[hostNum]; CWinThread* pThread[HostNum]; // 台数分スレッド起動 for (int i=0;i<(int)HostNum;i++) { hostData[i].ipAddr = NetworkAddress + (DWORD)i; pThread[i] = ::AfxBeginThread(MyThreadProc, &hostData[i]); } // 何秒か待つ HANDLE timer = CreateWaitableTimer(NULL, FALSE, NULL); WaitForSingleObject(timer, 10000); // returnしてないスレッドがあっても全スレッド強制終了 /* 強制終了の仕方が分からない */ <!-- コードここまで --> 強制終了させるためには各スレッドにメッセージを投げて スレッド側でそれを判定するなどでしょうか? でも通信の終わってないスレッドは通信処理の最中なのだから どうやってメッセージを受け取ればいいのか想像つかないです。 (そもそもCInternerSessionでタイムアウトの使い方がよく分からない…、 もっとスマートな方法があれば教えていただきたいです。)
- 締切済み
- C・C++・C#
- nisecuroro
- 回答数3
- 構造体の後半をクリアするには?
メンバーが100ぐらいある構造体で後半の50のメンバーだけ 0クリアしたいのですが、1メンバーづつ0クリアしないと いけないのでしょうか? メンバーの型はいろいろです。 では、よろしくお願いします。
- 締切済み
- C・C++・C#
- apple20000
- 回答数7
- 構造体の後半をクリアするには?
メンバーが100ぐらいある構造体で後半の50のメンバーだけ 0クリアしたいのですが、1メンバーづつ0クリアしないと いけないのでしょうか? メンバーの型はいろいろです。 では、よろしくお願いします。
- 締切済み
- C・C++・C#
- apple20000
- 回答数7
- 【VC++6.0(MFC)】ファイルがアクセス中か確認したい
いつも大変お世話になっています。 VC++初心者です。 あるファイル(ファイル名はCString型)が 他からアクセスされているか(今回の場合、書き込み中か) 確認したい場合はどのようにしたら宜しいでしょうか。 お手数ですが、よろしくお願いします。
- 【VC++6.0(MFC)】ファイルがアクセス中か確認したい
いつも大変お世話になっています。 VC++初心者です。 あるファイル(ファイル名はCString型)が 他からアクセスされているか(今回の場合、書き込み中か) 確認したい場合はどのようにしたら宜しいでしょうか。 お手数ですが、よろしくお願いします。
- MFCのSDIとMDIについて
MFCを使用する場合、ダイアログベースしか使用してこなかったためMDIとSDIについてよくわかりません。 実行してみるとフォーム?エディタ?みたいなものが立ち上がりますが、あれはいったい何をするためのものなのでしょうか? 検索してみると描画とかアニメーションとかがキーワードで出てきますが絵を描くものなのですか??
- MFC モーダルダイアログ表示中に
MFCでプログラムを組んでいます。 以下のような状態なのですが、解決できる方法はありますか? (1) メインアプリケーションクラス(CWinAppクラスの派生クラス)から、フレームウィンドウを表示。 表示方法:CreateNewFrame()実行 → InitialUpdateFrame()実行 (2) (1)で表示されたウィンドウからモーダルダイアログを表示。 表示方法:モーダルダイアログクラスのDoModal()実行。 (3) メインアプリケーションクラスから(1)で表示されたウィンドウに対して、WM_CLOSEをSendMessage()。 (3)の実行後 (1)、(2)で表示された画面は両方とも閉じますが、モーダルダイアログでアサートします。 目的は、両方の画面が表示されている状態でメインアプリケーションを終了するときに、両方の画面をアサートすることなく閉じることです。 そもそもモーダルダイアログを外部から閉じること自体できるのかどうかわからないのですが、 もしできないとしたら、目的を達成するためにはどうすれば良いのでしょうか? よろしくお願いします。
- VISTAの状態を取得する方法
VC++2005のMFCを用いたプログラムを作成しております。 WindowsVISTAでエアロが動作しているか否かの情報を取得したいと思い、 GetSystemMetrics関数などを調べましたが、該当する方法がありませんでした。 何か良い方法があれば、ご教示お願いできませんでしょうか。 よろしくお願い致します。
- VC++6.0 MFC GetCommandLine()で取得したコマンドラインをすでに起動しているプログラムに渡す。
お世話になります。 VC++6.0 MFC で開発しております。 プログラムAでGetCommandLine()で取得したコマンドラインをすでに起動しているプログラムBに渡すにはどのような関数を使えばよいのでしょうか? お手数ですが、何卒よろしくお願いします。
- VC++6.0 MFC GetCommandLine()で取得したコマンドラインをすでに起動しているプログラムに渡す。
お世話になります。 VC++6.0 MFC で開発しております。 プログラムAでGetCommandLine()で取得したコマンドラインをすでに起動しているプログラムBに渡すにはどのような関数を使えばよいのでしょうか? お手数ですが、何卒よろしくお願いします。
- MFCのexeのプログラムを MFCのdllに書き換えたい
VC++6.0を使用しています 新規作成 MFC AppWizard(exe) 新規 OK [ステップ1] ダイアログベース 次へ [ステップ2/4] 次へ [ステップ3/4] 次へ [ステップ4/4] 終了 で作られた、雛型のexeをそっくりMFCのDLLに書き換えたい と考えています exeで作られたアプリを他のユーザーがVB6.0からDLLとして呼び出したいので書き換えて欲しいと頼まれました MFCのDLLも雛型は簡単に出来上がるのですが 以下の関数を独立したオブジェクトにして、VB6.0からDLLの関数VBFUNC1として呼び出したいのですが、VBから呼び出すと AfxEnableControlContainer();でアサートで引っ掛かってしまいます ダイアログを使用したMFCのEXEをDLLとして使う場合の、コーディングについてご指南ください BOOL CAaaApp::VBFUNC1() //BOOL CAaaApp::InitInstance() { AfxEnableControlContainer(); #ifdef _AFXDLL Enable3dControls(); #else Enable3dControlsStatic(); #endif CAaaDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { } else if (nResponse == IDCANCEL) { } return FALSE; }