TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
ギコ猫のソース探検
自分の情報整理スタイルを晒そうよ 4
FreeBSDを語れ Part38
Viと仲良くする方法
30年後のUNIX板
OpenBSDで日本語環境設定
goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
最低のウインドウマネージャー
PPPoE (PPP over Ethernet) スレッド
翻訳者の集い

UNIXプログラマの為のWindows入門


1 :02/03/06 〜 最終レス :2018/05/22
いつも、Solaris,HP-UX,FreeBSD等でプログラムを作っています。
最近、業務上、どうしてもWindows上でのプログラムを作らなくては
いけない状況になりつつあります。
UNIXに慣れてしまったこの体、なんでいまさらWindowsって感じですが、
ここは一発、頑張りましょう。
って事で、UNIXプログラマの為の、Windowsプログラミングの手引き
のようなスレです。
UNIXの良き伝統に則り、みんなで知識を共有しませんか?


2 :
>>1
プログラム板
http://pc.2ch.sc/tech/
へGO

3 :
あくまでUNIX文化圏の発想を持ったままWindowsプログラミングを探検
するならいいネタじゃない?

とりあえず漏れのWindows体験。仕事上VBでプログラム作らなきゃいけ
なくなってCOMを触ってたんだけど、Collectionオブジェクトの実体が
さっぱり分からず気持悪い思いをした。ヘルプ見ても非プログラマ向け
の説明をタライ回しで読まされるだけだった。

IDLかC++のヘッダが見てえ! でも必死でGoogleしても見つからねえ!
こんな時UNIXなら「分からない事はソースに聞け」で解決なのに!
って感じで地獄でした。陸に上がった魚の気分。

何を探せばよかったですか?

4 :
MSDNだな

5 :
WindowsっていうOSの根本思想というか、設計思想、アーキテクチャって
なんなんでしょう?
UNIXって、とりあえず、ファイル。
何をするにも、ファイル、ioctl ってイメージがあるんだけど。


6 :
あと、なんであんなにプログラム作るのが複雑なんだろう。
Visualなツール使ってみんなプログラム作ってるけど、
Visualなツールが自動的にやってることって、みんな理解してるのかな?
わたし、サパリわからないです。


7 :
それって、VBのことですか?

8 :
>5
MS Winつまりマイクロソフトが儲かる為のOS

9 :
VBに至っては、何がどうなってるのかサパリわからんです。
大体、main はどこ?って感じです。
VCだと、最初にプロジェクトを選択するじゃないですか。
んでもって、なんちゃらーってプロジェクトを選ぶと、テンプレート
が作成されますよね。
なんじゃコリャって感じなんです。


10 :
winの統合開発環境は良いよなあ。。
KdeveloperやKylixのおもちゃみたいな出来をなんとかしろ

11 :
>>8
それは確かに正論です。
でも、これからWindowsを無視しては食っていけないと、危機感をもっています。
といっても、身についたUNIX的考えかたって、悪くはないと思うんです。
いかにして、発想の転換を行えばいいのか。(UNIX->Windows)
これが、問題です。(私にとってはね。)

12 :
Delphiが良いですよ。わかりやすくて。
MSの余計で汚い部分はuses節で見えませんし、Visualとの関連もわかりやすいです。
linuxに逆に移植できるし。


13 :
>10
私も、あの統合環境は良く出来てると思います。
その反面、あの環境でないとプログラムを作れない自分にいらだちます。

14 :
>>5
とりあえず「何でもオブジェクト(コンポーネント)」じゃないかな。オ
ブジェクト指向マンセ-の漏れとしては、その点はうらやましい。この辺の
事情は「Rubyを256倍使うための本 邪道編」が参考になる。

15 :
Windowsのプログラミングの肝って、Win32APIじゃないんでしょうか?
いわゆる、UNIXでいうシステムコール。
まず、システムコールを通して、OSの作りや、動作を理解していく。
それが出来て初めて、そのOSに合ったプログラムが作れる。
と思っているのですが。

