アカウント名:
パスワード:
ちょうど Windows XP が出たあたりで Linux (debian) に乗り換えました。その後は業務で office / adobeのアプリを使う時だけ windows を使うぐらい。
でも先日、部下のWin32アプリのデバッグを少し手伝った際、XP時代の知識で Windows 10や11の開発が普通にできることを実感してびっくりしました。Win32は全然進化してないんですよね。いまだに WinMainとかDllMainで動いています。
……でっかい釣り針だなあ
未だにvoid main()とか言ってほしいんですかね。そしたらint main()に進化したとか返ってくるんですかね。部下も崩れが邪魔すんなって感じなんでしょうね。
低能プログラマだが未だにmain以外でもvoid関数の存在意義が理解できない。終了ステータスすら返さないって手抜き以外の何なんだよと。
副作用のある呼び出しは、正常なら何も返さない、異常なら例外を上げるという設計が基本中の基本。終了ステータスは簡単に無視できてしまい、問題の発覚が遅れて危険度が上がるので、実際は終了ステータスに頼る設計のほうが手抜き。
例外のない言語や禁止の規約が…? ご愁傷様です。転職をおすすめします。
ご愁傷さまて書いてあるよ
重箱の隅をつつくと、Visual Studioでカーネルドライバーを書いてるなら、一応、多少の構造化例外は使えるはずなのだが。__try/__except/__finallyだったっけ。__leaveとかいうのもあるのか。まあ、普通はRAIIを使うか。
その言い分だと、普通に値だけ返して終了ステータスを返さない関数も全部手抜きですよね。
今時、C++でも例外処理でしょう。
abort, exit, quick_exitあるいはWindowsならExitProcessなど、絶対に返ってこない関数はvoidでも良いのではないだろうか?
余談:そういう関数に付与するnoreturnhttps://docs.microsoft.com/ja-jp/cpp/c-language/noreturn?view=msvc-160 [microsoft.com]
win32 apiが進化したらそれはもうwin32 apiじゃないからね。win rt api(xpは未対応)とか.net framework(4.5以上はxp未対応)とかになる。
進化してないって言いたいだけだろな
枯れたって言ってほしいよね
Win11でもWinMainやDllMainは使えるけど、XPの時代ですら、WinMainやDllMainを意識する開発は、よほど特殊な事情でもなければ、してなかったしな。あれを意識するのが当たり前だったのは、MFCが出てくるまでの時代で、MFCですら重いって言ってたとしても、せいぜいWin95の時代か、あるいは開発を無料環境で揃えたくてCygwinとかMINGWとか使ってたようなケースだけだろう。
ユーザーランドの互換性維持のために日々格闘しているLinuxコアチームが聞いたら失笑しそう。
windows10,11って、結構古いアプリも動くんだよね。互換性の高さはすごいと思う
Windowsアプリが次のOSで使えなくなる大きな理由が、SQLサーバのバージョン決め打ちだった気がする。それ以外は割と頑張ってくれてる印象。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
個人的には最後のWindows (スコア:0)
ちょうど Windows XP が出たあたりで Linux (debian) に乗り換えました。
その後は業務で office / adobeのアプリを使う時だけ windows を使うぐらい。
でも先日、部下のWin32アプリのデバッグを少し手伝った際、XP時代の知識で Windows 10や11の開発が普通にできることを実感して
びっくりしました。Win32は全然進化してないんですよね。いまだに WinMainとかDllMainで動いています。
Re: (スコア:0)
……でっかい釣り針だなあ
Re: (スコア:0)
未だにvoid main()とか言ってほしいんですかね。
そしたらint main()に進化したとか返ってくるんですかね。
部下も崩れが邪魔すんなって感じなんでしょうね。
Re: (スコア:0)
低能プログラマだが未だにmain以外でもvoid関数の存在意義が理解できない。
終了ステータスすら返さないって手抜き以外の何なんだよと。
Re: (スコア:0)
副作用のある呼び出しは、
正常なら何も返さない、異常なら例外を上げる
という設計が基本中の基本。
終了ステータスは簡単に無視できてしまい、問題の発覚が遅れて危険度が上がるので、実際は終了ステータスに頼る設計のほうが手抜き。
例外のない言語や禁止の規約が…? ご愁傷様です。転職をおすすめします。
Re:個人的には最後のWindows (スコア:1)
Re: (スコア:0)
ご愁傷さまて書いてあるよ
Re: (スコア:0)
重箱の隅をつつくと、Visual Studioでカーネルドライバーを書いてるなら、
一応、多少の構造化例外は使えるはずなのだが。
__try/__except/__finallyだったっけ。__leaveとかいうのもあるのか。
まあ、普通はRAIIを使うか。
Re: (スコア:0)
その言い分だと、普通に値だけ返して終了ステータスを返さない関数も全部手抜きですよね。
Re: (スコア:0)
今時、C++でも例外処理でしょう。
Re: (スコア:0)
abort, exit, quick_exitあるいはWindowsならExitProcessなど、絶対に返ってこない関数はvoidでも良いのではないだろうか?
余談:そういう関数に付与するnoreturn
https://docs.microsoft.com/ja-jp/cpp/c-language/noreturn?view=msvc-160 [microsoft.com]
Re: (スコア:0)
win32 apiが進化したらそれはもうwin32 apiじゃないからね。win rt api(xpは未対応)とか.net framework(4.5以上はxp未対応)とかになる。
Re: (スコア:0)
進化してないって言いたいだけだろな
Re: (スコア:0)
枯れたって言ってほしいよね
Re: (スコア:0)
Win11でもWinMainやDllMainは使えるけど、XPの時代ですら、WinMainやDllMainを意識する開発は、よほど特殊な事情でもなければ、してなかったしな。
あれを意識するのが当たり前だったのは、MFCが出てくるまでの時代で、MFCですら重いって言ってたとしても、せいぜいWin95の時代か、あるいは開発を無料環境で揃えたくてCygwinとかMINGWとか使ってたようなケースだけだろう。
Re: (スコア:0)
ユーザーランドの互換性維持のために日々格闘しているLinuxコアチームが聞いたら失笑しそう。
Re: (スコア:0)
windows10,11って、結構古いアプリも動くんだよね。
互換性の高さはすごいと思う
Re: (スコア:0)
Windowsアプリが次のOSで使えなくなる大きな理由が、SQLサーバのバージョン決め打ちだった気がする。
それ以外は割と頑張ってくれてる印象。