***すれ立てるまでもない質問はここで 第A刷***

このエントリーをはてなブックマークに追加
943 :02/02/23 19:41
CとBasic(昔の、98ベーシックです)の文法だけを知っている
のですが、プログラミングしたことがありません。Visual Cか
Visual Basicで簡単なゲームプログラム(マインドスイーパー位)
や、時計、テキストエディタなどをプログラミングできるようになり
たいのですが、どんな風に勉強すればよいのでしょうか?
そもそも、フローチャートって、どんな風に発想すれば書けるように
なるのでしょう?
参照すべき本や、Webサイトなどありましたら教えて下さい。
本は、出版社と著者名も教えて下さい。
教えて君で済みません。
>>943
本題と関係ないが、
> フローチャートって、どんな風に発想すれば書けるように
いまどきフローチャートを書いてるヤツはいないから、忘れて良いよ。
945 :02/02/23 19:55
>943
有り難う御座います。
フローチャートを書かずにプログラムをコーディングするって、どうや
るのでしょう? そもそも、プログラムをどうやって設計するのでしょ
うか。
946スカンク:02/02/23 20:04
ブラシの削除の話だけど

HDC hDC;
HBRUSH hBrush;

hDC = GetDC(hWnd);
hBrush = CreateSolidBrush(123);
SelectObject(hDC, hBurush);
使い終わる
ReleaseDC(hWnd, hDC);
DeleteObject(hBrush);

これじゃだめだ。
最後は

SelectObject(hDC, hBrushOld);
DeleteObject(hBrush);
ReleaseDC(hWnd, hDC);

とするべき。

なんて言う奴がいたけど、それを言った本人も
理由ははっきり分かってないらしい。
これって本当にだめなの?
>>943
Basic使うならVB、C使うならBorland C++Builderにしとき。
VC++ は、いきなりだと面倒。

あと、C#ってのもあるらしいけど、使ったことないからなんとも。
あれのGUI設計ってどうなの? 初心者向き? >識者殿
>>946
選択中のオブジェクトはDeleteObject()しても削除されない。
新規に作成したオブジェクトは一度外してから解放しなくちゃダメす。

HDC hDC;
HBRUSH hBrush;
HBRUSH hBrushOld;

hDC = GetDC(hWnd);
hBrush = CreateSolidBrush(123);
hBrushOld = SelectObject(hDC, hBurush);   // 元々のBrushObjectを保存
(処理)
SelectObject(hDC, hBrushOld);          // 元に戻す
DeleteObject(hBrush);                // 新規に作成したObjectを削除
ReleaseDC(hWnd, hDC);
DeleteObject(hBrush);
>>947
C++Builderと似たようなものと思っていい
>>945
UMLとかを使うんだと思いますけど...
951スカンク:02/02/23 21:09
>>948
ありがとうごさいます。だめなんですか。
ReleaseDC(hWnd, hDC);
↑を実行してもhBrushが何かに選択されていて
hBrushは削除できない常態にあるということですか?
952名無しさん@お腹いっぱい:02/02/23 21:41
>>923の者ですが
コンパイラってなんですか?
リアル厨房ですいません。
>>946 これもいーかげんFAQだろー

MSDN SelectObject APIの解説より引用
>この関数は、指定されたのと同じタイプで、それまで選択されていたオブジェクトを返します。アプリケーションは新しいオブジェクトを使い終えたら、必ず元の(既定)オブジェクトに置き換えるべきです。
954デフォルトの名無しさん:02/02/23 21:50
WNDCLASS.lpfnWndProcには普通WndProcが入りますが、
他の関数(例えばWndProc2)にしてもいいのでしょうか?
955954:02/02/23 21:54
解決しました。
956非通知さん:02/02/23 21:54
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

【祭り】迷惑メール送信業者が2ちゃんねらーに宣戦布告!!【生意気】

http://www.aitaiyo.com:81/を一斉訪問します!!

詳しくは↓

【祭】迷惑メール撲滅活動推進委員会発足【祭】
http://cheese.2ch.net/test/read.cgi/phs/1013258545/l50
957スカンク:02/02/23 21:57
>>953
ありがとうございます。
でもわかりません。953さんの意見では、
だめなの?それともあれでいいの?
>>957
俺の意見も何も、APIの説明に
「必ず元の(既定)オブジェクトに置き換えるべきです」
って書いてあるんだから、従うべきだろ?
959スカンク:02/02/23 23:22
みんなそういう答えなんだよな。
不具合発生の具体的な理由はないけど、規定に反するって程度かな。
>>945
小さいプログラムから書いていけば段々わかるようになっていくよ。

>>965
次スレよろしく
961デフォルトの名無しさん:02/02/24 00:10
これどうよ。B Programming Language だそうな。
ウオッチしない?
http://b-prog-lang.sourceforge.net/
962デフォルトの名無しさん:02/02/24 00:12
JavaScriptの質問スレはどこですか?
そろそろ次のスレおったないと。
よろしく>>966
>>959
果てしなくプログラマに向かなそうな人だなキミは。