16 :
>>15
今のWindowsはWin32 APIを包み隠す方向に進んでるように見える(外か
らは)。.NET時代には邪魔な存在だろうし、オブジェクト指向の世界と
馴染まないよね。>Win32 API

17 :
Visualのほうは、オブジェクトがWin32APIに包まれて隠れているので気にしなくても良いのでは?
必要なときだけ呼び出せば作れる。
問題なのはMSのバグがオブジェクトに隠れているのできちんと動いてくれないことが多いところ。

18 :
>14
MFCとかの本を読んでると、なんとなくオブジェクトのイメージが
沸いてくるのですが、Win32APIの本を読んでるとオブジェクト指向的な
考えが全く感じられません。
私って、逝ってよし?

19 :
(正)Win32APIがオブジェクトに包まれて隠れているので

20 :
>>18
単純に、先に存在していた古くて汚いWin32 APIを後の時代にオブジェ
クトの皮で隠蔽しただけだと思うよ。だからMSはWin32 APIを消したい
と思ってると思うんだけど。個人的に。

21 :
とりあえず、.NETを用意してくれたんだから、
Win32APIやMFCのことは忘れようぜ。
そんなもんこれからやるのは馬鹿らしい。
まぁ適当に関わっていくならいいかもしれないけどね。

22 :
>17
そこなんですよ。
現在のUNIXって、統一的なオブジェクト指向なIFってないですよね。
(いわゆるクラスライブラリっていうのかな。)
OSへのIFがクラスの中に閉じ込められてるのが許せないってのがそもそもの間違い
なのかな?

23 :
>>22
> OSへのIFがクラスの中に閉じ込められてる
これどういう意味? ちとわかんない。

24 :
>>23
ああごめん、Win32 APIがMFCに閉じ込められてるって事か。その上の文
のUNIXの話の続きだと思った。

25 :
今後のMSの方針を考えると、Win32APIを直接使うプログラムは、
推奨しないということになっていくのでしょうか?

26 :
そこら辺は諦めましょう。慣れだと思います。たかがWINDOWSなんですから。
私みたいなやつが多いから、こんな糞OSをみんな使わざるをえないのはしゃくですが

27 :
>>21
まだ、Windowsのプログラムを作り始めて数ヶ月です。
不勉強で申し訳ないのですが、.NETってなんですか?
もちろん、言葉は聞いたことがあるのですが、イメージが
全くつかめません。
イメージだけで結構です。教えていただけませんか?


28 :
では、「UNIXプログラマが新しめのオブジェクト指向環境でWindowsプ
ログラミングする話」にしちゃってOK?

29 :
>>27
ごくおおざっぱにいえばJavaのMicrosoftふう実装

30 :
>>28
OKです。
UNIXプログラマがWindowsでプログラムを作らざるをえなくなったとき、
どういう風に今までの考え方を変化させていかなければいけないか、
という部分について議論できれば最高です。

31 :
>>29
Javaというと、
プラットフォームに依存しない。
というイメージが一番強いのですが...


32 :
>>31
いちおう他プラットフォームへの移植も
検討されてますが何か?

33 :
でも仕様を決めるのはMicrosoft だよな。当然ながら。



34 :
>>30
んじゃ遠慮なく。

まず変わらざるをえないのが情報の探し方だよね。

UNIXの場合はソースという一次情報源があって、正確な情報が知りたけ
ればソースを読むって手が使える。楽に済ませる場合はドキュメントや
MLの情報をあさるけど、真実が知りたきゃソースを読むしかない。後は
信憑性と時間コストのトレードオフでどの情報源を使うか決めるだけ。

でもWindowsプログラミングでは大抵のソースは読めない。MSのドキュ
メントや一般開発者のメモ等の二次情報をあさったり、ブラックボック
スをいじり回す事になる。

