Win32API質問箱 Build124

レス数が950を超えています。1000を超えると書き込みができなくなります。
2017/11/11(土) 19:23:00.69ID:TpLoCFAx
Win32APIについての質問はこちらへどうぞ。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

■過去スレ
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/

■関連スレ
Visual Studio 2017 Part4
http://mevius.2ch.net/test/read.cgi/tech/1509244956/
【C++】 DirectX初心者質問スレ Part40 【C】
http://mevius.2ch.net/test/read.cgi/tech/1474782237/
890デフォルトの名無しさん
垢版 |
2019/02/01(金) 01:44:48.22ID:n6bcSVs+
>>889
FindFirstFileのワイルドカードはあまり当てにするな、まで読んだ。
2019/02/01(金) 04:13:32.40ID:2psUfhCM
MFTを直接読みなされ
2019/02/01(金) 17:50:15.61ID:IACxdzc7
>881
ScrollBarのつまみをLButtonDownしたままマウスポインタをつまみから外してドラッグするとつまみの位置は移動します。ということはCaptureしています。
スレッドのCaptureはひとつしかないので、事前のCaptureは解放され、WM_CAPTURECHANGEDが通知されます。
あと、WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。
2019/02/01(金) 18:19:28.05ID:WOdIBupf
>>892
>WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。

ああ、そういえば、そうだった気がする。メッセージの
Caputure Changed という名前からしても。
2019/02/01(金) 18:35:25.24ID:kGNgvrty
キャプチャ中のAlt+Tabなどは、WM_CANCELMODEというものもある
2019/02/01(金) 18:50:09.36ID:WOdIBupf
>>894
あー、そういえば海外のサイトを調べていたら、
「ALT+TAB でも Capture がどうのこうのなるから、
 正しくは、これこれこんな風にプログラムしなければならない」
