【入門後】C言語WINアプリまでの道のり
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGしかし次の段階に移るために何をしたらいいのか分からないのです。
書籍の紹介であってもかまいません。
GUI開発の糸口を見つけたいので、お力を貸していただけたら幸いです。
環境は
WINXP VC++6.0です。
よろしくおねがいします。
0002最凶VB厨房
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGhttp://www.kumei.ne.jp/c_lang/index.html
0005デフォルトの名無しさん
NGNGBCBを買う
0006manko_chinko ◆btr76hqMa6
NGNG道は一つ。SDKだ。
0007デフォルトの名無しさん
NGNGIntelのCを買え。
0008デフォルトの名無しさん
NGNGと、言うのは半分冗談で、まず、dllの使い方を覚える事だな。
そうすれば、公開されているdllが使えるようになるから自分のアプリに組み込む事が出来る。
で、つぎにいよいよ窓を表示ね。この表示の仕方はまぁ、あれだ、SDKでもMFCでも好きな方といいたいが
俺はMFCの方がいいと思う。なぜかというと・・・・楽。本当に楽。
「その意見、まった〜」と声が聞こえてきそうだが、そうMFCを勉強するにはC++の知識が必要なのだ。
でも、尻込みすることなど無い。ない、ない。ないのだ。クラスの継承と仮想関数の概念あたりちょちょいと勉強すれば
ある程度は使えるようになるから。安心。
で、書籍の選び方なのだがそれぞれの関連スレの>>2〜5あたりに紹介されているから
それらを参考にするのがいいかも。では、健闘を祈る。
と、マジレスしてみたり。暇なんだなこれが。
0009デフォルトの名無しさん
NGNG貴女がSDKとかMFCとかマスターする頃には次期Windowsが出ていて
Win32APIやMFCなんか時代遅れになってしまっている。
C#の勉強を開始した方が良い。
VC#があればいきなりGUIに取り掛かれる。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGマジレスすると、
WinFX⊃.NET
なので無問題。
0012デフォルトの名無しさん
NGNGそもそも次期Windowsが出た≠皆がそれを使う だよ。
次期Windowsが出て(2005年以降)から.NETがデファクトスタンダードに
なるまでどのぐらいかかると思う?しかもWindows自体2000→XPと来て
だいぶ枯れてきてるから、安定性を根拠に次期Windowsを求める
人は少ないぞ?
以上の理由から今.NETを始めるのはちょっと次期が早いと思われ。
そもそも作ったプログラムを別のPCで(クライアントサイドで)動かすときに
巨大なランタイムが必要になる時点で*論外*。
そして>>1は別にサーバーサイドアプリケーションを作ろうとしているわけ
じゃないでしょ?
.NETやWinFXはJavaに対抗するために開発されたFrameworkですよ?
その辺を勘違いしてないですか?
0013デフォルトの名無しさん
NGNGVC7が有る今でも、VC6を使う人は多い。
professional以上ならMFCでもSDKでもいいけど、
そうでないなら、SDKが良いと思う。
0014デフォルトの名無しさん
NGNG10年前に同じことを聞いた気が。
.NETとWin32sが重なるな。
0015デフォルトの名無しさん
NGNGAPIが変わるわけじゃあるまい?
001612
NGNG0017デフォルトの名無しさん
NGNGまず一点、仕事ですぐに実戦投入するなら>>12には同意します。
以下は趣味で少しずつ勉強していくということを前提にしたことです。
すぐに広く使われるアプリを作成して配布できるわけもないので
ランタイムうんぬんはあまり関係ないでしょう。
> APIが変わるわけじゃあるまい?
MFCを覚える前にWin32を勉強するべきということであれば
基礎概念は一緒だし(というかMFCは単なるラッパー)同意しますけど、
それと同列にWinFXを持ってくるのは同意しかねます。
.NETでRADで組んでいくのとWin32で地道に組んでいくのとでは
概念が違うのでWin32を省略しても問題ありません。
もちろん今の.NETはWin32の不完全なラッパーなので
ちょっと凝ったことをしようとするとWin32をバンバン使いますし、
そうなるとWin32の知識は必須になってきますが、
WinFXはOSの全機能を網羅したものなのでWin32をパスしても無問題です。
今後もずっとWin32アプリは動くので無問題という意味でしたら、
今でもDOSアプリやWin16アプリが動くというのと同じことですね。
Cの初歩がようやく済んでこれからGUIというのに、
わざわざ将来性のない非RADで頑張るのは徒労でしょう。
まあ、本人が好き好んでやりたいなら止めませんが……。
0018デフォルトの名無しさん
NGNG業務用には向いていません。
趣味として少しだけプログラミングする時や、サーバサイド
なら.NETもいいでしょう。
0019デフォルトの名無しさん
NGNG異論は無い。が、
16→32bitの変化は劇的だったけど、
32→64bitの恩恵は今ひとつ実感が無い。
32bitにこだわる理由も無いけどね。
0020デフォルトの名無しさん
NGNG>.NETは遅いし、逆コンパイルも簡単に出来てしまうので
>業務用には向いていません。
逆コンパイル防止は簡単に対策が出来る。(VS.NET付属Dotfuscator)
遅くて業務用に向いてないのはどうしようもないから、
現段階で業務用に使う酔狂がいないのは同意。
Office 2003でも結局.NETじゃなかったくらいだからね。
もっとも次期Officeは完全WinFXになって2000/XP切り捨てで、
そういう時代になったら結局右に倣うしかなくなるよ。
マシン環境もIA64やx86-64が中心になるから、
32bitネイティブよりJITが利くマネージドの方が速くて単一バイナリで済む。
今すぐ業務で何かするなら関係ない話だけど。
0021デフォルトの名無しさん
NGNG当時の変化は劇的だったかなー。
Windowsも3.1だったし、16bitCPUの286の方が高速だったし、
少なくともPC分野では登場当時は劇的だったとは言えないと思うな。
0022デフォルトの名無しさん
NGNGいや、そういう意味じゃなくて、プログラミングの視点からの話。
セグメントに煩わされずに32bitのメモリ空間が……とかそういうの。
00231
NGNGそのため、認識に過ちがあるかもしれないのですけれども。
いままでのレスを読ませていただくと、
次期のWINDOWSで新しいAPIのWinFXが登場するため、今のWin32が時代遅れになる事がわかりました。
ですが、現在の状況から2005年以降になると思われる次期Windowsの登場、
普及まで時間を考えると、現行のWin32で開発を行いたいと思うわけです。
学生の身であり、業務などで急を要するわけではありませんが、今の環境でできることをしたいと思っています。
確かにWinFXではまったく変わってしまうようですが、この経験がまったく無駄になるということもないでしょう。
いままでのレスでも、いろいろためになりました。
この付け焼刃の知識にも色々とご指摘をいただけると嬉しいです。
0024デフォルトの名無しさん
NGNG16bit時代でも32bitへのニーズは強かったよ。
0025デフォルトの名無しさん
NGNG理解は完璧。誤解はまったくないから安心して。
0026デフォルトの名無しさん
NGNG002725
NGNGまずはWin32APIを覚えよう。
導入だけ教えるから後は頑張って。
1. VC++を起動
2. ファイル→新規作成
3. Win32 Application
4. 適当なプロジェクト名を付けて[OK]
5. 単純なWin32アプリケーション
6. [終了]
7. [OK]
これでプロジェクトの雛形が作成される。
"プロジェクト名.cpp"というファイルを開く。
0028デフォルトの名無しさん
NGNGC覚えたての人がWin32APIを自由に使えるようになるまでには
最低でも1年くらいはかかるから念を押したほうが親切ではある。
002925
NGNGまずはここを見てみよう。
http://www.kumei.ne.jp/c_lang/sdk/sdk_00.htm
さっき開いたcppファイルの内容を全部消して
上のページに書いてあるコードをコピペする。
[F5]でビルド・ランしてみよう。
このページはVC++4の時代のものなので内容が古くエラーが出るので直す。
0030デフォルトの名無しさん
NGNGソースの最初にある
#include <windows.h>
を消して次のように書き換える。
#include "StdAfx.h"
プリコンパイル済みヘッダーというのはコンパイルを速くするための仕組み。
今はあまり深く追求しなくて良いが、後々MFCを使うようになると重要になるので、
とりあえず今のところはおまじないみたいなものだと考えておけば良い。
※今の段階で調べると余計にこんがらがるだけだから。
003125
NGNGこれで[F5]でビルド・ランしようとするとまたエラーが出る。
エラー> 'void*' から非 'void' 型への変換には明示的なキャストが必要です。
このエラーメッセージのファイル名と行番号が書いてある部分をダブルクリックすると
エラーが発生している行に飛ぶので、そこを次のように修正する。
myProg.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
※つまり(HBRUSH)を挿入するってこと。
これで[F5]をすれば無事コンパイルが済んで白いウィンドウが出てくる。
今回打ち込んだプログラムはウィンドウを出すだけのものだからこれでOK。
003225
NGNGキャストのエラーは毎回出るから対処法のパターンだけ教えておく。
エラー> 'void *' から 'struct HBRUSH__ *' に変換することはできません。
HBRUSHという部分に注目する。
キャストエラーだから(HBRUSH)を追加すると直るわけ。
HBRUSH__の__は何かとかは今は気にしないこと。
エラーについて詳しいことは↓を参照。
http://www.kumei.ne.jp/c_lang/setvc.htm
あと16ビットがどうたらこうたらという説明は全部無視してOK。
Win16なんてWindows 3.1の時代の遺物。
ただWin32API自体がWinFXによってWin16と同じ道を辿るのは覚悟すること。
プログラムの作り方もここでやるようなものとはまったく違うのでほぼ完全に覚えなおし。
それがどんなものかに興味があればC#をいじってみれば良い。
とりあえずそんな感じで続けて、分からないことは↓のスレで聞くこと。
http://pc2.2ch.net/test/read.cgi/tech/1069339866/
じゃ、頑張って。
00331
NGNGありがとうございます。
無知さゆえにWinFXのことを知ったのも初めてでショックは受けましたが、
得られるものはあったと思うので良かったです。
何事にも疑問を追っていく姿勢は大事ですね。
003425
NGNGおめでとう。
このやり方だとボタン1つ出すのも大変だけど勉強にはなるので頑張れ。
単にGUIのアプリを作るだけならWinFXを待たなくても
今だってVC#を買って使ってみればびっくりするくらい簡単。
※VC#で使う.NET FrameworkというのはWinFXの前座みたいなもの。
くじけそうになったら気分転換にいじってみると良いよ。
ちょっとしたものを作るだけなら能率が10倍以上違うから。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGたいへんお世話になりました。
0038デフォルトの名無しさん
NGNG窓板逝け
0039デフォルトの名無しさん
NGNG>>1じゃないけど、>>25の人ありがとう。
0040デフォルトの名無しさん
NGNG次はwinアプリを作る為にMFCでもやってみようかと思ってるんだが。
0041デフォルトの名無しさん
NGNGMFCやる前にWin32APIをやっとけ。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGよってage
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNGどこからてをつければいいかわからず、無駄なことで時間かかるよ。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGたぶん、Javaやってると思う。
0052デフォルトの名無しさん
NGNGまじで何から手つけたらいいか全く分からないです。
>>25の読んでも(*´Д`)ハァ?って感じです…。
0053デフォルトの名無しさん
NGNGhttp://www.kumei.ne.jp/c_lang/
VC++でやるSDKのInternet Archiveに保存されてるやつ
ところどころ画像でない
http://web.archive.org/web/20010515015440/http://kerochan.no-ip.com/vcsdk/
0054デフォルトの名無しさん
NGNG猫の方はさっぱり理解できませんでした('A`)
下のリンク先読んで見ます。
■ このスレッドは過去ログ倉庫に格納されています