UNIXのソースに相当するような信頼性の高い情報はどうやって得たらい
いのか? ってのが俺の課題かな。

35 :
かーごめかごめ かーごのなーかのとーりーはー いーついーつーでーやーるー

STABLEじゃないと思うぞ.NET
しかもOPENSOURCEでも、「常識ですね」でもない世界。
あの環境の呪縛から逃げるには、やっぱWin32APIしかないと思うのだが。


36 :
>>35
もう無理だよ。やるっていってるんだから
普及させるんだろ。それにそれほど悪いものでも
ないと思うんだが。

37 :
>>36
う〜ん だってあれってj2ee+CORBAでもなんとかなっちゃいそうなんだもん
MSの通信系ってDOSの頃から信用してねーもん

38 :
>>34
MSにお布施しまくって常に最新のMSDNとかMSJとかを読みまくる。
位しかないんじゃない?

俺なんかも含め、びんぼー人は
>MSのドキュメントや一般開発者のメモ等の二次情報をあさったり、ブラック
>ボックスをいじり回す事になる。
しかないと思うけど。

# だから中途半端な金持ちはMSまんせーになりがちなのかね

39 :
あ、最後の1行が意味不明だった。
まんせーっていうか質問しても「MSDN見ればいいんじゃないですか?」
しか言わないやなやろーが多い(と思う)ってことで。

まぁhelpはPlatform SDK落とせばいいだけだけど、MSJに載ってる
ような技術資料は会員にならないと見れないし。

40 :


41 :
>>34
Windowsプログラミングの場合、その2次情報が多いし。
いいんじゃない?

ソースが常にある環境は確かにうらやましいけど
最終的にソースに 頼る のはプログラマとしては
前時代的で長い目で見た場合の効率はよくないと思ってる。

だって、何のためのドキュメントなのよ。
man ls が信用ならないからってソースを見る人もいないしね。

42 :
>>41
ごめん・・・みてたm(_ _)m < lsのソース


43 :
>41
そのドキュメントが信頼置けんからな…
バージョンによる挙動の違いをMSDNからは読み取れないと思うけど?
# immとかwininetとか悲惨の一言。使う奴が馬鹿だって? そりゃないよ…


44 :
>>41
ls(とも限らないが)の結果の間違いが致命的なら、ソースを見ると思う。
>>34の言うとおり、トレードオフでしょ。

45 :
>>43
そうなると信用できそうなのはlibcとWin32APIくらいになっちまうのよな。
(ん?Windowsではlibcっていわずに標準Cライブラリって呼ばんといかんかったか)

46 :
>>42
あーおれも見たことあるや。すまん。
標準出力とリダイレクトの動作の違いがマニュアルから読み取れなくて・・・

47 :
だいたいUNIX系のはマニュアルがしょぼい。
「ボランティアで書いてんだからしょーがねーだろ」
「これで判らなかったらソース見ろバーカ」
っていう態度がありありと見てとれて、むかつく。

48 :
>>47
フリーのUnixの場合は、だよね?

49 :
>47
MSDNに金払ったところで、この内容で判るかボケって感じだよな。
結局動かしてみて挙動を追うしかない、ソースがあるとないとでは大違い。

50 :
MFC使ってみようと思ってMSDNのドキュメントとか読んだが、
結局わからなくてソースを読んだ。
マニュアルがあるに越したことはないが、
やはり最後はソースだと。

51 :
ソースがあっても、果たして理解できるんだろうか?
> Windows
だいたい、Win32APIって何種類ぐらいあるんだろ?
どんどん増えていってるのか?もしかして。

あと、INVALID_SOCKETはやめれ。
ソケットIFぐらい周りとあわせろ。

52 :
age

53 :
>>50
みんなcodeguruあたりから適当にコピペしてるんですよ。


54 :
>>51
構わず -1 使ってますが何か?

というか むしろ WSA 系の方を使ってほしいんでは。


