■MFC相談室 mfc11.dll■
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG前スレ
■ VisualC++(MFC限定)相談室 MFC10.dll■
http://pc5.2ch.net/test/read.cgi/tech/1074104008/
関連リンクは >>2-10 の辺り。
0488デフォルトの名無しさん
NGNGCodeGuruに行くとそういうサンプルが少なくとも二つは見つかるよ。
#つーか、見つけた。
OwnerDrawじゃなくてCustomDrawの手法ならGoogleで国内サイトを探すだけでいろいろ出てくると思う。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGありがとうございます。
とりあえず、CodeGuruから調べてみたいと思います。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG「今から始める」という意味が「学習を始める」だったらMFCで良い。
「長大なプロジェクトを起こす」という意味なら.netを考慮する価値はあるかも。
つまりちょこちょこ作って今すぐ広い環境で動かすならMFCだな。
0494デフォルトの名無しさん
NGNGあー。まだ厨房なんで将来的なことも考えていただければ幸いです。
0495デフォルトの名無しさん
NGNGんじゃまず、ハードの基礎やってから、アセンブラ逝け。1年たったらまた恋。
0496デフォルトの名無しさん
NGNG……「アセンブリが解らない香具師のアプリは信用しない」と同じレベルかゴメンorz
0497デフォルトの名無しさん
NGNG知らないやつ見ててないやつ自身は、なんの恐れも不安もない。
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG起動してすかさず他アプリケーションを前面に持って来て、
そのソフトが完全に起動し終わったのを確認してウィンドウをアクティブにすると
フッと、ウィンドウ上のボタンのフォーカスが切り替わる。
細かい事だけど、何やってんだよ (;´Д`) 怖いよ
0501デフォルトの名無しさん
NGNG考えずに、今できることをやって経験を積んでおくことを薦める。先々どうするかは
自分で経験して判断できるようになってから決めればよい。何もできないうちに
後のことを言っても始まらないからね。
現在一般に出回ってるシステム環境や、ツール、学習面での文書のこと考えたら
いきなり.netはやりづらいと思う。どうせ最初は小さいものしか作れないんだし、
何かしら使える機能のあるものを気軽に作って、プログラムすることの手順に慣れ
るのが先だろう。
0502489
NGNG他の言語に移行したくなったんで、.NETかMFCがいいかなーと思ったたけです。
別にJavaやSDKでもいいんですが、アセンブラは必要なんでしょうか?
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG必要って何のために?
仕事で必要かどうかは内容次第で、
具体的な就職先と配属先が決まらないと何とも言いようがない
けど、そんな理由に引きずられるだけな若手は「うちへ欲しい」タイプじゃない
泥縄方式のおんぶに抱っこで何ができるか甚だ疑問だからだ
言語であろうとデバイスあろうと、
特定のブツに対するマニュアル的な知識は泥縄でも徹底的ならそれでいい
もっと根本的なことで、こういう分野を切り開いていくことに対して
自発的な意思で行動しているか否かが肝心要の核心だ
で、アセンブラの話に戻ろう
アセンブラやってみたいか? 意味ねえと思うか?
おまえが答えるしかないことだ
0506デフォルトの名無しさん
NGNG特定のCPUの、特有の機能を使うとき
例: 特権命令
コードサイズまたは実行速度に定量的な条件があるとき
例: PIC
0507デフォルトの名無しさん
NGNG続き
既にアセンブラベースで進行中のプロジェクト
例: (軍機のため言えません)
0508デフォルトの名無しさん
NGNGそういう意味では最初に学ぶのはDelphi以外が良いと言うことになるのかも知れない。
0509デフォルトの名無しさん
NGNG> 一応Delphiとかは
「とか」ってなんだよ・・・
なんかこういう書きぶり続くとどうでも好きにすればとしか言いようないな
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG他のスレで同じことするとスレ違いとかうるさく言われるのにね。
0513デフォルトの名無しさん
NGNG代理発言はしてやらない
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG>アセンブラはやってみたくないけど
賛成も反対もする筋合いにないからどっちとも言わないが、
はっきりした意思があるなら邪念は捨てろ
0516デフォルトの名無しさん
NGNGそれはそれですることがあるはずだ
0517デフォルトの名無しさん
NGNGそこはスレが荒れるとこでしょ。やっぱMFCに愛着無いからかね。
0518デフォルトの名無しさん
NGNGそれと、暇つぶしにレスしているだけ
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGこちらでおながいします。
MFCを使っているとoperator newをオーバーロード
して、デバッグのときにはメモリリークを検出してくれるので
助かっているのですが、MFCを使用しない場合は
みなさんどうしてますか?
自力でnewをオーバーロードしてるのでつか??
0521デフォルトの名無しさん
NGNG0522489
NGNG父親にCから始めろと言われ、本を買ってくれたのでCから始めました。
他スレとか見てるとMFCの雲行き怪しげなので.NETにしときます。
スレ違いな質問してすみませんでした。
0523デフォルトの名無しさん
NGNGそんなギミックに頼るハメになる前に単体テストしとく
0524デフォルトの名無しさん
NGNGメモリリークを検出するソフトを使う
0525デフォルトの名無しさん
NGNG例えば、VC6のメモリウィンドウは、 VC7ではココにある…etc
最近学習を始めたのですが、VC6のMFC関連のHPを見ていると
どうもVC7と操作性?が違っていて、勉強が進みません。
大変お手数ですが、ご教授をお願いします。
0526デフォルトの名無しさん
NGNGどんなんあるんか教えろや
0527デフォルトの名無しさん
NGNGこれ俺も欲しい
0528デフォルトの名無しさん
NGNGPurify
0529デフォルトの名無しさん
NGNGここのことでつか?
ttp://mikata.curiocube.com/progtips/ch24_newhandler.html
MFC使わなくても…
0530デフォルトの名無しさん
NGNGMSDNには特に記述が無いようですが…
0531デフォルトの名無しさん
NGNGLIBもDLLもシングルとマルチがある
(つまりマルチならクラス全てマルチ)
0532デフォルトの名無しさん
NGNG動かないんですか?
(つりではないです。お願いします)
0533デフォルトの名無しさん
NGNGスタティックリンクすれ
0535デフォルトの名無しさん
NGNGこの一言でわかっちゃうってことは、釣りだろw
0536デフォルトの名無しさん
NGNG1行づつメッセージを出力するためにはどのような手法を使うのが一般的なのでしょうか?
0537デフォルトの名無しさん
NGNGリストコントロールとか
書き込み禁止のエディットコントロールとか
スクロールビューとか
0538520
NGNG>>523
単体テストでリークバグを検出したいのでつよw
>>524-528
やっぱ市販製品でつか...(マニーが...orz
>>529
うーんちょっと違いまつ。メモリ確保失敗というより
リークの検出をしたいでつ。。。
みなさんどうもありがとうございますた。
とりあえず慎重にPGして、ひと山あててBoundsChecker
買うですw
0539デフォルトの名無しさん
NGNG2種類のデータ形式で呼び出すと、最初はうまく動作するんですが
一定時間後に E_OUTOFMEMORY で COleDataObject::GetGlobalData() に
失敗するようになります。GetGlobalData() を2度呼び出すのは
間違ってるでしょうか?
0540530
NGNGありがとうございます。マルチスレッド版DLLならばスレッドセーフ、ということですね。
http://66.102.7.104/search?q=cache:UuuMyILAJXsJ:www.sabamiso.net/yoggy/tdiary/%3Fdate%3D20030822+cstring+%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%82%BB%E3%83%BC%E3%83%95&hl=ja&lr=lang_ja
など、少し調べた限りではMFCってスレッドセーフじゃない、みたいに書かれているページがいくつかありましたので…
(ちなみに使用したかったのはCFileでした。)
ありがとうございました。
0541デフォルトの名無しさん
NGNGんなもん買わないでも_CrtSetDbgFlag使えばいいんじゃねーの?
0542デフォルトの名無しさん
NGNGあるディレクトリ以下のファイル名一覧を取得したいんですが、サンプルをコピーしてみて、できたのですが。
日本語のファイル名だけ取得できませんでした・・・。
CFileFindって日本語は駄目なんでしょうか?
0543デフォルトの名無しさん
NGNGshiftJISのダメ文字が混じってるだけでは?
ttp://www.kent-web.com/pubc/jcode/
0544デフォルトの名無しさん
NGNGどうやらそのようでした。ありがとうございました!
0545デフォルトの名無しさん
NGNGマルチスレッドのDLLを使えばMFCだろうとCのstrtok関数だろうと全てスレッドセーフになり、
シングルのDLLを使う場合は、スレッドセーフであることが保証されていないので自分で同期取らないといけない、
という理解で良いのでしょうか?
私はてっきりマルチスレッドにするときは何が何でもマルチスレッドDLLを使って、
その上で、スレッドアンセーフなものは自分で同期をとるプログラミングをしなさい、
ということかと思っていました…
0546デフォルトの名無しさん
NGNGどんな使い方でもスレッドセーフになるって、魔法のライブラリかよ。
「バグのないライブラリを使うと、バグのないプログラムになる」が否なのに同じ。
0547デフォルトの名無しさん
NGNGちゃんと同期をとって使っているつもりでも、内部処理や内部エリアで同期がとれていない。
0548デフォルトの名無しさん
NGNGMFCは同期クラス(CMutexとか)以外はスレッドセーフじゃなかった気がする。
心配ならソース見てみれば?
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNGシングルスレッド用ライブラリ スレッドセーフではない(マルチスレッドでは使用不可)
マルチスレッド用ライブラリ クラスレベルでスレッドセーフ(マルチスレッドで使用可)
同一オブジェクトに対する別スレッドからのアクセスの同期は
同期オブジェクトを使ってプログラマがとる
0553デフォルトの名無しさん
NGNGどーやって接続先、自分のIPアドレスとポート番号を取得できますか?
0554デフォルトの名無しさん
NGNG同期クラスは例外で、オブジェクトレベルでスレッドセーフ。
0555デフォルトの名無しさん
NGNGMFCにシングルスレッド用ライブラリなど存在しない。
シングルスレッド用とマルチスレッド用(スレッドセーフ)があるのはCランタイムライブラリ。
0556デフォルトの名無しさん
NGNGIPだけでなくネームアドレスも使えるだろ?
ポートは使用するサービスによって決まるもんなんだからあらかじめ決めて動作
させるのがネットワーク・アプリ書くときの前提になると思うが。
何がしたいのか、キミのネットワークの仕組みについての理解度がどれくらいか
よく分からないね。
0557デフォルトの名無しさん
NGNG自分の方は GetSockName(), 先方は GetPeerName で取れます。
IPv6 対応はそれぞれ GetSockNameEx, GetPrrtNameEx。
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG接骨院へ
0560デフォルトの名無しさん
NGNGMFC version 7.0 (mfc70.dll) Visual C++ .NET なし
0561デフォルトの名無しさん
NGNGそりゃそうだろ(藁)
0562デフォルトの名無しさん
NGNGCEvent::SetEventの呼び出しを
Win32の生のクリティカルセクションで同期するバカが実在したりするから
世の中は面白い。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGCDialogBar上にボタンを配置して、それを条件に合わせて、
有効無効の変更を行いたいのですが、何処で行えば良いでしょうか?
MFCのソースを追っている限りでは、コマンドハンドラが存在すると常に有効に
なってしまうように見受けられますが・・・
0565デフォルトの名無しさん
NGNGコマンドマップに EnableCommandUI だかなんだかを追加するんじゃなかったかな。
0566デフォルトの名無しさん
NGNGCDialogBar m_wndDlgBar;
....
CButton *pBtn=(CButton *)SubclassDlgItem(IDC_BUTTON1, &m_wndDlgBar);
pBtn->EnableWindow(FALSE/TRUE);
では、だめかな?
0567564
NGNG>>566
返答有難う御座います
CMainFrameのコマンドマップに
ON_UPDATE_COMMAND_UP( IDC_BTN_XXX, OnUpdateBtnXXX )
を手動で入れてそこで処理させることで実現できました
0568デフォルトの名無しさん
NGNGすみません、解説お願いします。
(理解できてません…)
0569デフォルトの名無しさん
NGNG1.「MFCで提供されているクラス、同一のインスタンスへのアクセスはスレッドセーフではない」という話をどこかから聞きつける。
2.そうかそうか、と言って、以下のようなコードを書く
とあるスレッド
EnterCriticalSection( &csEvent1 );
event1.SetEvent(); // スレッドセーフじゃないのでクリティカルセクションで保護
LeaveCriticalSection( &csEvent1 );
別のスレッド
EnterCriticalSection( &csEvent1 );
HANDLE hEvent = (HANDLE)event1; // スレッドセーフじゃないのでクリティカルセクションで保護
LeaveCriticalSection( &csEvent1 );
WaitForSingleObject(, INFINITE);
実際にはもちろんこんな必要はない。
0570デフォルトの名無しさん
NGNG自分でロジック組む以外ないですかね?
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG君の言うロジックの定義は?
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGそこのユーザーエージェントを制御したいのですがどうすればよいでしょうか?
教えてください
0580579
NGNGどなたかヒントください
0581デフォルトの名無しさん
NGNG0582570
NGNG無理っぽいので自分で作ります。
0583デフォルトの名無しさん
NGNG応援してます(はぁと
0584570
NGNG応援されたので作って見ました。一応、動いてるけど、これでええのかな?
CString s = "うあ ああああ ";
int c;
int last_pos = -1;
int pos;
int i = 0;
while (i < s.GetLength()) {
pos = i;
if (IsDBCSLeadByte(s[i])) {
if (i == s.GetLength() - 1) {
c = ' '; // DBCSの先頭バイトだけが最後に残っている場合
i++;
} else {
c = ((BYTE)s[i] << 8) + (BYTE)s[i+1];
i+=2;
}
} else {
c = s[i];
i++;
}
if (_istspace(c) || c == 0x8140) { // ホワイトスペースか全角ブランク?
if (last_pos == -1)
last_pos = pos;
} else {
last_pos = -1;
}
}
if (last_pos != -1)
s = s.Left(last_pos);
0585570
NGNG0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGオレはわからないんから答えられないけどさ
■ このスレッドは過去ログ倉庫に格納されています