952 :
949 :2010/08/20(金) 22:41:58
いや、ネタでこんな長文書きません。誤解があったらすいません。 ただ、PC-9821上のWin95/Win98(SE)/WinNT4で共通して動く コードを書きたいのです。当時のアプリで優秀なものが結構ありながら、 しかしソースコードが公開されていないために、 「なら自分で組んでやるぜ」と思った次第です。 DirectXの描画に関しては、基本的にはver. 6.1を基準にしていきたいです。 普段のデバッグは、自作のPhenom II x4 955BE (C2)/4GB DDR3/500GB+1TB SATA/ GA-MA785GT-UD3H/WinXP SP3のほうで同じコンパイラでやってます。 新しすぎる参考書(2001年以降くらい〜)とか、コンパイラだと、 そっちプロパーの解説になっちゃうので(猫本とかはどうなんでしょうか?)。勝手ですいません。 VC++ 2005 EE?が無償で使えるのは耳にしたことがあります。でも、とりあえず 手持ちのVC++ 4.0やBorland C++ 4.52時代のもので完結できたらいいな、と思ってます。 PC-9821で動かすのがポイントです。でなきゃ、Windows Programmingはやってなかったと思います。
953 :
949 :2010/08/20(金) 22:44:35
連投すいません。今まではPC-9801でx86アセンブラ、OpenWatcom C + FASMで 自作描画ライブラリを作ったり、サウンドやEMSメモリをいじったりしてました。
>ただ、PC-9821上のWin95/Win98(SE)/WinNT4で共通して動く >コードを書きたいのです。当時のアプリで優秀なものが結構ありながら、 >しかしソースコードが公開されていないために、 嘘を書くな しかも何でいまさらWin9x/NT4なんだ
>「なら自分で組んでやるぜ」と思った次第です。 でも static の意味は判りません(キリ
おちょくるなアホ
static → private extern → public
958 :
949 :2010/08/20(金) 23:35:29
Win32APIの質問だったら、ここしかないと思って質問したんですが、 なんで釣りとか嘘を書いてるとか、云われるんでしょうか…? 当時優秀だったフリーウェアで、ソースコード非公開のものは結構ありますよ。 それを自分である程度再現して、たとえばGPLv2とかBSDライセンスで公開したいというのは、 あるでしょうが。 それに、いまさらもなにも、Win95〜NT4〜W2k〜XPまで、すくなくとも 共通したコードで書けるわけで、プラットフォームの差異を異端視する必要は ないと思います。PC-9821後期モデルであれ、古いFMVノートであれ、同じでしょう。 staticの意味は分かりますが、世のWin32APIの解説サイトや参考書で、 staticを付けているコードがほとんど無いし、WndProc関数にしても、 long FAR PASCAL _export WndProcとしているのはあまり見ません。 そこに何か意味・論理上の差はあるのか?とお聞きした次第です。 でも、どうも嫌われてしまったみたいなので、すみません。
あまりレガシー環境にこだわってる人見るとアホに見えてくるんで おちょくりたくなって来るんですよ これは俺の意見じゃなく、からかってる人達の意見な
>それに、いまさらもなにも、Win95〜NT4〜W2k〜XPまで、すくなくとも >共通したコードで書けるわけで、プラットフォームの差異を異端視する必要は だから嘘を書くなってw
他人をおちょくるためなら平気で長文書くし自虐や自演を使うオナニー変態がいる コレ豆知識な
FARなんて、16bit時代の遺物 PASCAL規約なんて、3.1以前の遺物 _exportは知らん
>>949 世代をまず伺いたい。(A:10代 B:20代 C:30代 D:40代 E:それ以上)
PC-9821はどうやって入手したの?(A:昔買ったのをずっと使ってる
B:中古 )
BCC+4.0はいつ買ったの
とか
>>961 つまりおちょくってるのは949で959はその自演と
俺はちげーよw
とりあえず、 long FAR PASCAL _export WindowProc(HWND, unsigned, UINT, LONG); は LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM); の方が良いだろう。
967 :
949 :2010/08/21(土) 00:32:27
>>962 ありがとうございます。FARとかは不必要なんですね。素直にWINAPIでやると。
OpenWatcomに付属のサンプルコードは、Win32/Win16両方で走るように、
プロジェクトと#ifdefで分かれてて、かつその差異を吸収するwin1632.hという
インクルードファイルがあったりします。普通の入門書どおりで差し支えない、と。
世代は20代後半、PC-9821は中古購入です。PC-9801でC + アセンブラをやってましたが、
一段落した(多少の描画機能の実装とか、各種ROMの吸出し、FDイメージ化とか)ので、
目先を変えてWin32プログラミングでもしてみようかなと思って。
NetBSDでのGtk2がGUIプログラミングとしては初めて。
昔部活でPC-9801VXでN88 DISK-BASIC(86)をやっていた、ギリギリの世代です。
Borland C++ 4.52はebayで先月輸入しました。OpenWatcom v1.9と比較するためです。
TASM 4.0もebayで買ったな。
>>966 ありがとうございます。やはりCALLBACKがよさそうですね。OpenWatcom付属のソースは、
かなり後方互換性を重視している感じなので(DOS/Win3.1/Win32対応コンパイラ)、記述をわざと
古めにしてるのかもしれません。IDEも古めかしい感じですし。
ちょうどアレですかね、昔のCコンパイラでint main(void){を受け付けるのに、
80年代の参考書はmain(){ で解説しているとか、そういうノリですかね。
♪君の行く道は♪ ♪果てしない悪路♪ ♪やがてきっと♪ ♪泥沼にはまり♪ ♪そこを抜け出し♪ ♪老いたプログラマ♪
OSの新旧はともかく、その当時のWin32のコードはたいていVC++4〜6がベースになっている。 なのでOpenWatcomのソースでstaticがついているというのは、その処理系独特の作法ともいえる。 今の環境でその優秀なプログラムとやらを勉強したいのなら、Win32APIだけじゃなくて処理系別の特性の違いも覚えていく必要がある。 ある処理系では必要な宣言でも別の処理系で不必要で、間違って記述したために動作しないという可能性も当然あるからな。 まあ遠回りすることを咎めたりはしないが。 _exportというのはたぶんVC++の__declspec(dllexport)のことじゃないかな
もうひとつ気になったが、
>>ちょうどアレですかね、昔のCコンパイラでint main(void){を受け付けるのに、
>>80 年代の参考書はmain(){ で解説しているとか、そういうノリですかね。
これはノリとかではなくCの規格でどっちの記法も許されている。
ちなみにC++では後者の書き方は不可。
古い参考書を使う場合、今の規格では非推奨となっているような記述も当然あると思うので
そういったC/C++規格やAPI仕様の変遷も全部勉強すべし。
むしろ古い規格のコンパイラなんだから新しいものに合わせる必要ないんじゃあ…
Delphiの出番だな
973 :
デフォルトの名無しさん :2010/08/21(土) 02:01:59
夏だな
>>967 >世代は20代後半、PC-9821は中古購入です。PC-9801でC + アセンブラをやってましたが、
これが嘘じゃないなら病院へ逝った方が良い
冗談抜きで
たしかに正気を疑う。 40代後半なら話はわかるが・・・いや今更PC-9821ってさっぱりわかんね。 昔のPC板いった方がいいだろ。
>>969 _exportもWin16の遺物
Win32ではWndProcなどのアプリケーションが用意するコールバック関数に
付ける必要はなくなった
つーかstaticの意味が分からないというのはWin32 API以前の問題だってことが
わからないならC言語入門のスレから出なおせとしか
> VC++ 2005 EE ではWin95で動くバイナリは作れない
95にWin32s入れれば動くんじゃないかな。 試したこともないけど。Win32sとか懐かしい。
ごめん適当なこと書いたわ、32sはWin3.1用だた
>>949 無い。
C++でprotected/privateにするような感じで、
static修飾した方が美しいから、そうしているだけ。
64bitで書け
次スレの季節
まだ慌てる時間じゃない
986 :
949 :2010/08/21(土) 18:41:44
>>980 ありがとうございます。やっぱりstaticをつけたほうが、コード的には
美しいものになるんですね!
僕はカーニハン先生とパイク先生の「プログラミング作法」や、
藤原氏の「Cプログラミング診断室」を熟読していまして、きれいで洗練されたコードを
目指しています。だから、staticをつけるほうがイイ!のであれば、できるだけ
それに準じたかったのです。あまりにも無意味であれば、その限りではなかったんです。
>>974 いやホント、5インチフロッピーを部室で渡された、最後の世代ですよ。
今部屋にあるVX、UV、DA、それに当時手の届かなかったA-Matehがあるのは壮観だなぁ。
だからさっさと病院逝けよ
staticの意味とかwin32api関係ないじゃん Cの入門書くらい読んでからプログラム板に書き込めよ
989 :
949 :2010/08/21(土) 19:04:10
いえ、staticの意味くらい分かります。そうではなくて、ほとんどの入門書・サイトで 初期化関数や実体化関数の宣言でstatic BOOLとしていないし、 static char szAppNameとかしていないので、疑問に思ったんです。 でも、美しいコードを目指します。
きれいかどうかではなく、必要かどうかで考えるべき
staticの意味分かってて疑問に思うなら向いてない
なんでもかんでも明示的にしたら最適化が効かなくなるんじゃね?
そういう問題じゃないだろ
WM_ENDSESSIONでファイルに書き出すのが駄目って本当?
やってみりゃいいよ
やったけど問題なく動く。でも終了間際に書き込むのはなんちゃらって見た
staticの意味がわかるのに 必要かどうか分からないとかきれいかどうかで決めるとかマジで病院行け
999gets
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。