■MFC相談室 mfc17d.dll■
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 10:38:31前スレ
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
0800デフォルトの名無しさん
2007/06/02(土) 19:53:43DLL読み込むのに時間がかかったんだよ多分(笑)
でもデバッグしないなら問題ないじゃん、原因や理由を考えるレベルじゃないんだからさ
好きなだけ再インストールでもなんでもしてればぁ
0801デフォルトの名無しさん
2007/06/02(土) 23:55:56出力ってこの下のウインドウの事か。何かって言われても
まあ確かにDLLを沢山ロードしましたって出てる
それくらいで後は
スレッド 0xEE4 終了、終了コード 0 (0x0)。
こんなの。
0802デフォルトの名無しさん
2007/06/03(日) 00:53:24気になったんで動かしてみたら
俺のPCの場合はVC6でこさえてなんもいじってないMFCのプログラム動かしてたらOSごと落ちたw
なんだっけ?これ
なんかアクロバット絡みのファイルオープンダイアログのバグってなかったっけ?
なんか初期化関数おいてやらないと落ちる奴
違うかなぁ・・・なんかあった気がするのは覚えてるんだけど・・・うーん
0803デフォルトの名無しさん
2007/06/03(日) 00:55:25違う症状なので同じ原因かはわからんけど
他のもんもちょっとみてみようかな
いつからこんなんなったんだろう・・・
0804デフォルトの名無しさん
2007/06/03(日) 12:53:50OSごと落ちたんすか、キてますね・・・
アクロバットってあのreaderの事?
確かにあのダイアログ開く時に最初の一回だけだから
コンストラクタのどこかかなとは思ったけど
0805デフォルトの名無しさん
2007/06/03(日) 14:52:26動いてない?
0806デフォルトの名無しさん
2007/06/03(日) 15:30:55コモンダイアログがハングアップします。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200611/06110018.txt
0807デフォルトの名無しさん
2007/06/03(日) 19:29:42そこに載ってるリンク先
http://www.bea.hi-ho.ne.jp/cgi-bin/user/byoko/bnews?f=b&p=32610
がすげー気になるんですけど。
結局何が問題なの…
0808デフォルトの名無しさん
2007/06/03(日) 19:51:56あ、俺(>>802)のはこれだった
なんでハングアップするんだw
0809デフォルトの名無しさん
2007/06/03(日) 21:02:070810デフォルトの名無しさん
2007/06/04(月) 07:49:56アプリのGUIスレッドで例外が発生したら、プログラム全体を出来るだけ
安全に終了させたいと考えております。
いくつかスレッドが動いていて、今現在何個のスレッドを動作させているか
直接は変数等に控えていない状態で、MFC・Win32APIを用いて、全スレッドを
列挙後、強制終了させたいのですが、この列挙する関数が見つかりません。
このような用途に使えそうな関数はあるのでしょうか?
WinXP SP2
VS2005
C++
0811デフォルトの名無しさん
2007/06/04(月) 07:54:330812デフォルトの名無しさん
2007/06/04(月) 08:11:55自分でグローバルな変数にでも保存しておくのがいいんでない?
0813デフォルトの名無しさん
2007/06/04(月) 10:31:16列挙して強制終了がTerminateThreadの事だったら
何もせずシステムに殺してもらうのと大して変わらんと思うぞ
0814デフォルトの名無しさん
2007/06/10(日) 20:25:44そのファイルが削除されるタイミングを検知できれば、
ファイルハンドルを解放しようと思います。
その方法を知っている方いますか?
0815デフォルトの名無しさん
2007/06/10(日) 21:16:180816sage
2007/06/10(日) 22:05:05MFCでないかなぁと思って。
0817814
2007/06/10(日) 23:05:250818デフォルトの名無しさん
2007/06/13(水) 17:31:16UNICODEビルドのdllからMBCSビルドのdllの関数を呼び出す時の
CString型の変換なんですが、MBCSビルド側のDLLに
・名前を設定する関数
・名前を参照する関数
があるとして
名前を設定する場合は
USES_CONVERSION;
CString strName = _T("名前");
mbcsdll->SetName(W2A(strName));
としてNameをANSIに変換して設定できています。
Nameを参照する際にはCString*を渡す必要があるんですが
CString Name;
mbcsdll->GetName(&Name);
この時のNameへのポインタはどのように型変換して渡すんでしょうか?
このままだと参照できませんでした。
変換をどうやったらいいのか解らず弱っています。
0819デフォルトの名無しさん
2007/06/13(水) 17:43:31CStringA NameA;
mbcsdll->GetName(&NameA);
Name = NameA;
でどう?
0820デフォルトの名無しさん
2007/06/13(水) 17:57:22ただCStringAはVC7からのATLではないですか?
自分VC6なんです(=TェT=)
VC6での型変換方法をご存知ないでしょうか
0821デフォルトの名無しさん
2007/06/13(水) 19:11:457だと
typedef ATL::CStringT< wchar_t, StrTraitMFC< wchar_t > > CStringW;
typedef ATL::CStringT< char, StrTraitMFC< char > > CStringA;
typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;
だからCStringAと書いたんだけど、6のCStringはどういう定義なんだろう。
それのTCHARをcharに置き換えて変数作ればいいと思う。
>818の後、A2W(Name.GetBuffer())はよくないよね。
0822デフォルトの名無しさん
2007/06/13(水) 19:26:17そこんとこ分かってるのかな?
0823デフォルトの名無しさん
2007/06/13(水) 20:30:12う、「MFCオブジェクト」の意識ありませんでした。すいません。
そういえば自分がやるならインターフェースはプリミティブなものにしちゃうなぁ。
0824デフォルトの名無しさん
2007/06/14(木) 23:10:56FindWindowなどで取得した特定の種類のコントロールのウィンドウハンドルを、
それに対応するMFCの「C〜」クラスに割り当てて、
「C〜」クラスの機能関数を使うことはできるのでしょうか?
もしできるようでしたらやり方を教えて欲しいです。
よろしくお願い致します。
0825デフォルトの名無しさん
2007/06/14(木) 23:19:26ウインドウを扱うクラスといったらあれしかないだろ
0826デフォルトの名無しさん
2007/06/15(金) 00:25:25attachとか見てみて
0827デフォルトの名無しさん
2007/06/17(日) 17:46:25ツリーコントロールにイメージリストを設定。
あるタイミングでツリーのフォントサイズを変更するとき
イメージのサイズも変更したい考え、
一度イメージリストをDeleteImageList()で削除し、
再度Createする際にサイズを変更し設定したんですけど
イメージが消えてしまいました。
なにかいい方法はありましたらご教授をお願いします。
0828デフォルトの名無しさん
2007/06/17(日) 18:36:370829デフォルトの名無しさん
2007/06/20(水) 09:13:52最初にサイズ別にCImageList を2つ作って切り替えたいときにCTreeCtrlにSetImageListする。
0830デフォルトの名無しさん
2007/06/20(水) 12:31:24ダイアログ終了後も値を内部で持っておくために、
ダイアログオブジェクトをグローバルで一つだけ持ち続けて、
いろんな箇所からモーダル表示させたいんですけど、
DoModal()の前に親を再指定できる箇所が見当たらないんです。
0831デフォルトの名無しさん
2007/06/20(水) 12:37:280832デフォルトの名無しさん
2007/06/20(水) 17:46:37CWndから派生してるから親はどうとでもなるが
親を変える必然性が解らん
デフォで出来るAboutAppのダイアログにEditBoxとその値用変数を一個追加
ダイアログをグローバル変数にしてMainFrameとAppから呼ぶようにしてみたが普通に動いたし
変数の変は常に保持されていた。デフォなので親はNULL
メッセージを送るなら送りたい相手のハンドルが入手できれば良いわけだし
モーダルだからWindowが残ることもないし
0833デフォルトの名無しさん
2007/06/20(水) 18:55:57メーラのように子のフレームウィンドウを何個も表示するアプリなので、
ダイアログの親をNULLにしたままだと、メインウィンドウの上に出てきてしまうんです。
ダイアログ側からもGetParentFrame()を使って
DoModal()をコールしたフレームウィンドウにアクセスしたいので、
できればダイアログの親をDoModal()時に変更できればと思ってます。
0834デフォルトの名無しさん
2007/06/20(水) 20:07:440835デフォルトの名無しさん
2007/06/20(水) 20:33:28別々のウインドウからDoModalしたらぶつかるんじゃないか?
0836デフォルトの名無しさん
2007/06/20(水) 21:07:40前回指定された情報をそのまま次回も再表示したいので、
ダイアログオブジェクトをグローバルにしておけば
ダイアログ内のメンバをそのまま使い回せると思ったのですが、
おとなしく毎回ダイアログから値を取って別の場所に残しておき、
次の表示時に一つずつ入れ直してしまうべきなのですかね。
>>835
もちろん、モーダル表示中は他のウィンドウも操作不可にしています。
0837デフォルトの名無しさん
2007/06/20(水) 21:27:09マウスを右クリックしたタイミングで特定のプログラム(実装)を
右クリックメニューに追加したいのですがどうしたらできますか?
0838デフォルトの名無しさん
2007/06/20(水) 22:47:33もっと具体的に
0839デフォルトの名無しさん
2007/06/21(木) 11:57:34>マウスを右クリック
どこでだよ。
シェル拡張の話か?
0840デフォルトの名無しさん
2007/06/21(木) 13:48:050841デフォルトの名無しさん
2007/06/21(木) 13:56:050842デフォルトの名無しさん
2007/06/21(木) 15:39:160843デフォルトの名無しさん
2007/06/24(日) 09:10:40AppendMenu, InsertMenu
0844デフォルトの名無しさん
2007/06/27(水) 02:10:10CToolbarを2つ作成し、CFrameWndの右と下に
ドッキングさせると、
┌───────────┬┐
│ ││
│ ││
│ ││
│ ││
│ ││
├───────────┴┤
└────────────┘
のように、下のツールバーが右のツールバーに
かぶさるようにドッキングされますが、
┌───────────┬┐
│ ││
│ ││
│ ││
│ ││
│ ││
├───────────┤│
└───────────┴┘
のように、右のツールバーが下のツールバーの上に
かぶさるようにドッキングすることって可能でしょうか?
0845デフォルトの名無しさん
2007/06/27(水) 05:52:410847デフォルトの名無しさん
2007/06/28(木) 02:01:19↓\→+P
0848デフォルトの名無しさん
2007/06/28(木) 11:53:300849デフォルトの名無しさん
2007/06/28(木) 12:33:130850デフォルトの名無しさん
2007/07/01(日) 05:04:01自分、初級PG(MFC使ったこと無い)ですが
最近入ってきた中途の人が
「MFCは楽、簡単」
って言ってる人が居るんだけどそうなんですか?
MFCって要するに巨大な関数群、ライブラリな訳ですよね?
使い易い関数や便利な関数は沢山あれど
結局はそれをどう使うかですよね?
それは結局標準的なC言語の関数をどう使っていかに組むか
っていうのと変わらないと思うんですけど・・・
それとも自分の知らないMFCの機能が有って
楽で簡単になるんですか?それってC言語の仕様が変わったりするって事ですか?
誰か分かり易く教えてください。
0851デフォルトの名無しさん
2007/07/01(日) 05:31:05いいえ
0852デフォルトの名無しさん
2007/07/01(日) 05:35:59関数群でもクラスライブラリでもない。
何か勘違いしてると思うのでMSDN調べるといい。
0853デフォルトの名無しさん
2007/07/01(日) 06:19:09楽するためにウィザードがついている
VCからMFCを取ったらほとんど何の価値もないから
無償版として提供されている。
0854デフォルトの名無しさん
2007/07/01(日) 08:26:09C言語の標準関数で、文字列の末尾から5文字を取得する関数を書いてみろ
MFCなら簡単にできるぞ
0855デフォルトの名無しさん
2007/07/01(日) 08:39:22sprintf(buf, "%.5s", strlen(str) < 5 ? str : str + strlen(str) - 5);
// MFCはC++なんだから較べるならstd::stringじゃね?
0856デフォルトの名無しさん
2007/07/01(日) 10:06:03文字列を扱う目的だけでMFC使うやつはあんまりいないと思う
0857デフォルトの名無しさん
2007/07/01(日) 10:10:020858デフォルトの名無しさん
2007/07/01(日) 11:05:24MFCの他にWTLやATLを使う方法があるというのを
聞いているのですが、
VC++6.0 MFCを使って作る場合の
メリット、デメリットについてご存知でしたら
教えて頂けませんでしょうか。
(早く作れる、移植性が悪い など)
0859デフォルトの名無しさん
2007/07/01(日) 11:18:370860デフォルトの名無しさん
2007/07/01(日) 11:38:49ドキュメントビュー構造が利点にも欠点にも。
古臭い。
0861デフォルトの名無しさん
2007/07/01(日) 13:17:30ありがとうございます。初めて知りました。
SleipnirがMFCとは知りませんでした。
MFCは業務で使ったことがあり、私は
変えたいところは
上書きして対応できるし工数が減るので
使えると思っていたのですが、
なぜだかMFCアレルギーというか
異様に嫌っている人がいて、
使わないほうがいいみたいな風潮が
を出しているために、戸惑っていました。
DonutはWTLを使っているみたいですね。
>>860
ありがとうございます。
ドキュメントビュー構造というのは、SDI/MDIで
出てくるControl/View/Modelの
ことでしょうか。
0862デフォルトの名無しさん
2007/07/01(日) 13:50:33ブラウザを作る話か。
勘違いしてた。
なら話は簡単。
MFCはブラウザをサポートしてる。
これがメリット。
デメリットはMFCだってこと。
0863デフォルトの名無しさん
2007/07/01(日) 13:55:43すっかり気に入ってしまった、C言語の拡張、高機能版という認識でいる、MFCの関数をあまり知らなくても
Cでゴリゴリ書けばいいし、後で等価のMFCの関数に気付いたら修正すればよろし
0864デフォルトの名無しさん
2007/07/01(日) 14:07:35置き換えた関数の一例を挙げてくれ。
漏れは逆に、MFCはリソースエディタとDDXくらいしか使ってないんだよね。
基本的に、GUIべったりじゃないところはCStringさえ使わないようにしていたし。
0865デフォルトの名無しさん
2007/07/01(日) 14:32:26そうだね例えばSDKでFindFirstFile使ってフォルダ検索処理してたのをMFCの
CFileFindを使ったりとかだね、ラッパ関数なんで速度的にも満足してるな
0866デフォルトの名無しさん
2007/07/01(日) 15:01:06ファイルダイアログから文字列で貰うのって限界なかったっけ?
VBとかだと何個読みこんでも大丈夫みたいなんだけど
0867デフォルトの名無しさん
2007/07/01(日) 16:00:22VBは使ったことないからどうなってるのかしらんが
OPENFILENAMEのlpstrFileにOFN_ALLOWMULTISELECTの場合はExtra NULL characterで区切られとると書いてあるだろ
0868デフォルトの名無しさん
2007/07/01(日) 16:08:24いや、問題は最大長の話なんだけど0xFFFFが限界じゃなかったっけ?
それで読むとさ、パスが長いとショボイファイル数しか読み込めないんだけど
一体みんなどうやっているのかと疑問だったんだ
0869デフォルトの名無しさん
2007/07/01(日) 16:10:520870デフォルトの名無しさん
2007/07/01(日) 17:34:39いや、たぶん素で書いてるんだと思うよ。
>C言語の拡張、高機能版という認識でいる
ということらしいから、言語とライブラリの違いがわかってなさそう。
このスレ自体釣りなんじゃないかと疑ってしまうけどね。
MFCって言うと、ドラッグアンドドロップのようなOLE関連の操作を
フレームワークに閉じ込めた部分が一番大きいと思うんだけど、
そういう話が一切出てこないところを見ると、ほんとに使ってるやついるのかと
疑問がわいてくるよ。
0871デフォルトの名無しさん
2007/07/01(日) 17:53:450872デフォルトの名無しさん
2007/07/01(日) 17:57:500873デフォルトの名無しさん
2007/07/01(日) 17:59:43・ファイルオープンダイアログのファイル無限読み込み
・トラッカークラス
・メモリデバイスコンテキストの管理
がわかんない(MFC使わないと)
0874デフォルトの名無しさん
2007/07/01(日) 18:03:45「ドキュメント編集」という骨格を使うならそうだろうけど、
漏れみたいにダイアログしか使わない用途ならOLEなんかもどうでもいいね。
>864にも書いたけど、ダイアログに部品をペタペタ貼るだけだからなぁ。
#んで、某社のActiveXの糞仕様に悩まされたりして。
0875デフォルトの名無しさん
2007/07/01(日) 19:32:54単体のグローバル関数で構成されるほうが不自然なのに
両方関数単体であることを比較条件にするのも
よくわからないけどな
0876デフォルトの名無しさん
2007/07/01(日) 20:13:53まず最初に随所に出てくるAfxの意味を
先に説明しないから
気持ち悪い状態で進まらざるを得ない
せいもあったかもねぇ。
0877デフォルトの名無しさん
2007/07/01(日) 21:01:19Framework eXtention」とかじゃないのかな。けど、名前に意味はないよ。
マクロにしろ、関数にしろ、定数にしろ、ソースが公開されているの
だから、どこでどう定義されているか調べればよいだけ。選択して右
クリックすれば、定義位置へジャンプする便利なメニューがあるでそ。
0878デフォルトの名無しさん
2007/07/01(日) 21:04:220879デフォルトの名無しさん
2007/07/01(日) 22:26:40OpenFileDialogなんか使っているくせに0xFFFFで不足とかショボイとか笑わせんなよ
0880デフォルトの名無しさん
2007/07/01(日) 22:59:51いや、マジでわかんない
煽り抜きで
0881デフォルトの名無しさん
2007/07/01(日) 23:33:00>>879 ではないが、出来合いのモン(コモンダイアログ)に文句を言うなら、
自前で作れば良かろうと言っているんでは?
0882デフォルトの名無しさん
2007/07/01(日) 23:40:41いや、それだとエクスプローラ上で選択されたもんをもってくる手段がわからん
みんなここから自作してんの?もしかして?
0883デフォルトの名無しさん
2007/07/02(月) 13:57:13ダイアログはMFCの機能じゃないだろ。
0884デフォルトの名無しさん
2007/07/02(月) 14:07:30printfとかあるし。
0886デフォルトの名無しさん
2007/07/02(月) 14:43:48え?CDialogしか使ってないのに>>874みたいなこと書いてるの?
そりゃ失礼。
ママー変なおじさんが来たよ〜〜〜
0887874
2007/07/02(月) 14:57:010888デフォルトの名無しさん
2007/07/02(月) 15:23:35馬鹿にされるのは仕方ないかもな。
0889デフォルトの名無しさん
2007/07/02(月) 20:07:22VC6で簡単にエクセルのようなグリッドコントロールが使いたいのですが・・・
0890デフォルトの名無しさん
2007/07/03(火) 10:36:47VC6には、FlexGridのMSバンドル版である、MS-FlexGridがバンドルされていたと思いますが。
Excel(つーかMSOfficeSuite)をインストール済みなら、Excel由来のコントロールも使えると思うし。
0891デフォルトの名無しさん
2007/07/03(火) 12:45:41MFC 使ってるんだが、そんなオカシイこと言ってるか?
0892デフォルトの名無しさん
2007/07/03(火) 12:49:250893デフォルトの名無しさん
2007/07/03(火) 16:05:18CDialogだけってことはあまりないだろ
配置するコントロールもMFCクラスだし
文字列操作とかファイル操作とか
見えない処理でもMFCクラスを使う
機会はある。
0894デフォルトの名無しさん
2007/07/04(水) 01:17:10お前マジでそんなものも作れないの?
0895デフォルトの名無しさん
2007/07/04(水) 01:41:46ここ数日煽りばっかりやってるけど
何か嫌なことでもあったの?
0896デフォルトの名無しさん
2007/07/04(水) 03:14:33使ってみたいひといる?
0897デフォルトの名無しさん
2007/07/04(水) 06:15:52すまん
解説キボン
0898デフォルトの名無しさん
2007/07/04(水) 07:53:230899デフォルトの名無しさん
2007/07/04(水) 08:53:26■ このスレッドは過去ログ倉庫に格納されています