55 :
http://www.zdnet.co.jp/news/0203/01/e_cheappc.html

56 :
「プログラミングWindows95」
http://www.amazon.co.jp/exec/obidos/ASIN/4756117171/qid=1017591056/sr=1-9/ref=sr_1_2_9/250-8988679-1953819

この本、大分前に買って埃かぶってるんですけど、今でも読む価値ある?

57 :
>>56
Win32プログラムの基本的な構造は今も変わっていないから
これから始めるのなら一読の価値あり。

58 :
56>>57 んじゃ勿体無いので読みます。しかし分厚いから読みにくいんだなこれが。

59 :
>>58
読んでおくべきなのは頭から1/3ぐらいまで。
後は必要に応じて拾い読み。

今の版は2分冊になっているから、読みにくかったらそっちを買えば
少しは薄くなって読みやすくなるんでない? (藁

60 :
> ソースがあっても、果たして理解できるんだろうか?
> > Windows

普通無理だな。
Windows向けのCのソース見てると混乱する。
お前どこからでてきたねん! って感じで。
UNIXでのプログラミングに比べて数段難しい。

多分GUIはWinの方が楽なんだろうけど。

61 :
>>54
-1 で、ちゃんと動いてる?
Winsock1.1使って、VC++でDLL作って、それを
VBから使ってたんです。
ずーっと動かしてるとだんだん重ーくなってくるんよ。
何回も、何回も、繋いで、切ってってやってるとね。
んで、-1 やめたら、なんか直ったみたい。



62 :
http://www.kumei.ne.jp/c_lang/
windowsSDKについては、ここかなぁ。

63 :
VC++の起動時のTipsで
「VC++はVC++で開発されました」
と書いてあったんだけど「だから何?」と思った

というか最初のVC++はMS-Cで書いたと思われた
あまりにもUNIXから離れたのでsage


64 :
>63
DelphiもObjective PascalだしJbuilderもJavaで開発されてますな。
あ、どっちも IDEだけだけど。

ほんとにどうでもいい話だが。


65 :
ところで皆さん、ハンガリー記法ってどうですか?
変数名のプレフィクスに i だの lp だのと型名をつけるやつ。

漏れは覚えたのがWindows→UNIXだったもんで、ついUNIXでも
ハンガリー記法で書いてしまうですよ・・・鬱。
でもって、他のソース読むときも「変数名にプレフィクスつけて
くれないかな」と思ってしまう始末。

すっかりシモニーたんに支配されてます。うぅ・・・

66 :
(´-`).。oO(きっとSoftware Designを読んだのだろう)

67 :
漏れは、最近Windowsプログラマーから、UNIXプログラマに転向した。
正直言って、カルチャーショックだね。
UNIXのシステムコールの少なさに唖然。
Win32APIなんか1000個くらいあるが、漏れほぼ全部わかる。でも人生の無駄だった。
ネットワーク系のプログラムや、サービス(デーモン)のプログラムなんか、Windowsはめちゃ難しくて手間がかかる。
そんなにUNIX詳しくないので、えらそーなことは言えんが、
システムコールやライブラリレベルで、Windowsが明らかに勝っているのは、
ACL, SAM, ファイルロックくらいかな。
それ以外は、UNIXマンセーだね。
WindowsでSTLなんて使おうとしたら、ブービートラップがいっぱい。
正直、WindowsでSTLは使いものにならない上に、意図的に隠されている。
MFCのCStringクラスや、CArrayクラスなんか、STLを覚えた今の頭で考えると、もう最悪。
今では、STLを隠されていたいたことに怒り爆裂だ。


68 :
>>67
スレッド周りもWin32の方が扱いやすいと思うなぁ。
mutex, semaphore, eventいずれも区別無しでWaitFor〜()で待ち合わせ
できるし。socket descriptorがハブにされてるのはアホだけど。

69 :
>>67
というかそれはWindowsの問題ではなくVC++の問題だと思う


70 :
>>69
STL云々って部分はね

しかしMFCのコンテナなんかは、わざと使いにくくしたとしか
思えないよなー

Win32APIのなかには概要を覚えたつもりでも恐ろしい罠が
待ち受けていたり、構造体がしこたま必要だったりするので....




71 :
>>68
Win32のスレッド周りは、APIとTLSとCランタイムの関係がよろしくないのが問題。
あれで、どつぼにはまる人多数。
MSは、Cランタイムを駆逐して、全てAPIや.NETにしようとしている。

>>69
その通り。でも現実問題として、通常用途のお仕事用はVC++しか無いし・・・

72 :
>>71
まぁ確かにmsvcrt.dll使う場合は_beginthreadex()使えだの、MFC使う
場合はAfxBeginThread()使えだのややこしいけど、それぞれのライブラリ
内で使ってるTLS初期化用にそれらを使わなきゃいかんのねぇ、ってのが
理解できれば(実装が汚いというのは置いとけば)別にどうって事ないと思う
けど。他になんか問題あるっけ?

>MSは、Cランタイムを駆逐して、全てAPIや.NETにしようとしている。

Unixだって昔からいろんなライブラリあるけどね。
ただ、Winの場合設定がレジストリだし、ログ出力もイベントログにAPIで
通知だしで、「APIが無いと非常にいじりにくい」ってだけでしょ。

73 :
>「APIが無いと非常にいじりにくい」ってだけでしょ。

ごめん。「だけでしょ」ってのは撤回。
COM関係だと「API使わないといじりようがない」もんね。

74 :
横入りスマソ。TLSって何?
ググってみたらThread-Level Speculationってのが引っかかったけど話の流れ的に違いそう。
Thread Level Stateか何か?

75 :
>>72
ヤヴァいAPIやAfx関数なんか使うとスレッドの解放時に、
スタック領域が残ったりすると思われ

漏れの場合は長ったらしいAPIを呼びまくってる中に
ふとC標準ライブラリのコールを見ると、場違いな気がしてくる
ラスベガスで寿司屋を見つけたような。



76 :
>>74
Thread Local Storage。


77 :
>>76
アリガト。

78 :
>>74
TLSは「スレッド毎に別々の値を保持できるグローバル変数」というとイメージ
しやすいかな。APIとしてTLSAlloc()なんか使う方法もあるけど、VC++だと
コンパイラサポートがあるので、本当にグローバル変数そのものをTLSとして
定義できちゃう。

まぁ俺は普通スレッド毎の管理/ワーク領域作って親スレッドで一括管理する
ように作るんで、自分でTLS操作した事もVC++のTLSサポートも直接使った事
は無いけど。

>>75
スタックが残るようなのってTerminateThread()とかでしょ?
これは最初から「そういうもんだから最終手段としてしか使うな」ってヘルプ
に書いてあるんだから、使う方が悪いつーか。
デザインとしてなんかダサいってのは分かるけど。

79 :
api の名前がダサダサ

80 :
アピ━━━━━━━(゚∀゚)━━━━━ !!!!!

81 :
UNIXにもAPIがあるの?


82 :
>>81
ばーか、R!

83 :
>>73
Windows は、そもそもシステムコール相当の「カーネルへのエントリ
ポイント」(Windows NT 系列だと NTDLL.DLL あたりに書いてある)
は非公開だから、API を使わんことにはどうにもならんよね。

どっちが優れてるって話じゃなく、単に文化の違いだと思うけど。

>>78
UNIX というか POSIX Thread だと、TLS 相当の機能は pthread_getspecific()
を使って書くよね。VC++ のようにコンパイラのサポートがないから、さすがに
グローバル変数を勝手に TLS に割り当て、なんつー真似はできんけど。

84 :
(^^)

85 :
UNIXからrcpでWindows2000からコピーしたいのですが、あれってリソースキットを
入れるだけで動くかご存知ないでしょうか?
あ〜.hostsもありますねぇ。

86 :
(^^)

87 :
(^^)

92 :
age

93 :
まずVMSを徹底的に勉強する。
次にホイールマウスの使い方を覚える。
そしてWindowsUpdateを実行する。

94 :
age

95 :
おおう、一年ぶり。
>>1 は見事にWindows プログラマになり切れたのだろうか?
それとも、いつの間にか古巣に戻って来てしまったのか?
まぁ、このスレの閑散ぶりからすると、戻れない河を渡ってしまったんだろうな。
さらば、 >>1

96 :
>>95
よく一年も経ってから彫り上げたな・・・

97 :
もうUNIX使わなくなりました。

98 :
>>97
裏切者め地獄の業火に投げ込まれるてしまえ

99 :
るてしまえ

100 :

       /\___/ヽ
    /ノヽ       ヽ、
    / ⌒''ヽ,,,)ii(,,,r'''''' :::ヘ
    | ン(○),ン <、(○)<::|  |`ヽ、
    |  `⌒,,ノ(、_, )ヽ⌒´ ::l  |::::ヽl
.   ヽ ヽ il´トェェェイ`li r ;/  .|:::::i |
   /ヽ  !l |,r-r-| l!   /ヽ  |:::::l |
  /  |^|ヽ、 `ニニ´一/|   ^|`,r-|:


101 :
>>100
Yahoo BB HIKARI にしろよ・・・マジお薦め。

102 :
>>101
こんな見えないところでわざわざ工作ご苦労様

103 :
こちとら生粋のWindowsプログラマー!
だがWin32APIを直接呼んだことなんて一切無ぇとくらあっ!

104 :
Windowsは歴史に無頓着なものかもしれないけど、
でも設計的にはUNIXを綺麗にまとめたものだったりしない?
カーネルオブジェクトと概念をひとまとめにしてある辺りは、
アプリケーションプログラマの頭の負担も少ないと思う。


100〜のスレッドの続きを読む
あんたたちの職業は何ですか?
【正社員募集】ドワンゴ大卒未満限定で技術者採用【学歴重視】
ハッカー教育用CD-ROMを買ってみたんだが・・・
itojunの軌跡 0x03
NetHack 地下:63
コマンドオプション
デスクトップ自慢
goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
WindowsからUNIXに乗り換えようと思うのですが
BSDコミュニティ vs. SCO
--------------------
大便器グレムリン(ふ〜ど)アンチスレッド
西谷昇二part3出ない(終了
生活保護のCWだけど質問ある?part177
【速報】「ケムリクサ」の商標登録、特許庁が拒否!本当にたつきのものか疑わしいため [748768864]
保存車・放置車スレッドPart57
登山靴スレ71
美内すずえ◆ガラスの仮面◆197巻目
☆書いたら願いがかなうスレ【体重編】-2キロ目
検事長定年延長 どさくさに紛れて合法化へ [469534301]
ポケモンの女キャラの改善論を語るスレ
【宣教師】ジャンプライズPart.15【爆釣】
■■ライダー兼アニヲタの集うスレPART121■■
新幹線殺傷 女性「赤ちゃんがいるんです」 テメーの赤ん坊のために俺らが死んでも構わないっていうのかよ [498415398]
【〒330-9799】 さいたま新都心Part.20 【郵便局】
【パープル経済評論家】「コロナウイルス対策を『世のため』でなく『我がため』にする安倍政権は許されない」怖い本当に怖い(AERA)[3/12]
【一人が快適】 再婚せず一人で生きていく×男性
【やるよ】 慰安婦被害者から批判された韓国団体  日本大使館前の集会は 「予定通り開催」 [05/09] [荒波φ★]
FF・ドラクエ板 1001 投票所
【69】昭和44年4月2日〜昭和45年4月1日Vol.70【70】
ラノベ作家目指している人たちで交流がしたい
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