SelectObjectされっぱなしのオブジェクトはDeleteObjectできない以上、
>>946の前者のじゃリソースリークが起きる。あと、hWndが共通DCを使う
ウインドウだったら、何か他の部分を描画するときに変なブラシのまま
描画されるかもしれない。それを不具合と思わないならそれでもいいけどね。

# ReleaseDC はDCを「手放す」だけで、破棄するわけじゃないから
# Selectされた状態が続くことに変わりはない。
# CreateDC => SelectObject => DeleteDC だとどうなるのかは知らんが…。
965958:02/02/24 00:30
>>959
っていうかね、今現在は>>946の前者で書いても問題ないかもしれないが、
突然内部実装が変わってそれじゃまずくなっても文句言えないわけ。
少なくともドキュメントに書いてあることに従っておけば、間違いはないということ。

BOOL型を返す関数で失敗時は0、成功時は0以外を返すと書いてあるのに、
if (func() == TRUE) {...}って書いちゃってるようなもの。
966958:02/02/24 00:34
>>964
たしか、DeleteDCされたデバイスコンテキストに
SelectObjectされていたオブジェクトは
自動で解除されたはずなんだけどね。

>ReleaseDC(hWnd, hDC);
>DeleteObject(hBrush);
このDeleteObject()の戻り値を確認すれば分かると思う。

もちろん、うまくいっても正しいやり方じゃないけど。
967958:02/02/24 00:36
***すれ立てるまでもない質問はここで 第11刷***
http://pc.2ch.net/test/read.cgi/tech/1014478527/

立てた
968958:02/02/24 00:37
s/立てた/建てた/
しかし、何で「すれ」ひらがななんだ?
「すれたてる」という一語の動詞なのかもしれない…(w
970948:02/02/24 00:47
>951
選択中のObjectはDeleteObjectで破棄されないので、964氏の言うとおり
メモリリークが起きる。規定とかでは無く。
ところで、948のソースだけど一番下のDeletObjectは余計ですわ。
(946からコピペしたら重複してしまった…)


>965
BOOL型を返す関数で if(func()==TRUE) と書いた場合、失敗時は0、成功時は0以外という
仕様が変更されても問題無い…ではないの? 一連の話とは逸れてしまうけど。
「すたれてる」に見えた
>>970
if(func() == TRUE)は問題ある例。
0以外であって、TRUEが帰る保証はまったくないから。

用はドキュメントに記載されてないことはやるなってこと。
「0以外」に適合する値が「TRUE」に定義されるんだと思ってたよ。

つまり、BOOL型を返す関数が失敗が2以外、成功が2のように(現在と全く違うように)定義されたときは
FALSEには2以外の数値、TRUEには2が定義されるという関係が成り立つのかなって。
if文とかの論理値の話をしてるんじゃないよね。
>>973
ドキュメントと関数仕様の話をしていた。
分かりにくい例でスマソ

Cプログラミング診断質だかどこかにこの辺の詳しい話あったと思う。
975 :02/02/24 07:16
>>950
UMLって何ですか?
976デフォルトの名無しさん:02/02/24 08:57
1ステップって1行のこと?
空行とコメント行を除いた1行
978 :02/02/24 16:06
Visual Basicの勉強のために、色々なプログラムのソースコードを見たいのです
が、どこかに転がっていないでしょうか?
URLを教えていただけたら幸いです。私もネットで検索したのですが、あまり
見つからなかったもので。
>978
転がってるってのはまた無礼な言い回しだな。
ソースが勝手に地面から生えてくるとでも思ってんのか?
>>980
MSのサイトには"転がってる"からいいんじゃない?
>>981
あのコードだって、生身のプログラマが頑張って書いてるんだが…。
>>982
そらそうだが。
984886:02/02/25 09:57
>899

その通りです。
889さんどうもありがとうございました。その式をみて理解できました。
本人が転がしたままほっといたソースもあると思うが、、、
確かに他人に言われるとあれだな。
つーか俺のサイト2年以上ほったらかし、、、
どこどこに「落ちている」「落としてきた」と言うのと変わらんな
987デフォルトの名無しさん:02/02/25 20:56
fatal error C1107: アセンブリ 'System.WinForms.dll' がみつかりませ
んでした : /AI または LIBPATH 環境変数を使用してアセンブリ検索パスを指定してくだ
さい。

と言うエラーが出るのですが、アセンブリ検索パスなるものが理解できません。
これは如何なる物なのでしょうか??
厨房な質問してすみません。
988デフォルトの名無しさん:02/02/25 22:19
perlでcgiを作るための解説をしているwebサイトを探しています。
ここはいいよ。っていうお勧めのトコロを教えてください。
因みに、自分の環境はwin98です。
あとperlは1週間前から始めました。
回答よろしくおねがいします。
990スーパーゼウス:02/02/25 22:27
DBHってなに?あとプロトコルは?
教えて下さい。
次スレへどうぞ。

***すれ立てるまでもない質問はここで 第11刷***
http://pc.2ch.net/test/read.cgi/tech/1014478527/