■ VisualC++(MFC限定)相談室 4■
■ このスレッドは過去ログ倉庫に格納されています
0001MFC
NGNG※MSDNライブラリをよく読む。
※関連すると思われるクラスのメンバ関数を探してみる。
※そのクラスの基本クラスのメンバ関数も探してみる。
※Win32APIからも探してみる。
※WEB検索。
※たいていの問題は>>2-3のサイト/書籍で探せば解決。
0153デフォルトの名無しさん
NGNG実装は別物。日本人が実装すれば早いだろうが。
あと漢字関係あんの?
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG無かったら、SendMessage(LVM_SUBITEMHITTEST)したら?
0156デフォルトの名無しさん
NGNGあるいはMFC.dllを別途附属させておくのか、どっちが常識?
また、そのスタティックリンク、dllについて詳しくわかりません。
このへんどうしたらいいのかも教えてくだされ。
参考までに
http://www.ne.jp/asahi/yamashita/programming/tips/vcpp_faq.html#tips0003
0157デフォルトの名無しさん
NGNGもういっこ参考。
最近のパソコン(ウィンドウズ98が最初から入ってるモデル、ペン2世代くらい)は、
「MFC42.DLL」 「MSVCRT.DLL」
は最初から入ってるもの?ほんとどPCはいってる?
配布するときは「DLLがないひとは、ここからDLしてください」
ってリンクはっとけばいいのかな。
0158デフォルトの名無しさん
NGNGこういう場合でも、何かのC言語のソフトを購入しないとダメなんでしょうか?
メモ帳とかでプログラムって組めないんですかね?
いや、ほんとにお金がないもので・・・
0159デフォルトの名無しさん
NGNG基本的にMY.EXE単独のときは、インストール簡単だからスタテックリンクかな。
ちなみに小さなSDIアプリケーションでダイナミックが30K、スタテックが300Kほど
ダタ。だからネットでのDLが前提だと両方コンパイルして容量を比較して決めた
ほうがいいかも。
MY.EXE、MY1.DLL、MY2.DLL・・・がそろぞれMFCを持つときはダイナミックか
スタティックを検討しよう。
ちなみにOSが古いとき(95)、MFC42.DLLのバージョン不適合(?)だと
「システムに装着されたデバイスが正常に動作してません・・・」など
というメッセージが出でるから、ユーザがパソコンを破壊しかねないので、
ダイナミックでEXEを配付するときは注意。
0160デフォルトの名無しさん
NGNGただしVC++.NETではスタティックリンクしてもWin95で動かないので注意しよう。
0161デフォルトの名無しさん
NGNGそれです。
じつはいま大学や自分のいろんなパソコンでためしてるのですが、
98(これで作成)、XP各マシン(自作マシンやら製品版富士通NECなどいろいろ)
で全部動いて95だけ「開始エラー」と出て、作動しませんでした。
まあ、95は非対応とすればいっか。今日び使ってるひとなんていないし。98以上ということで。
逆に98以上はどうやらほとんどのPCにDLL入っているみたいです。
そんでやっぱ別にしようかなと。
配布するときは安全を考えて、
自分の作成したdebugフォルダの中にある my.exe(これが完成品なわけですよね?)
を単品で
プログラム→「ダウンロード」みたいなかんじにして
それに
「このプログラムはMFC.dllが必要です。ない人は以下からDLしてください」
http://www.vector.co.jp/soft/win95/util/se040499.html
ってのでいいのですか?。つーかベクター直リンOKだったっけな?
0162デフォルトの名無しさん
NGNG配布するのが目的なら違います。
リリースビルド版を配布してください。
0163デフォルトの名無しさん
NGNGせいぜい数百KBくらいでしょ?
0164デフォルトの名無しさん
NGNGVC6でフリーウエアを作って配布してるんだけど、
何人かから MSVCP60.DLL がどうしたとかってエラーが出て
起動しないって報告が来てから、スタティックリンクで配布
するようにしてる。
0165デフォルトの名無しさん
NGNG初めてしりました。勉強になった。
リリースビルドだとシンボリック デバッグ情報は取り込まず 実行速度を最高速化するんですね。
あとバカ質問なんですが、スタティクリンクの方がいいとのことなんで
やってみようと思うのですが、検索してもいまいちわかりやすいサイトが
ありません。スタティクリンクのやりかたのおすすめのHPってありますか?
肝心なやりかたをしらないんですよ。
0166デフォルトの名無しさん
NGNG> リリースビルドだとシンボリック デバッグ情報は取り込まず 実行速度を最高速化するんですね。
というか、デバッグビルドだとデバックビルド用のDLLが必要で、
このDLLはVCを持ってない一般の人は普通持ってないので動きません。
さらにこのデバッグビルド用DLLは再頒布不可なので配布もできません。
ゆえにリリースビルドします。
> スタティクリンクのやりかたのおすすめのHPってありますか?
>>156に載ってまっせ。
0167デフォルトの名無しさん
NGNGありがとう!
つーかデバックとリリースコンパイルの違いをしらなかったのって
俺だけ・・?スゲー基本的で大切なことなんだからもっと
参考書はこーいうことも大きく書いて欲しいもんだ。
ほとんどの本は完成したものをその後どうするかなんて書いてないもんね。
たすかりましたー。
一般配布する完成品とは
「リリースでコンパイル&スタティクリンクしておく(特別軽くしたくなければ)」
のがいいんですね。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG言われてみれば確かに
0170デフォルトの名無しさん
NGNGリナックスにしる!
0171デフォルトの名無しさん
NGNGマルチ厨はほっとけ
0172デフォルトの名無しさん
NGNGリストボックスだと行けるのに…、リストビューだとダメなんです。
どうしてなんでしょう?
教えてください。または参考になるHPを教えてください。お願いします。
m(_ _)mペコリ
0173デフォルトの名無しさん
NGNGDragAcceptFiles
0174デフォルトの名無しさん
NGNG緊急事態です。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_EXEdll.html
の方法でスタティックリンクしようと思ったら
コンポボックスの中にスタティックリンクがありません。
「共有DLLでMFCを使用」しかないです。
ひょっとしてこれってVC++6.0スタンダードエdィションだとできないのですか?
0175デフォルトの名無しさん
NGNG無料でVCスタンダードエディにスタティックリンク機能を
追加するソフトはないの?パッチとか
0176デフォルトの名無しさん
NGNG0177172
NGNGリストのソートが入っているせいか、リスト追加時にコラム0とコラム1のデータがずれてしまいます…。
リスト追加時だけ一時的にソートを停止する為に、ソートの可・不可を設定するための関数って無いですか?
0178デフォルトの名無しさん
NGNGスタテックリンク
VC.net standard には付いてるけどVC6には無いのか?
(インストールしてないだけとか)
0179デフォルトの名無しさん
NGNGtai-ho
0180デフォルトの名無しさん
NGNGえ?あるの??ないっぽいぞ。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGVC.net standard にはMFCソース付いてくる。
VC6はenterprise使ってるので知らん。
0183デフォルトの名無しさん
NGNGVC.net standard どうよ。安くて魅力的に見える。
個人的には最適化が無いのはあまりマイナスにはならないと思うので。
professionalなんていらない?
0184デフォルトの名無しさん
NGNG一時的にリストビューのスタイルビットをいじってみるのはどうだろう。
ドラッグが終わったらちゃんと元に戻してさ。
SetWindowLong,LVS_SORT〜を調べてみんしゃい。
0185182
NGNG普通のアプリケーションを作成するのに機能不足とか全然感じない。
ツールウィザードも一通りある。
VC.netに限らずVS.netはIDEの使い勝手と見てくれが全然違うからかなり戸惑う。
あと.NETのため(?)VS6に比べてメモリとHDを馬鹿食いする。
0186デフォルトの名無しさん
NGNGレス、thanks!
やっぱ値段以上の機能なんだね。ただ、.NETは重いのが玉に瑕、と。
自分の環境と相談しながら検討してみるよ。
0187デフォルトの名無しさん
NGNGどれぐらいのスペックがないと厳しいの?
0188デフォルトの名無しさん
NGNGStandard Edition 上級者向け Visual C++ ツール セットを使いなが
ら、C++ 言語を学習します。Standard Edition には、Professional
Edition の機能がほとんど揃っています。コードの最適化、プロファイラ、
MFC ライブラリの静的リンクの 3 機能だけがありません。
0189デフォルトの名無しさん
NGNGでも作り方がわからないのです。
ソースあるところとか知りませんでしょうか?
何とか解読したいのです…
ffftpの作者の電卓は複雑すぎます…
0190デフォルトの名無しさん
NGNGわからんなら諦めた方がいい。
0191デフォルトの名無しさん
NGNGソースどうやるん、と思います...
最後のチャンスをください。
0192デフォルトの名無しさん
NGNGコマンドプロンプトでもかけません。
0193デフォルトの名無しさん
NGNGMFCcalc。VC++6.0のサンプルに入ってる。
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNG俺はお前が分らないヨ!
普段は何語を使ってらっしゃるんですか?
慣れない日本語は使わないほうがいいと思うヨ!
0196デフォルトの名無しさん
NGNG誰が何のために君に電卓作れと言ったんだ?
レスを見る限りはっきり言って現在の君では193を解読
するのは難しいと思う。
電卓勉強するより理不尽なことを言う奴を説得する勉強
をするべし。
0197デフォルトの名無しさん
NGNGコマンドプロンプト[上で動作する、GUIを持たないタイプの単純なもの]でも書けません。
0198デフォルトの名無しさん
NGNGttp://www.kumei.ne.jp/c_lang/
ここあたりでC++の基本からどうぞ。
0199デフォルトの名無しさん
NGNG俺はてっきりコマンドプロンプト上でプログラムを書くつもりだったのかとおもたよ。
0200デフォルトの名無しさん
NGNG0201193
NGNGちょっとだけ複雑だったかも知れん。
他に思いつかなかったのだ、すまそ。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGな、なにかやばいものが埋め込まれちゃうんでしょうか?
0204デフォルトの名無しさん
NGNGビルドした環境のプロダクトID、ユーザー名、ネットワーク接続があるときは
そのときのIPアドレスなどが、コンパクトなバイナリになって、実行ファイル
に分散して埋め込まれます。
0205デフォルトの名無しさん
NGNGそうとうです
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG>>205は宿題で電卓作れって言われて作れなかったんでしょ。
0208デフォルトの名無しさん
NGNG本当なのか・・・!かなりやな感じですね。ひょっとしてウィルス対策かね。
できれば、情報ソースとか詳細キボンヌ。
0209デフォルトの名無しさん
NGNG割れ対策だろ。
>206
本当です。電卓は結構高度です。字句解析、再帰、、、設計力が必要です。
世の中のプログラマーは設計もせずtry&errorの力業で何とかプログラムを仕上げるヤツだらけです。
0210193
NGNG>字句解析、再帰、、、設計力が必要です。
これはコマンドラインか、エディットボックスで逆ポーランド記法入力する
タイプの電卓でしょ?
GUI電卓は割と簡単に作れそう。VBなら、さらなり。
0211デフォルトの名無しさん
NGNG>割れ対策だろ。
???ハッキングツールの出所を特定するって言う意味?
0212デフォルトの名無しさん
NGNG数式入力する程度なら簡単に作れますが。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGその程度で高度といわれても・・・(´ー`;)
0215デフォルトの名無しさん
NGNGVC++のピーコだろ。
0216デフォルトの名無しさん
NGNG>209あたりが製作して公開してくれるとみんな納得すると思うし。
>209もこのままあおられて終わるのも面白くないでしょう。
どうよ、おめぇら
0217煽りじゃないよ
NGNG(なんて募集に応募してみようかな。今日代休でひまだし)
0218209
NGNGハァ?
それをいうなら簡単を連発してる奴らだろ。
0219216
NGNG私はあなたの実力を知りたい。
出来るのなら出せるはずでは...
別にVBでもよいですけど。
0220デフォルトの名無しさん
NGNG検索すれば簡単に見つかりそうなもんを、
「作れ」って煽っても…
0221209
NGNG豪語する連中が先ず作るべきだな。
0223193
NGNGみんな、自分の腕にプライドを持っているからこそ、なのかな・・・。
0224デフォルトの名無しさん
NGNGとりあえず情報ソースと詳細キボンヌ。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG「MFCによるWindowsプログラミング」P485
ダイアログアプリのサンプルとして逆ポーランド記法電卓が載ってる。
MFCスレだしちょうどいいサンプルだと思われ。
0227デフォルトの名無しさん
NGNG一般的に
とりあえずC++の言語仕様は知っているかも(はじめてのC++とかで学んだ)
なんていう甘い考えの人間がVC++を使ったら何ヶ月くらいで物になると思いますか?
Windowsのプログラムは
VM_hogeなどのメッセージが来てそれに対応するOnhogeというメンバ関数に処理を記述する
などのさわりしか知りません。
1 プログラムできるというのはAPIやクラスライブラリを理解していて、
2 言語仕様を知っていて、
3 開発ツールを使える
ことかとおもいますが
3は特に問題ないと思います。
なめきった質問かもしれませんがよろしくお願いいたします。
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGウイザードが作る雛型をベースに作る程度だったら、
チュートリアルとかサンプルをがんばって勉強すれば
そんなに時間はかからないと思う。
ExcelみたいなUI作るとなると、スゲーたいへん。
0231デフォルトの名無しさん
NGNG作る内容によって大幅に変わるでしょうね。
1.Windowsのメッセージベースプログラミングを理解する。
(コンソールベースのプログラムしか作らないなら必要なし)
2.Windowsの流儀(APIの使い方など)を理解する。
(MFCを使えば、場合によっては必要なし、いや必要か。)
3.MFCなどのクラスライブラリなどを理解する。
(使わないなら当然必要なし。)
4.言語ツールに習熟すること。
5.技術情報を引き寄せるための、情報収集力、咀嚼力。あと英語の読解力。
これはそれなりでも可だと思う。
どれもこれも、すぐ習得というわけには行かず、むしろ同時にこれらを
勉強しなければならない、という煩雑さがあると思う。
簡単なアプリを自力で!書けるようになるまでは、数ヶ月見たほうが
良いんじゃないかな。
あと、先生の存在かな。問いに的確に答えてくれる身近な人の存在。
これ大事。学習のペースに影響でかいよ。
初心者のときは、「知っててあたりまえ」なことにも気が付きにくいことって
あるよね?経験者に聞けば一発で分かるという。。。
あとは、ある程度力がつけば、自力で必要な情報を得て鍛えていけると思う。
独学のみでもできるけど、ペースは落ちるだろうね。
0232デフォルトの名無しさん
NGNGほかのスレでもたまに見かけるけど
「○○を習得するにはどのくらいかかりますか?」
「○○歳なんですが今からやるにはどのくらいかかりますか?」
とか。
本人の努力次第だと思うし、習得したいなら努力すべきだと思うんだけど。
0233デフォルトの名無しさん
NGNGそういうのは元気付けて欲しいんだよ。
やさしく’あきらめろ’っていってやんな。
0234231
NGNGこれがあれば、少々の飲み込みの悪さやテクニックのまずさ・・・は
徐々に克服できると思う。
0235デフォルトの名無しさん
NGNGそうじゃない人もいるから怖い。
0236デフォルトの名無しさん
NGNGそれってどうなるんだ・・・。まさか、変な方向に暴走するとか?
0237デフォルトの名無しさん
NGNG(PS プリンタでERROR:undefined OFFENDING COMMAND:getがでる)
何が問題なのかご教授頂ければ幸いです。
:
LPBITMAPINFO lpbi;
LPTSTR lpBits = NULL;
#define WIDTHBYTES(bits) ((((bits) + 31) / 32) * 4)
// Fill in the BITMAPINFOHEADER
lpbi = (LPBITMAPINFO) new BYTE[sizeof(BITMAPINFOHEADER)];
lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
lpbi->bmiHeader.biWidth = rect.Width();
lpbi->bmiHeader.biHeight = rect.Height();
lpbi->bmiHeader.biPlanes = 1;
lpbi->bmiHeader.biBitCount = 24;
lpbi->bmiHeader.biCompression = BI_RGB;
lpbi->bmiHeader.biSizeImage = WIDTHBYTES(rect.Width()) * rect.Height();
lpbi->bmiHeader.biXPelsPerMeter = 0;
lpbi->bmiHeader.biYPelsPerMeter = 0;
lpbi->bmiHeader.biClrUsed = 0;
lpbi->bmiHeader.biClrImportant = 0;
0238237
NGNGhBitmap = CreateDIBSection(pDC->m_hDC, lpbi, DIB_RGB_COLORS, (void **)&lpBits, NULL, 0);
// DSPメモリ デバイスコンテキスト作成
DCMem.CreateCompatibleDC(pDC);
Soh = (HBITMAP)SelectObject(DCMem.m_hDC, hBitmap);
// ビットマップ複写
DCMem.BitBlt(0, 0, rect.Width(), rect.Height(), pDC, 0, 0, NOTSRCCOPY);
CPrintDialog* dlg = new CPrintDialog( FALSE,
PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_NOSELECTION,//[全ページ]選択,[部数],[ページ指定]使用不能,[選択した部分]使用不能
this);
if( !dlg->GetDefaults() )
{
return 0L;
}
DWORD dwSaveFlags = dlg->m_pd.Flags;
dlg->m_pd.Flags &= ~PD_RETURNDEFAULT;
LPDEVMODE pDM = dlg->GetDevMode();
pDM->dmCopies = 1;
pDM->dmOrientation = DMORIENT_LANDSCAPE;
pDM->dmFields |= DM_ORIENTATION;
pDM->dmTTOption = DMTT_SUBDEV;
DCPrn.CreateDC(dlg->GetDriverName(), dlg->GetDeviceName(), dlg->GetPortName(), pDM);
TEST*/
DCPrn.ResetDC(lpDevMode);
DocInfo.cbSize = sizeof(DOCINFO);
DocInfo.lpszDocName = "hogehoge";
DocInfo.lpszOutput = (LPSTR)NULL;
DocInfo.lpszDatatype = NULL;
DocInfo.fwType = DI_APPBANDING;
:
if (DCPrn.StartDoc(&DocInfo) != -1)
{
:
DCPrn.StretchBlt(iOffset_X, iOffset_Y, iBitMap_X, iBitMap_Y, &DCMem, 0, 0, rect.Width(), rect.Height(), SRCCOPY);
:
retval=DCPrn.EndDoc();
}
DCPrn.DeleteDC();
:
0239デフォルトの名無しさん
NGNG単にデバイスがStretchBlt()をサポートしてないだけとか。
デバイス依存ぽいし・・・
0240237
NGNGってデバイス依存なんですか?!(しらなかった)
0241デフォルトの名無しさん
NGNGプリンタDCに書き込むところ。(断言は出来んけど)
DIB系の関数つかったほうがいいような。
あと
BitBlt()
GetDeviceCaps()
SetDIBitsToDevice()
StretchBlt()
StretchDIBits()
は使えるデバイス使えないデバイスがあるそうです。
詳しくはGetDeviceCaps()に聞いて下さい
0242デフォルトの名無しさん
NGNGうぅ、しらなかった。鬱
0243デフォルトの名無しさん
NGNG誤報じゃないのかな?ワード文書とかにIDが埋め込まれるって話は聞いたこと
があるけど。マクロウィルス騒ぎの時に報道されたから覚えてる。
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGバイナリのどの辺?
0246204
NGNG違う環境でビルドした実行ファイル比較しても、1バイト程度違うことがあるけど、
まったく同じファイルが出来上がりますです。
0247デフォルトの名無しさん
NGNG勘違いってことでOK?
0249デフォルトの名無しさん
NGNGバイナリエディタで見ると途中に関数名みたいのがずらずらと。
あれホントにいるのかなと思ったんで。
0250デフォルトの名無しさん
NGNGインポートテーブルじゃろ。ダイナミックリンクする関数名が入ってる。
95持ってたらクイックビューアで見てみるとよろし。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGビットマップ絵をなめらかアニメーションでスーーっと動かしたいです。
当然「タイマーイベントを使え」って言うかもしれませんが、
自分なりに調べたのですがわかりません。タイマーについて
やさしく教えてくれる人やHP教えてくれる人大募集。お返事待ってます。
今はたとえば A→―――→B地点
の物体の移動アニメ作りたいんだけどタイマーがないので、一瞬で移動して終わりです。
タイマーをつかえばウィンドウズゲームパックみたいなグtラフィカルななめらかアニメ
な動きが作れるはずなのですが・・おねがいします。
■ このスレッドは過去ログ倉庫に格納されています