みたいに書いてあった。ALT+TABを使わなければ生じないことなので、
後回しだな、と思ったのでちゃんと理解してない。
2019/02/01(金) 18:53:12.96ID:WOdIBupf
「Using SetCapture() and ReleaseCapture() correctly (usually during a drag n' drop operation).」
https://www.codeproject.com/Tips/127813/Using-SetCapture-and-ReleaseCapture-correctly-usua

「Avoiding Trouble with Mouse Capture」
http://www.drdobbs.com/avoiding-trouble-with-mouse-capture/184416474
2019/02/01(金) 18:55:01.83ID:WOdIBupf
  // THE RIGHT WAY OF DOING IT:
  //* <- Remove a slash to comment out the good version!
  case WM_LBUTTONUP:
    ReleaseCapture();
    return 0;
  case WM_CAPTURECHANGED:
    g_MovingMainWnd = (HWND)lParam == hWnd;
    return 0;
  /**/

  // THE WRONG WAY OF DOING IT:
  /* <- Prefix this with a slash to uncomment the bad version!
  case WM_LBUTTONUP:
    g_MovingMainWnd = false;
    ReleaseCapture();
    return 0;
  // buggy programs usually do not handle WM_CAPTURECHANGED at all
  case WM_CAPTURECHANGED:
    break;
  /**/
2019/02/07(木) 12:26:45.88ID:kmlzmIx7
PCをXPからwin8.1 64bitに移行したんだけど、自作のソフトがいくつか動かない。デバックしてみたら、GetDC(0)→GetPixelやっている所でフリーズしているみたい。
win8でGetDC(0)は駄目だったりする?
2019/02/07(木) 12:30:15.66ID:trMMLIP2
GetDCはウィンドウに対するDCを返す関数だから、ウィンドウに関係ないなら、CreateCompatibleDC(NULL)/DeleteDCに変えてみい。
2019/02/07(木) 13:23:19.52ID:FsbblVW+
>>898
DWM(Aero) の場合と、そうでない場合とで surface backend が有る無いの違いがあるには
あるが、一応、GetDC(NULL) が Screen 全体の DC を得るということは仕様化されているので、
新しいOSでも動作自体は出来ないわけではないと思う。

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/fb7d5836-5e3b-42f8-95cb-586cb2b3da21/getwindowdc-and-bitblt-in-windows-7-and-windows-8?forum=windowssdk

Under DWM (Aero) each window has its own surface backed up by GPU memory.
Without DWM, that is under classic renderer, all pixels covered by another
window are simply discarded. To detect whether DWM is currently running
and enabled use DwmIsCompositionEnabled function.

[ブラウザ上の新OSの紹介]
http://nowsmartsoft.atwebpages.com/
901デフォルトの名無しさん
垢版 |
2019/02/07(木) 15:13:59.88ID:GcZVZFC2
>>898
一回コピーを作らないとだめ
2019/02/07(木) 19:21:59.34ID:/5LF0iCd
>>898
Aero環境ではGetPixelがとてつもなく遅くなるというやつじゃないの?
903デフォルトの名無しさん
垢版 |
2019/02/08(金) 16:13:48.70ID:OJ5k9nKR
Win8.1はAeroじゃなくてMetroだから違うのでは。
2019/02/09(土) 07:34:09.50ID:VoK7d33Y
そういったシステム上の差異をブラックボックス化して吸収するのがSDKなりライブラリの役割だと思うんだけどな。
なんでこうも面倒なのかね。
2019/02/10(日) 00:56:19.51ID:B31yNMWe
AeroやMetroはライブラリだから
2019/02/10(日) 09:55:16.21ID:jvY/9N9p
Quattroは大佐だから
907デフォルトの名無しさん
垢版 |
2019/02/10(日) 14:10:30.78ID:25jgEgQt
5ちゃんはチラシの裏だから
908898
垢版 |
2019/02/10(日) 14:41:50.30ID:pMKPJfwr
遅ればせながら、ご教示していただいた皆様、ありがとうございます。
15年以上前にVC6で作成したソースをもとしたソフトだったので、これを機会に作り替えすることにしました。
今回は、.netのCopyFromScreenからBitmapを作成してGetpixelしてみます。
他にも、mixer関連で取得変更できてなかったり、手を入れなければならないソフトがいっぱいありそう
909sage
垢版 |
2019/02/10(日) 15:07:59.97ID:FHx5KBLx
元々SetPixelを呼び出すごとにDrvBitBltしていたので遅かった
2019/02/10(日) 18:15:03.40ID:qfB3Qf/j
managedだとピクセル単位の処理はunsafe使わないと遅いよ
百倍以上の差が出る
911898,908
垢版 |
2019/02/12(火) 14:13:36.96ID:ArFYaOAy
マスターボリュームが変更されたらWAVE音量を同じ値に変更するということを、XPではMixerAPIを使って出来てましたが、win8では出来なくなりました。

それでネットをあさってて、マスターボリュームはIMMDeviceのGetDefaultAudioEndpointで取得出来ることが分かりましたが、WAVE音量を変更する方法が不明です。
どなたか教えてください
2019/02/12(火) 15:38:56.47ID:7Y/Mu4tq
Vista以降ミキサーの仕様が変更されててwave音量の項目自体なくなってないか?
2019/02/19(火) 22:54:47.64ID:mfSiw2KQ
LLHOOKか何かで、ユーザーの入力は全部遮断しつつ、
SendInputやkeybd_eventやらのプログラム由来の入力は通すようにしたいのですが、
何か方法ないでしょうか?
今はHIDデバイスを無効にする事を考えてますが、あんまやりたくないです。
914デフォルトの名無しさん
垢版 |
2019/02/20(水) 15:53:14.16ID:rNooXWfe
盾ニか~などの合字が出力されるWin32APIってどんなのがあるの?
2019/02/20(水) 18:03:14.01ID:P1QqcLfo
>>914
無いんじゃないの。
2019/02/20(水) 18:04:45.23ID:eMhiTtf4
普通に合字に対応する文字コードを文字(列)出力/描画 APIに渡すだけだと
思う。それ以上のことをやりたい場合は、自分でプログラムしたらいいよ。
917914
垢版 |
2019/02/20(水) 18:12:05.06ID:rNooXWfe
元号の合字の件、以下のニュースが気になって質問したんだけど、
Win32APIが使わないなら誰がどんな用途でわざわざレジストリを開いて合字を探すのか気になった次第。


Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
https://pc.watch.impress.co.jp/docs/news/1170425.html
2019/02/20(水) 18:13:20.05ID:AQq/x/Lj
LOGFONT.lfWidth、CreateFontIndirect、SelectObject、TextOut/DrawTextを使えば半角漢字を描画できる。
2019/02/20(水) 18:15:28.65ID:AQq/x/Lj
元号については、ここに詳しく書いてあるよ。
https://docs.microsoft.com/en-us/windows/desktop/intl/era-handling-for-the-japanese-calendar
2019/02/20(水) 18:22:20.03ID:AQq/x/Lj
元号のAPIを追加するより、レジストリで定義する方が得策だね。事前テストも出来るし。
2019/02/20(水) 18:45:40.96ID:EHsoFK41
>>917
盾ニか~ってただの文字コードに対応した文字
ただ、いわゆる機種依存文字なので、その文字コードを想定していない
クソアプリが死ぬって話がその記事に書いてることなのでは?

レジストリに記録されてるのは元号と西暦の対応で、
その情報を使いたいアプリが好きに使えばいいだけの話

APIでそこ多分見てる(見てないかも知れんが)のは
GetCalendarInfoやEnumCalendarInfo系あたりじゃなかろうか
今回の件でこいつらが問題を起こすとは書いてないと思うが
2019/02/20(水) 18:49:44.36ID:jAMIqMc6
新しい元号のUnicodeのコードポイントはもう決まってるらしいよ。
923914
垢版 |
2019/02/20(水) 19:12:38.68ID:rNooXWfe
GetDateFormatEx()で書式ggは元号に置き換わる。合字の書式はそもそもあるの、どうなの。
924デフォルトの名無しさん
垢版 |
2019/02/20(水) 19:45:56.26ID:v7iPz90J
森鷗外𠮟る
2019/02/22(金) 21:29:35.92ID:kVQHKw0G
WaitForSingleObjectやWaitForMultipleObjectsってspurious wakeupがあるから使うなと言ってる先輩がいるけど
本当ですか?
2019/02/22(金) 21:44:37.57ID:x13qkxfg
spurious wakeupがある→正しい
使うな→よりより代替手段がなければ使うしかない

代替手段があるかどうかは環境によるから先輩ちゃんに聞く
2019/02/22(金) 22:18:48.32ID:JuVjm6Gn
https://docs.microsoft.com/en-us/windows/desktop/sync/condition-variables
条件変数のAPIではspurious wakeupsに言及がある、ただしWaitForSingleObjectなどでは言及が見つからなかった

https://stackoverflow.com/questions/38757420/is-waiting-for-an-event-subject-to-spurious-wakeups
出典不明だがWaitForSingleObjectはspurious wakeupが起こらないとある
WaitForMultipleObjectsExでは、bAlertableにTRUEを渡せばspurious wakeupが起こりうるらしい

先輩の情報源を知りたい
2019/02/22(金) 22:23:38.90ID:qRCx8JnJ
同期オブジェクトが非シグナル状態でWaitFor系関数から勝手に戻ってくることはないと断言できる
仕掛けるオブジェクトに依ると思う
2019/02/22(金) 22:27:18.85ID:qRCx8JnJ
ただし単に寝ていたスレッドが起きるという現象自体は外部のCPU負荷調節アプリとかでResumeTheradを発行することで簡単に再現できる
2019/02/22(金) 23:11:25.13ID:4O+31NpZ
魔王も勇者が入って来ただけで起きるしな
931デフォルトの名無しさん
垢版 |
2019/02/22(金) 23:26:13.44ID:7tzQnSDu
そもそも何をWaitFor系関数で待つのかってのも大きい。自作Signalオブジェクトなら問題起きないでしょ。
2019/02/23(土) 07:23:17.25ID:9pAAXdf2
>>927
以前、2つのプロセス間で、WaitForSingleObject() を CreateEvent(), SetEvent() 系
の HANDLE で実験してみたけど、バグ的な現象は起きず、至って正常に動作し、
2つのプロセスで、お互いに、SetEvent() したり、WaitForSingleObject() で
相手を待ったりして、ハンドシェイク的な振る舞いが思ったとおりに出来ることが
確認できた。

速度も、SetEvent() した事が相手に届くまで、確か、1(μs)前後だったので、
十分速いと結論付けた。
2019/02/23(土) 08:40:48.30ID:zem2FMDi
C++標準のwait系にはあるからいちいち確認するしなきゃいけないから面倒だよな
しかも、イベントだけ使いたいのにいちいちmutexをよういしなきゃいけないし・・・
934デフォルトの名無しさん
垢版 |
2019/02/23(土) 11:36:21.35ID:+DV3f+Dk
都市伝説かも知れんが
そもそもいつ発生するか判らない発生しないかも判らない現象を
ちょっとテスト書いてみて大丈夫(キリつ
2019/02/23(土) 11:54:16.12ID:apHI25Q1
条件変数ならともかく、Eventなんかはspuriousで起こされても確かめようがないんじゃないのかな。
936デフォルトの名無しさん
垢版 |
2019/02/23(土) 16:03:56.92ID:qOMwbnHQ
同期機能は同期機能としてそのまま利用しつつ、最低限の安全性や整合性については別途確認すべきなのでは。
2019/02/23(土) 18:44:58.70ID:9pAAXdf2
WaitForSingleObject() には、MSDN の仕様書に書かれていないような意味においての
バグ的な spurious wakeup は起きないと思う。

なお、実験する限り問題ないが、絶対ないかどうかは誰にも分からない。
2019/02/23(土) 18:57:16.07ID:Cx5sxFW5
c++標準ライブラリには堂々と書かれてるな
Windowsだとc++標準ライブラリを使う理由がないな
2019/02/23(土) 19:07:25.29ID:9pAAXdf2
同期オブジェクトは重要。
仕様書に何も書いてないのに、もし、spurious wakeup が起きるとしたらバグ。

なお、C++ の STL ライブラリは馬鹿が作ったと思ってる。
昔ながらの C の標準ライブラリは良い出来だが、それと混同しないほうがいい。
940デフォルトの名無しさん
垢版 |
2019/02/23(土) 20:04:03.30ID:qOMwbnHQ
C++のSTLとCライブラリでは機能が似ているところはない気がするけど?
念のため言っとくとiostreamはSTLじゃないよ。
2019/02/23(土) 20:24:45.58ID:7js9m1kN
つーかspurious wakeupなんて存在を許してる時点で作ったそいつらはアホじゃないの
そいつらのリテラシーどうなっとんのか疑うレベル
942デフォルトの名無しさん
垢版 |
2019/02/23(土) 20:32:05.22ID:qOMwbnHQ
汎用性のためにファイルロックを使った排他処理で実装するとそうなってしまうんじゃないの。知らんけど。
2019/02/23(土) 22:14:41.32ID:apHI25Q1
厳密にspurious wakeupを許さない実装は大変でパフォーマンス的にも不利だから。
というか、spurious wakeupを許すとすごく有利だというのが後から発見されたんじゃなかったかな。
2019/02/24(日) 02:55:03.61ID:ZXw7vz2Z
っていうか、win環境ならC++標準ライブラリよりWaitFor〜を使ったほうがいいだろ
std::unique_lockなんで馬鹿みたいに遅いしw
2019/02/24(日) 04:17:10.21ID:N5G83Lpp
>>937
WaitForSingleObject()ってエラー返すことがあるよね?仕様上では。
要はちゃんとエラーハンドリングしろって話だけどさw
2019/02/24(日) 08:23:50.21ID:pcDSz9Pr
>>943
プログラムには優先順位があって、まず、正しく動作する事が一番重要。
その次に来るのが、使いやすさか、または、速度。どちらが優先されるかは
設計思想や哲学による。その次にプログラムのサイズ。

いくら速度が速くても、やるべきことが正しく行われないならプログラムとしては
失格なんだ。
2019/02/24(日) 08:36:16.85ID:fWdsplTz
「sprious wakeupもありえる」というのを「正しい動作」と定義したんだから何の問題もない。
2019/02/24(日) 08:48:33.63ID:pcDSz9Pr
それだと、使う側のプログラムが長くなるだけなので、設計思想に問題を感じる。
ライブラリ設計者の経験不足かもしれない。
速くなるといっても結局、使う側でループの中で判定して条件に合わないなら、
また繰り返し、wait するのなら、ライブラリ側でそういう風にできなかったの
だろうか。
2019/02/24(日) 09:42:01.89ID:pcDSz9Pr
深く考えてないけど、以下のようにしてしまえば、速度が速いまま、
spurious wakeup が絶対に起きない wait 関数を作れるんじゃないかと
思うんだけど、どうなんだろう。

Xxxx LapperWait(Yyyy y, Zzzz z) {
  for (;;) {
   raw_wait(y, z);  // spurious wakeup 有り
   if ( IsCond(y, z) ) {  // 厳密な条件チェック
     return x;
   }
  }
}
2019/02/24(日) 10:03:24.37ID:9KBfjXtA
>>949
深く考えてから書き込みましょう。
ぼくのかんがえたさいきょうの同期実装についてはスレ違いなので、よそでやってください。
951デフォルトの名無しさん
垢版 |
2019/02/24(日) 14:42:49.21ID:YwY0sV++
LoopyWaitでいいよもう
2019/02/24(日) 15:26:11.06ID:BJ3WFlaM
「sprious wakeupもありえる」のはいいが、
どのAPIも使うたびにいちいち関数仕様確認するのは面倒だな

つーか関数の説明には書いてないので仕様とは言えないと思うんだが・・・初見殺し?
2019/02/24(日) 15:39:02.49ID:2tRfk65D
>>952
初めて使うAPIでしかも同期処理なんて複雑なものは仕様を調べて使うのが当然のことだと思うぞ。
2019/02/24(日) 16:04:30.12ID:N5G83Lpp
>>949
   raw_wait(y, z);  // spurious wakeup 有り

   if ( IsCond(y, z) ) {  // 厳密な条件チェック
の間で条件が変わったらどうするの?
2019/02/24(日) 16:07:02.11ID:EMRtI4X3
>>954
え、それはプログラミングの仕方の問題じゃないの?
元々、マルチスレッドプログラムは難しいんだけど、それと今回の
問題は別なのでは。
2019/02/24(日) 16:08:45.84ID:N5G83Lpp
>>955
どうやってプログラムで回避するの?
回避できないんだったら「絶対に起きない」なんて言えないだろ。
こんなレベルで排他処理語られても...
2019/02/24(日) 16:14:47.34ID:pcDSz9Pr
>>956
もともと、排他処理用のAPIは、そういう「変な問題が起きない」ように用意されて
いるんだよ。「Atomic」アクセス、などと言われていて、「途中に」とか
中途半端な状態が起きない作りにしてある。それは割り込み発生を好きにOFFに
できるところのシステム側(OS)でしかできない。
2019/02/24(日) 16:16:16.11ID:pcDSz9Pr
なぜかIDが勝手に変わったが、949=955=957だ。
2019/02/24(日) 16:17:26.62ID:9KBfjXtA
同期オブジェクトの正確性ではなく、ユーザ定義データの保護こそが大切。目的を見失わないように。
2019/02/24(日) 16:18:28.55ID:pcDSz9Pr
ちなみにオイラは、32BITマルチタスクOSを作った経験がある。
2019/02/24(日) 16:24:01.17ID:Krr3p0wT
>>949
シングルスレッド脳だとそういう発想になる
2019/02/24(日) 16:34:48.90ID:9KBfjXtA
たまにかかってくる間違い電話がいやだから電話は無能。そんな感じ。
963デフォルトの名無しさん
垢版 |
2019/02/24(日) 16:36:35.10ID:2fcQjxFq
Atomicを語るならID変わらないようにしないと恥ずかしいな
2019/02/24(日) 16:41:49.67ID:pcDSz9Pr
IDが変わる理由は知らん。多分、5chのシステム上の問題だと思う。
2019/02/24(日) 16:43:05.47ID:pcDSz9Pr
沢山の人で賑わっているように見せるためかな。人寄せと広告料金関連で。
2019/02/24(日) 16:46:55.09ID:9KBfjXtA
コールバック形式のAPIを使うプログラマはその呼び出しタイミングをAPI側に委ねている。
何がいいたいかというと、要するにあきらめろということだ。
2019/02/24(日) 17:53:55.79ID:N5G83Lpp
>>957
それが起きるからどうするという話で、
あんたが糞の役のも立たないコードを出したんじゃん。
つまり>>954はクソだったと認めるということ?
2019/02/24(日) 18:01:12.16ID:pcDSz9Pr
>>697
多分、あのコードで問題ないはずだ。
ちなみに、オイラは現実社会では天才と言われているよ。
969デフォルトの名無しさん
垢版 |
2019/02/24(日) 18:31:20.56ID:9KBfjXtA
車のバンパーは本来、ボディを保護するためにある。
そのバンパーに傷がついたりへこんだりすることを病的に嫌悪している状態。
お大事に。
2019/02/24(日) 18:39:12.54ID:fWdsplTz
もしそのraw_wait()がP命令だとしたらその結果がspuriousのときはV命令で状態を戻さなきゃならんと思うが。
ただどっちにしてもそのIsCond()はライブラリ側では構成しようがないけどな。

あと、やっぱりspurious wakeupって条件変数特有のものじゃなかったかな。
なんかそのへんで話がずれている気がする。
2019/02/24(日) 18:54:16.69ID:EMRtI4X3
>>970
どういう状況を考えてるのか前提が分からないし、だから
「深く考えてない」
という事になってしまうのだけども。少なくとも、Win32のWaitForSingleObject()
では特に問題は起きない。
2019/02/24(日) 18:58:07.16ID:D1Rqo30U
つ MsgWaitForMultipleObjectEx
2019/02/24(日) 19:23:32.11ID:njB6xu8t
>>972
GetMessage相当が入ってるだけで基本WaitForと同じ動作だが何か?
2019/02/24(日) 22:10:09.80ID:SGjUOn7r
>>925
>WaitForSingleObjectやWaitForMultipleObjectsってspurious wakeupがあるから
>使うなと言ってる先輩がいるけど本当ですか?
嘘です。

同期オブジェクトを使いこなせない先輩が自分のバグを解決出来ずにこれを
spurious wakeupのせいにし、
同期オブジェクトをろくに知りもしない >>926-973 みたいなやつが適当なことを
書いているだけです。
2019/02/24(日) 23:25:34.04ID:N5G83Lpp
>>930
勇者がきてないのに目覚めてしまった魔王とか想像してほっこりした
2019/02/25(月) 22:30:45.76ID:M4I6EPLO
>>974
ってことは、Win環境においてはC++標準ライブラリを使う理由が無いってこと?
2019/02/25(月) 23:33:02.61ID:2LN6Bs/0
WaitFor〜はOS制御の根幹って感じはするけど、lstrcpy〜系をAPIにする意味はよく分からん
978デフォルトの名無しさん
垢版 |
2019/02/26(火) 02:22:40.88ID:K9v1e6Ic
昔はCライブラリへのリンクなしでビルドする需要が割とあった。
2019/02/26(火) 12:16:11.37ID:5MxkS3P7
>>976
Windows では、Windows API か、それをクラスにまとめた、MFC を使う。
型も、HDC とか、Windows 独特のもの

C++標準ライブラリは、アルゴリズム以外は、あまり使わないだろ
2019/02/26(火) 12:23:22.51ID:D7AA7sgA
プラットフォーム共通にしたい場合なんかに使うと思うよ。
排他処理みたいな、OSに近いしい部分はOSに近しいAPIの方がいいと思うけどお。
981デフォルトの名無しさん
垢版 |
2019/02/26(火) 16:48:18.20ID:K9v1e6Ic
vector,list,mapなど各種コンテナ、文字列クラスbasic_string、スマートポインタクラスshared_ptr,unique_ptrは使うでしょ。
コードでのdelete, delete[] 呼び出しを減らすためにね。
982デフォルトの名無しさん
垢版 |
2019/02/26(火) 17:32:55.36ID:K9v1e6Ic
スマートポインタクラスshared_ptr,unique_ptrは、デストラクタを細かく指定できるのでHDCやHFONTなどにも使えるよ。
すでにMFCなどにラッパークラスがすでにあるから使わないだろうけど。
2019/02/26(火) 20:07:38.65ID:ZphJ05zo
昔はCRT依存しない実行ファイル作る意味もあったけど、C++が普通になったら
もうそこはこだわらないね。
2019/02/26(火) 20:15:04.12ID:gazg2F9T
>>980
プラットホーム不問にしなきゃいけないような有益なプログラムを書ける人なんてほぼいないだろ

boostライブラリみたいなものなら、プラットホーム固有のものを使っちゃいかないけど、あんなライブラリを書ける人なんて世界でも100人もいないだろ
985デフォルトの名無しさん
垢版 |
2019/02/26(火) 20:22:51.49ID:K9v1e6Ic
WindowsAPI直呼びを避ける動きは、主にゲーム業界からのニーズで発生するんだけどねぇ。
2019/02/26(火) 23:03:56.44ID:D7AA7sgA
>>983
CRTに脆弱性があってから分離が当たり前になった気がするなあ
分離しておかないとパッチがあたらないし
2019/02/26(火) 23:06:10.50ID:D7AA7sgA
>>984
今時のシステムはWindowsなのかLinuxなのか、上の人はコストしか見ないから
どっちでも行けるようにしておかないと下っ端は辛い状況になるよ。
外注に出す金があるならそんなみみっちいことは言われないわけで。
988デフォルトの名無しさん
垢版 |
2019/02/26(火) 23:39:30.91ID:K9v1e6Ic
>>986
ブラウン管ディスプレイのきじゃくせい(なぜか変換できない)なんてどうでもいいだろ。
2019/02/27(水) 01:01:50.92ID:QPgoOUvU
strsafe.h
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況