18/04/12 23:04:18.01 ifFSa3KQ.net
>>314
いやタッチのメッセージを処理しなけりゃ普通にマウスのメッセージにフォールバックはされるぞ
マウスメッセージのみで手を抜きたいけど目的の品質の届かないって趣旨の質問じゃろ
322:297
18/04/12 23:33:07.34 1t6GyJnt.net
>>316
上でも書きましたが、タッチのメッセージを処理しないようにすると
ペン入力自体全くできなくなりました。
323:デフォルトの名無しさん
18/04/12 23:44:04.43 fS8U0BFZ.net
関係あるんだかないんだかはわからんが
EnableMousePointer なんて api があるな
324:デフォルトの名無しさん
18/04/12 23:59:24.17 ifFSa3KQ.net
Surfaceでしか確認してないけどそういやFCUだかでペンのスワイプの既定が
カーソル移動からスクロールに変更されてたなあ
そのへんが原因かもね
325:297
18/04/13 02:19:42.71 4MPC6lcI.net
>>318
ありがとうございます。
飛びついてみましたが、変化ありませんでした。
逆の考え方で、マウスをポインティングデバイスとして使うためのものかも知れませんが、
マウス操作しても前と変わらずでした。
もしかするとマウスでフリック操作などができるようになるのかも?という気がしますが、
そのような自作アプリがないのでこれ以上は分かりません。(なお、デフォでDisableが設定されていた)
整理しますと、現状>305さんの仰るとおり、ペンでタッチして少し動かせばマウスメッセージが
飛んでくるという状況です。
すっごく古いお絵かきアプリを複数引っ張り出してみましたが、基本的に同じ挙動でした。
描きやすさに多少の差異は見られましたので工夫の余地はあるものの、根本的には
WM_POINTER 系統か WM_TOUCH 系統への対応が必須のようです。
色々アドバイスいただき、皆さんありがとうございました。
326:313
18/04/13 10:24:16.60 MklDTzxh.net
タッチパネルのみのメッセージであるWM_POINTERで、必要なイベントを自分で加工してPostMessageかSendMessageを使って WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_LBUTTONUP:とかに投げればマウス部分の従来の処理でそのまま動くんじゃね?
マウスっぽく処理するならタッチIDを保存して判別したほうがいいな
WM_TOUCHは使ったらダメだと思う昔それで不具合があってハマった記憶がある。
void SingleTouch(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
// WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATEの共通処理
static UINT pointerID=0; // ポインタIDを静的に保存しておく
POINTER_INFO info = { 0 }; // ポインタの情報を毎回初期化
UINT contactId = GET_POINTERID_WPARAM(wParam);GetPointerInfo(contactId, &info); // ポインタの情報を得る
ScreenToClient(hWnd, &info.ptPixelLocation); // クライアントの座標で使うならローカル座標に変更
lParam = MAKELPARAM(info.ptPixelLocation.x,info.ptPixelLocation.y); // PostMessage用のlParamを作成
// 個別処理、同じpointerIDを判別をしないと10点タッチとかで酷いことになるw
switch(message){
case WM_POINTERDOWN: if(0==pointerID){pointerID=info.pointerId;PostMessage(hWnd,WM_LBUTTONDOWN,0,lParam);}break;
case WM_POINTERUP: if(pointerID == info.pointerId){pointerID=0;PostMessage(hWnd,WM_LBUTTONUP,0,lParam);}break;
case WM_POINTERUPDATE:if(pointerID == info.pointerId){PostMessage(hWnd,WM_MOUSEMOVE,0,lParam);}break;
}
}
LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)のswitch(message)で下記を追加
case WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATE: SingleTouch(hWnd,message,wParam,lParam);break;
327:デフォルトの名無しさん
18/04/13 10:47:38.98 bFIkQBXO.net
タブレット持ってないからわかんないけどさ
>>303の◎ってOSが出してて、OS自体が入力を拒んでるんじゃないのか?
だとしたらどのモジュールがその処理してるのか調べてその処理置換してwindows自体の挙動を変える必要があると思う
328:デフォルトの名無しさん
18/04/13 10:49:29.00 bFIkQBXO.net
処理置換しなくてもrawinputだとか入力関連のapi叩いても盗れる可能性あるか
329:デフォルトの名無しさん
18/04/13 11:35:55.96 UdLtdLwz.net
>>323
取る方法はいくらでもあってドキュメント化もされている
今回の質問は簡易なコードでマウスと同様の動作をさせる方法は無いか?ということ。
330:デフォルトの名無しさん
18/04/13 11:58:28.35 bFIkQBXO.net
◎の中はメッセージ来ないから困ったって質問かと思ったんだが違ったのか
わかんないもんに口出すべきじゃないなw
331:313
18/04/13 12:15:36.03 MklDTzxh.net
書き忘れてた。WM_TOUCH系の初期化すると◎のジェスチャーとか、不具合でるよ。
初期化しないで、321のコード実装してみたらいいと思う。
332:デフォルトの名無しさん
18/04/14 00:16:48.20 a7yPR2Rx.net
サーバー上のファイルを編集中に、他人からの全てのアクセスを禁止したいのですが
CreateFileでdwShareModeを0にすれば排他制御は万全だと思いますか?
良い方法があれば教えてください。
333:327
18/04/14 00:22:28.28 a7yPR2Rx.net
補足。クライアントからサーバー上のファイルを編集するときです。
334:デフォルトの名無しさん
18/04/14 02:38:22.36 lnTeyTPJ.net
deleteされちゃいますよ
335:デフォルトの名無しさん
18/04/14 06:15:46.39 fnoJLpZQ.net
linux やわunix サーバなら消されちゃうかもね
336:327
18/04/14 18:14:56.59 a7yPR2Rx.net
編集完了までCloseHandleしなければdelete出来ないんじゃないでしょうか。悪意のある攻撃者はいないとして。
私が心配しているのは、一つのファイルに対して、複数のクライアントから同時に排他Open(CreateFile)が
発生したとして、複数のクライアントで排他Openが成功してしまう可能性があるんじゃ無いかって事です。
337:デフォルトの名無しさん
18/04/14 18:23:06.50 s4TUpiI7.net
>>331
Open/Close は排他ロックにならない、ときいたことがある
338:327
18/04/14 18:32:55.41 a7yPR2Rx.net
>>332
そうですか、、
小さいシステムなので、サーバ側プロセスまで作りたくないなーと思ってたんですが。
339:デフォルトの名無しさん
18/04/14 20:04:17.98 fnoJLpZQ.net
smb なら排他的にロックされる
2つのクライアントが矛盾する共有モードでファイルをオープンしたり削除したりはできない。
URLリンク(docs.microsoft.com)
smb のサーバが linux や mac で、その os などから smb 以外の方法で
ファイルを変更、削除したりは可能だけどこれはどうしようもない
もしも目的が他のクライアントにエラーを返すとこでなく
書き終わった時点でアプリが書いた内容になっていることを保証したい
(書いている途中のファイルを読まれないように)だけなら
別名のファイルを作って書き終えたところで MoveFile するというよくある手法もある。
340:デフォルトの名無しさん
18/04/14 20:19:46.84 fnoJLpZQ.net
上のurlはazureのドキュメントだけどsmbでWindowsサーバなら同じ仕様だと思う
341:327
18/04/14 21:05:12.23 a7yPR2Rx.net
>>324
私にsmbはちょっと難易度高杉のようです。
妥協 or
342:違うアプローチを考えてみます。
343:名無し@キムチ
18/04/14 21:10:19.87 ywXYi+/7.net
質問です。
glutを使ったプログラムで、描画の後ダブルバッファ交換のglutSwapBuffers();を入れると、
windowの画面が真っ白になってしまって何も表示されなくなるのですが、どうしたらいいですか?
344:デフォルトの名無しさん
18/04/14 23:46:15.72 fnoJLpZQ.net
>>336
Windows の標準ファイル共有プロトコルSMBを用いて接続している
ファイルサーバ上のファイルなら
CreateFile の共有モードでロックができるということです。
345:デフォルトの名無しさん
18/04/15 00:06:05.13 G47pMzYo.net
>>338
なるほど。でしたら概ねロックできそうです。
ごく少数のクライアントは無料のVPNツールでLAN外からサーバーにアクセスしているんですが
これもSMBプロトコルなのかどうかは調べてみます。
情報ありがとうございました。
346:デフォルトの名無しさん
18/04/15 10:41:11.68 E1b18XLI.net
>>337
どこに描いたの?
何を表に持ってきたの?
347:名無し@キムチ
18/04/15 21:45:37.16 X4sBLOS0.net
Windowsのコールバック関数の中のWM_PAINTにダイレクトXの描画処理を書くと、エラーが出て実行されないのですが、どうしてですか?どうしたらいいですか?
348:デフォルトの名無しさん
18/04/15 21:53:50.01 qZPDSYA2.net
まず全裸になります
349:デフォルトの名無しさん
18/04/15 22:41:41.98 UX4y5Mn1.net
使わなくてもいいからDCだけ確保
350:デフォルトの名無しさん
18/04/15 23:01:26.11 +Hw5szkB.net
ドリームキャスト手に入れるのは大変そうだ
351:デフォルトの名無しさん
18/04/15 23:27:51.27 xpwShDOv.net
ぴぴん
352:デフォルトの名無しさん
18/04/15 23:37:59.49 qZPDSYA2.net
dc1 = beginpaint
dc2= getdc
dc2= releasedc
dc1=endpaint
353:デフォルトの名無しさん
18/04/16 08:23:21.50 5yp4kCb0.net
>>344
MDが復刻されるらしいじゃん。
上手くいけばSSやDCも行けるよ。
354:デフォルトの名無しさん
18/04/16 09:43:27.45 75OnkAat.net
カードキャプターさくら
355:名無し@キムチ
18/04/17 18:57:41.86 nz/ieMrf.net
初歩的な質問ですが、fgxsdkを使ったプログラムと、openGLを使ったプログラムをつくりましたが、
どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。
どうしてそうなるのですか?またどうすればいいのですか?
356:デフォルトの名無しさん
18/04/18 00:45:47.24 lRwbg5zI.net
バッファを上書きしないように気を付ける
357:297
18/04/19 18:13:16.20 o7VdbXqH.net
297ですが、WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に
投げることで無事解決しました。
WM_POINTER 系はスクリーン座標、マウス関連はクライアント座標という
不一致の整合性を取ることと、ペン操作中の描画がされないので
UpdateWindow を随時実行すること、あとは WM_POINTER 系の処理後に
DefWindowProc は実行しないことで快適に動作するようになりました。
(描画については元の作りが甘いのが原因かもですが)
>>321
色々とありがとうございました。
取りかかりが遅くなりましたが、おかげさまで対応できました。
358:297
18/04/19 18:16:39.64 o7VdbXqH.net
> WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に
> 投げることで無事解決しました。
なんか変ですね。
WM_POINTER 系処理時に、併せて適切な WM_LBUTTON や WM_MOUSEMOVE
も SendMessage or PostMessage で送信することで無事解決しました。
359:デフォルトの名無しさん
18/04/21 17:47:35.10 h8C5n4IB.net
surfaceのペンの筆圧などの情報を取得したい場合、何というキーワードで調べるべきですか?
360:片山博文MZ
18/04/21 17:53:19.89 9EumPI9y.net
>>356
SurfaceはWin32APIを使いません。代わりにWindows RTを使います。
361:デフォルトの名無しさん
18/04/21 18:05:27.99 h8C5n4IB.net
言葉足らずかも知れません。
surface proのペンの情報もwindows rtですか?
362:デフォルトの名無しさん
18/04/21 18:18:24.59 gTRsxGnx.net
>>353
直前までのスレの話題がそのまんまなんだがなあ
とりあえずこのへんを満遍なく読んでおきなさい
URLリンク(msdn.microsoft.com)
ちなみに筆圧/傾きは基本的にGetPointerPenInfo系
片山は馬鹿だから無視しとけ
363:デフォルトの名無しさん
18/04/21 18:24:09.27 h8C5n4IB.net
ありがとうございます。
364:デフォルトの名無しさん
18/04/26 08:01:02.21 qK0Tcf+m.net
>>356
筆圧取得できました。
ペンだけでなくタッチもわかったのはとてもありがたい。
今後の課題は筆圧の最大値の取得、座標のズレの解決だ。
lParamからx,y座標取得してスクリーン座標からクライアント座標に変えたけど最大4pxぐらいずれてる(気がする)
365:デフォルトの名無しさん
18/04/26 16:08:09.24 obVS20md.net
ありがとうございます。
366:デフォルトの名無しさん
18/05/09 10:38:44.80 urlL8t0C.net
URLリンク(docs.microsoft.com)
ハードが高杉て買えません
367:デフォルトの名無しさん
18/05/11 00:47:31.66 jtnkDrxN.net
WiXでディレクトリを作ってCreatorOwner(S-1-3-0)にアクセス権設定してみたら
プロパティのアクセス許可エントリにに"CREATOR OWNER"というグループが出てきた。
こんなの初めて見た。
368:デフォルトの名無しさん
18/05/11 10:36:48.86 eFEUpfi5.net
へ?
369:デフォルトの名無しさん
18/05/11 20:07:56.91 jtnkDrxN.net
saclsなんかでS-1-3-0を指定しても実在の所有者のSIDに置き換わるじゃん。そもそもそのためにあるわけだし。
ACLには入らないものかと思ってた。
370:デフォルトの名無しさん
18/05/11 21:00:03.68 KUxDXsAg.net
ん?
371:デフォルトの名無しさん
18/05/12 11:03:35.97 yo5m8R46.net
何十年も経ってるのに今更初めてとか
372:デフォルトの名無しさん
18/05/12 13:23:12.21 Wuy9HJPF.net
何十年てなんぞ?
373:デフォルトの名無しさん
18/05/14 00:22:00.59 VV/fGzO7.net
ゲームの効果音を鳴らすのにmciSendCommandで鳴らそうとすると
一瞬画面が固まるので別スレッドで再生するようにしたのですが改善せず固まります。
以下のサイトの別スレッドで動かす例も試しましたがメインループが1秒に1回しか実行されません。
URLリンク(eternalwindows.jp)
DirectSoundを使うしか画面が固まるのを回避する方法はないでしょうか?
374:デフォルトの名無しさん
18/05/14 08:42:54.37 YOvAeQk/.net
鳴らす毎に固まるん?
ロード画面とかでオープンだけ先にやっておいて
後は鳴らし終わったら最初にシークしてまた鳴らしたらいいんでない?
的外れてたらごめんな
375:367
18/05/14 09:10:04.81 Yo4sXSf8.net
すみません。自己解決しました。
キーが連続して入力されたと判定されないように
前回から0.1秒以下の間隔で入力されたキーを無視する部分で
レンダリングまで無視してしまっていました。
376:デフォルトの名無しさん
18/05/14 13:32:12.89 dnGRWxRE.net
>>367
waveout
377:デフォルトの名無しさん
18/05/14 15:03:48.05 YOvAeQk/.net
ズコー
378:367
18/05/14 19:29:13.78 TSV87Y/E.net
度々すみません。
音の再生で画面が固まらないようには出来たのですが、
オープン、シークを事前に行っておいても再生までに少し時間がかかってしまいます。
例えばクリックでクリック音を鳴らせるようにすると、クリックを連打した時に鳴らなくなってしまいます。
クリック音は1フレーム目から音が鳴るように調整済みで、高速化のためwavファイルにしてあります。
core i5 8250u, m.2 ssdの環境で最適化ビルドでも再生まで0.2秒以上かかります。
mcisendcommandを高速に動作させる方法はないでしょうか?
379:デフォルトの名無しさん
18/05/14 19:57:29.23 9wWfcYFS.net
MessageBeepでは?
380:デフォルトの名無しさん
18/05/14 22:23:19.23 Zf7UDWDq.net
sndPlaySoundでは?
381:デフォルトの名無しさん
18/05/15 08:42:15.75 RLKB0pPy.net
まさかのWM_LBUTTONUP?
382:デフォルトの名無しさん
18/05/15 09:35:21.30 iduN+0hu.net
>>372
ないんじゃない?
383:デフォルトの名無しさん
18/05/15 11:24:49.27 iNTYPTvx.net
20年近く前に設置されたお手軽APIにリアルタイム性を求めるのもな…
ゲーム用の効果音ならDirectXTKのAudio(XAudio2のラッパー)がお手頃かしら
384:デフォルトの名無しさん
18/05/16 03:14:40.15 52uBQuev.net
OpenALでもいいんじゃね?
385:デフォルトの名無しさん
18/05/18 06:39:21.09 KYXS7qiH.net
キーボードの入力だけを無効化するAPIを教えてください
BlockInputだとキーボードとマウスの両方が無力化されてしまうので。
386:デフォルトの名無しさん
18/05/18 07:22:41.68 JEElro2Y.net
そのものずばりなapiはないんじゃないかな
387:デフォルトの名無しさん
18/05/18 09:20:15.65 KYXS7qiH.net
ないじゃねーんだよアホ
だったらどうすりゃ実現できるのか教えろよ
388:デフォルトの名無しさん
18/05/18 09:36:45.73 JEElro2Y.net
うわあ
389:片山博文MZ
18/05/18 09:49:08.60 C170FFEJ.net
フィルタドライバ
390:デフォルトの名無しさん
18/05/18 09:56:15.34 crDPuGzZ.net
ローレベルフックでキーボード入力を捨てられた気が
391:デフォルトの名無しさん
18/05/18 10:17:50.27 mWyCAt5N.net
>>381
教えろよじゃねーんだよアホ
だったらどうなりゃ理想なのか教えろよ
指定したプロセスのみ無効化?
全てのプロセスで無効化?
BlockInputを試したという事は全てのプロセスで無効化でいい?
392:デフォルトの名無しさん
18/05/18 10:20:51.20 JEElro2Y.net
BlockInputはそのスレッドだけじゃないかな
おまえらこんな糞な奴のをよく答える気になるなw
393:デフォルトの名無しさん
18/05/18 10:29:53.45 PW/5KQgQ.net
キーボードを取り外す
展示とかに使うならこれだなw
394:デフォルトの名無しさん
18/05/18 11:03:10.17 /yTMyJuo.net
16bit時代にはそのものズバリのapiがあった
395:デフォルトの名無しさん
18/05/18 12:07:37.64 aDkqve5K.net
easyhookを使えるようにするにはどうすればいいのですか?
たすけて
396:デフォルトの名無しさん
18/05/18 12:21:16.66 JEElro2Y.net
チュートリアルにサンプルコード載ってるじゃん
397:デフォルトの名無しさん
18/05/18 12:23:26.03 aDkqve5K.net
ごめんなさい
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
398:デフォルトの名無しさん
18/05/18 12:40:49.02 JEElro2Y.net
ducumentationにインストール方法書いてあるじゃん
399:デフォルトの名無しさん
18/05/18 12:53:35.86 aDkqve5K.net
どれ?。。
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
400:デフォルトの名無しさん
18/05/18 12:55:27.82 JEElro2Y.net
ducumentationからコピペ
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
401:デフォルトの名無しさん
18/05/18 12:59:51.80 mWyCAt5N.net
おまえこんなスレチなのをよく答える気になるなw
402:デフォルトの名無しさん
18/05/18 13:06:44.09 aDkqve5K.net
ごめんなさい
どこいけばいいの?
403:デフォルトの名無しさん
18/05/18 13:26:58.25 mWyCAt5N.net
あるならEasyHookをつかってるプログラムのスレ
無いなら入手元良く見る
404:デフォルトの名無しさん
18/05/21 14:45:12.74 J624wk10.net
keymapでも壊してみたらいいんじゃね?
405:デフォルトの名無しさん
18/05/21 15:51:07.84 pTo/71V7.net
壊すのも元に戻すのも再起動必要になるだろ
406:デフォルトの名無しさん
18/05/23 19:14:45.20 Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
407:デフォルトの名無しさん
18/05/24 10:37:52.55 cPlRxlDn.net
IAVAJ
408:デフォルトの名無しさん
18/05/29 22:34:39.42 7/wI9AnP.net
Windows10で仮想デスクトップを使った場合
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
409:デフォルトの名無しさん
18/05/30 07:12:33.93 tkaPgK/f.net
そらgetdcの引数は仮想デスクトップ番号じゃないかならなw
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
410:デフォルトの名無しさん
18/05/30 07:34:07.95 VLAeNwdW.net
アクティブじゃない仮想デスクトップにあるUWPアプリとか
サスペンドするようにもなってるしDWM的に無理じゃないかしら
411:デフォルトの名無しさん
18/06/01 04:15:17.48 LQ78zvmu.net
このスレがまだあってよかった。
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
412:405
18/06/01 04:17:20.03 LQ78zvmu.net
すまそ、変な書き方をした。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
413:放置された蟻人間
18/06/01 04:33:40.82 p/Dhco7s.net
登録されたら、文字列の内容が記録されるから、ローカル変数で結構毛だらけ。
414:405
18/06/01 08:42:09.72 LQ78zvmu.net
>>407
ご回答ありがとうございます、了解です(>∀<;)
415:デフォルトの名無しさん
18/06/13 19:44:17.74 lSIEjw1a.net
declspec dllexport使ってなかったから気づかなかったけど
x64で仕様変わったんだな
416:デフォルトの名無しさん
18/06/13 19:53:03.95 08JTaAbh.net
呼び出し規約が?
417:デフォルトの名無しさん
18/06/13 21:31:58.11 lSIEjw1a.net
x86だと先頭にアンダーバーが 後ろに@引数バイト数がついてたけど
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
418:デフォルトの名無しさん
18/06/14 00:37:48.44 CDT3Iung.net
URLリンク(msdn.microsoft.com)
これのことか。
419:デフォルトの名無しさん
18/06/14 02:49:39.56 zhf22BrY.net
Cの話なのね
420:デフォルトの名無しさん
18/06/14 09:33:49.07 0LV14Koi.net
++でも同じだよ。結局使うのはc形式なんだから
421:デフォルトの名無しさん
18/06/16 12:34:33.29 eoVHJNOw.net
Windows7でRemoveMenu関数を使ってコマンドプロンプトのクローズボックスを無効化したあと
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
422:デフォルトの名無しさん
18/06/16 12:41:21.25 fQgtrTpq.net
cmdが内部で特殊な処理してない限りそんなこと起きないと思うんだけど・・
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
423:放置された蟻人間
18/06/16 13:09:31.09 Iux2O+3t.net
RemoveMenu呼び出しの周辺のコードさらせ。
424:デフォルトの名無しさん
18/06/16 16:12:48.28 IDYLbmOn.net
コマンドプロンプトやPSのコンソールの実装はかなり特殊だよ
1ウィンドウと同じに考えてはいけないと思ってる
425:デフォルトの名無しさん
18/06/16 16:48:55.99 fQgtrTpq.net
本当かよっと思って試しにやってみたら何のトラブルもなく閉じるだけ消えてプロパティ開けるぞ
426:デフォルトの名無しさん
18/06/20 14:47:03.73 XFilFgQX.net
LOGFONTのlfUnderlineを設定したフォントで文字を描画した際、下線が引かれますが、
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
427:デフォルトの名無しさん
18/06/20 14:57:53.57 OnxnZInx.net
つまりアンダーラインが相対的にどこに来るかを指定してる属性を取りたいっていう質問でしょうか?
428:デフォルトの名無しさん
18/06/20 15:05:42.83 XFilFgQX.net
>>421
そういう感じです。
CreateFontIndirectで作成したフォントを使って文字を描画したあと、
その文字の位置に自分で下線を引きたいと思っています。
429:デフォルトの名無しさん
18/06/20 15:06:59.64 XFilFgQX.net
追記ですが、理想としてはlfUnderlineのときと
全く同じ位置や太さで描きたいと思っています。
430:デフォルトの名無しさん
18/06/20 15:10:10.67 4KfCtndu.net
baseline memo
URLリンク(d.hatena.ne.jp)
URLリンク(marupeke296.com)
URLリンク(d.hatena.ne.jp)
URLリンク(k3tec.net)
URLリンク(chokuto.ifdef.jp) 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
431:デフォルトの名無しさん
18/06/20 15:34:01.33 mFWpedZK.net
質問者じゃないけど、フォント周りのコードを弄ってるときに
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
432:菩薩@太子
18/06/21 20:10:03.98 6ce+aANS.net
汝らよ、汝らはWin32APIに関してわからないことがあったら、このスレで質問しなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
433:デフォルトの名無しさん
18/06/21 20:18:23.12 pkPeGiXN.net
さすれば、弥勒菩薩が降臨するまでに回答が得られるであろう
434:デフォルトの名無しさん
18/06/22 06:16:52.85 kyYAMp48.net
芽っていう意味だよ
435:デフォルトの名無しさん
18/06/22 08:59:29.47 4s+1pzSQ.net
>>423
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
436:デフォルトの名無しさん
18/06/22 20:00:29.48 HpQmxb21.net
DirectWriteだとカスタム描画用にIDWriteTextRenderer::DrawUnderlineというコールバックがあるで
437:デフォルトの名無しさん
18/06/22 20:21:26.56 vo7No3CM.net
もしかして GetTextMetrics で取得した TEXTMETRIC の tmAscent, tmDescent
で分かるんじゃないの?
438:415
18/06/23 09:44:08.76 UVw2sBCh.net
>>416-419
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニュー
439:をリセットして Windows の既定の状態へ戻します。」と 書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz HMENU hmenu; /* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */ GetSystemMenu(GetConsoleWindow(), TRUE); /* コンソールメニューハンドルのコピーを取得する */ hmenu = GetSystemMenu(GetConsoleWindow(), FALSE); /* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */ if (!(button_stat & 0x01)) RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND); /* 以下省略 */
440:さまよえる蟻人間
18/06/24 08:52:07.32 jlx8CiNF.net
来たよ!!!
URLリンク(twitter.com)
URLリンク(twitter.com)
441:デフォルトの名無しさん
18/06/24 09:12:16.31 7l22t7T7.net
また片山の宣伝かよ
442:放置された蟻人間
18/06/24 10:11:04.49 Ki1yi8uD.net
一応、Win32APIで書いたんですけど。
443:デフォルトの名無しさん
18/06/24 10:53:22.32 7l22t7T7.net
そういう考えで今まで何度も宣伝してたのかw
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
444:デフォルトの名無しさん
18/06/24 10:54:03.26 QdNeiEeM.net
あ? なんだよ「C++11に準拠してarray::operator[]で範囲チェックしろ」とかラリってる糞コテは片山かよ
445:放置された蟻人間
18/06/24 11:09:06.07 Ki1yi8uD.net
>>436
リソースエディタがWin32APIに関係ないって?
>>437
誤解です。関係ない話を勝手に結び付けないで下さい。
446:放置された蟻人間
18/06/24 11:19:47.20 Ki1yi8uD.net
5ちゃんねるは、広告料と浪人の収益によって成り立っています。
447:デフォルトの名無しさん
18/06/24 11:21:10.11 7l22t7T7.net
関係ないよ
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
448:放置された蟻人間
18/06/24 11:23:27.52 Ki1yi8uD.net
コマーシャルの仕組みについて皆さまのご理解をお願い致します。
449:放置された蟻人間
18/06/24 11:24:22.52 Ki1yi8uD.net
>>440
お前の中ではな。
450:放置された蟻人間
18/06/24 11:39:26.10 Ki1yi8uD.net
お前ら、Win32を知り尽くしているんだろ?
だれかReactOSで日本語入力できるようにしてくれよ。
451:41
18/06/24 11:48:47.83 iIAhljkC.net
Win32Apiで何ができるかをを知り尽くしているが
Win32Apiが何をしているのかは何も知らない
452:デフォルトの名無しさん
18/06/25 01:12:02.96 R9m7k+sg.net
if(sa::sendkey[cnt]!=NULL){
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
453:デフォルトの名無しさん
18/06/25 07:03:38.33 euNVlzH4.net
keybd_eventもしくはsendinput使う
454:デフォルトの名無しさん
18/06/25 18:46:39.01 oo6U7F08.net
�非アクティブウィンドウのままがいいならこれでどうでしょう
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notep
455:ad", NULL); if (hWnd == NULL) { return; } HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" ); if (hEdit == NULL) { return; } BYTE kstats[256], shiftstat; DWORD srctid, dsttid; srctid = GetCurrentThreadId(); dsttid = GetWindowThreadProcessId(hEdit, NULL); AttachThreadInput(srctid, dsttid, TRUE); GetKeyboardState(kstats); // 実行前の状態を保存 shiftstat = kstats[VK_SHIFT]; kstats[VK_SHIFT] |= 0x80; // shift を押下状態に SetKeyboardState(kstats); // 状態を更新 SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG kstats[VK_SHIFT] = shiftstat; SetKeyboardState(kstats); // 実行前の状態に復帰 }
456:デフォルトの名無しさん
18/06/25 20:01:44.94 R9m7k+sg.net
レスありがとうございます。
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
457:デフォルトの名無しさん
18/06/25 20:03:32.63 R9m7k+sg.net
ちょっと>>447さんの方法も試してみます。
有り難うございます。
458:放置された蟻人間
18/06/25 20:32:07.52 RnBLs+IR.net
Ctrl+Alt+Delは、セキュリティで保護されているんじゃ中田家?
459:デフォルトの名無しさん
18/06/25 21:13:56.50 R9m7k+sg.net
>>447さんの方法で無事うごきました。
ありがとうございましたm(_ _)m
460:デフォルトの名無しさん
18/06/25 21:31:41.84 f6L/NlJ0.net
SetActiveWindow の代わりに SetForegroundWindow を試してみたら?
461:デフォルトの名無しさん
18/06/25 21:35:50.33 I2eYxQBJ.net
blinkWindowtop
462:デフォルトの名無しさん
18/06/30 18:06:34.48 RTJdtcUh.net
言いたかないがCOMでマジで糞だなと思うのは
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
463:デフォルトの名無しさん
18/06/30 18:25:36.41 SPR6zsx0.net
別スレッドにしたら余計危ないだろw
464:デフォルトの名無しさん
18/06/30 19:40:38.36 RTJdtcUh.net
いやまじでさ
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
465:デフォルトの名無しさん
18/06/30 19:45:02.11 RTJdtcUh.net
ただスレッドモデルのせいでメッセージループが回ってるのかどうかは良くわからないんだがな
原因は分からんが勝手にメッセージループ回すのはマジで迷惑だからやめてほしい
何がどの順で実行されるか分からなくなるから
466:デフォルトの名無しさん
18/07/04 22:09:52.47 gFgZc5FG.net
548
467:デフォルトの名無しさん
18/07/05 06:45:33.22 uNMy++3S.net
Direct2D いいね。
4K画像もヌルヌルに縮小拡大表示できる。回転や鏡像反転も大丈夫だった。
468:デフォルトの名無しさん
18/07/06 20:02:27.82 xJt/yCDq.net
1台のPCにマウスAとBを接続し、
マウスAは普通のマウスとしてWindowsで、マウスBを特定のプログラムのみで使いたいのですが
どのようにすればよいでしょうか?
469:デフォルトの名無しさん
18/07/06 20:26:18.50 uwYbJKCZ.net
特定のプログラムのみで使うってのをどういう意味にするかだな
フィルタードライバ作ってBを潰すと同時に操作をアプリに送って、アプリから特定のプログラムへマウスメッセージでも送るとか
470:デフォルトの名無しさん
18/07/08 20:51:40.89 O/180cHX.net
Low-Level Mouse HookでデバイスIDは取れなかったと思うし
ソフトでやる場合ドライバまで降りるしかないね
471:デフォルトの名無しさん
18/07/08 23:36:33.06 aNDdpi7h.net
GetGlyphOutlineでサロゲートペアの文字のビットマップを取得するには
どうすればいいでしょうか
普通の2バイトの文字はできます
調べると、グリフインデックスを取得して~みないな内容は
ぽつぽつ見つかったのですがよくわかりません
コピペして適当に真似てみたのですが、GGO_GLYPH_INDEXを指定すると
謎の小さいデータ(abc間隔とかいうやつでしょうか)が返ってくるだけです
これまた試しにGGO_GRAY8_BITMAP | GGO_GLYPH_INDEX とやってもサイズは0でした
472:デフォルトの名無しさん
18/07/09 17:38:45.00 1p1eFn95.net
INDEXをもらったら本体を取りに行く
473:デフォルトの名無しさん
18/07/09 21:03:04.88 xF/N3z+3.net
>>464
それはINDEXから直接アウトラインデータを持ってきて自前で処理するという意味でしょうか
本体を取りに行くというのがわからないです
474:デフォルトの名無しさん
18/07/10 19:32:28.56 Q7aC7GqH.net
カーネルモードからユーザーモードアプリにデータを渡すいい方法ないかな?
イメージとしてはマウスのボタンを押したらその情報をアプリが受け取るとか、ネットワークメッセージを受信したらそれをアプリに渡すというもの
CreateEventの通知と共有メモリ使えばできるけど、もっといい方法ないかな
475:デフォルトの名無しさん
18/07/15 04:33:45.21 Fuh1W0mR.net
>>463
これですがインデックス取得後、GGO_GRAY8_BITMAP | GGO_GLYPH_INDEXで
普通にサロゲートペアのビットマップを取得することが出来ました
原因は単にテストに使用していたフォントがサロゲートペアに対応してなかっただけでした…
もしそういうフォントの場合は
自分で取得前に代替フォントに切り替えるという認識であってますか
それともどこかで指定する方法はあるんでしょうか
476:デフォルトの名無しさん
18/07/15 07:18:20.84 F1eG7opL.net
>>466
> もっといい方法ないかな
「いい」はあなたの脳内でのみ定義された概念なので他人には答えようがない。
477:デフォルトの名無しさん
18/07/15 07:30:49.51 8618Mha6.net
>>468
あなたが考える「いい」方法を教えてって意味でしょwww
478:デフォルトの名無しさん
18/07/15 07:36:07.14 iXIp3nZ5.net
カーネルモードでFDDに保存
ユーザーモードはFDDの中身を定期的に読む
これで良い
479:デフォルトの名無しさん
18/07/15 08:27:47.61 GnA/ld69.net
>>469
答えたらそれは俺の「いい」と違うって言われるだけだろ
480:デフォルトの名無しさん
18/07/15 08:54:59.84 JD67P8Kl.net
プログラマなんてアスペキチばっかだから質問を読み取ってくれないのはよくあることよ
それにDDKスレ見りゃ分かるが質問は海外ですべき。国内じゃ回答つかん
共有メモリだとデータ欠落がありえるから(受け渡し済みデータをメモリ内から消す仕組みを作るのが大変だから)
FIFOにためて通知後にdeviceiocontrolで読み出させる
481:デフォルトの名無しさん
18/07/15 09:02:55.50 TNInTYOo.net
いい方法はわからないが正しい方法はあるだろう
システムはある方法が正解になる前提で全体ができている
それに逆らうと別の局面で何か問題が発生する
482:デフォルトの名無しさん
18/07/15 14:57:39.97 F1eG7opL.net
煽りぬきで、まず「いい」の定義から。
信頼性を優先するのか、速度を優先するのか、ソースコードの使いやすさを優先するのか、メモリ消費を抑えることを優先するのか、等。
483:デフォルトの名無しさん
18/07/15 15:00:46.43 JD67P8Kl.net
用途が挙げられてるからそこから読み取れってことよ
その用途で実装するならこういう処理の方が「いい」となる
484:デフォルトの名無しさん
18/07/15 15:19:18.62 F1eG7opL.net
質問者や発注者は、何を優先し、何を犠牲にする覚悟があるかを明確にすることが必要。
それは金であったり時間であったりする。お前らの工数と人件費を犠牲にしたい場合が多い。
485:デフォルトの名無しさん
18/07/15 15:24:35.14 blM5pGUx.net
まあ、「いい」は人それぞれな部分はあるかもしれないけど、そこやこだわりが書かれて無いならテキトーで良いんじゃね?
「お手軽な」という程度の解釈で。
486:デフォルトの名無しさん
18/07/15 15:38:50.77 F1eG7opL.net
発注側が受注側にわざと曖昧な要件を出して、受注側が提案したアイデアを無償で手に入れるのも重要な技術。
いかにしてコストを相手に押し付けるかが重要になる。
487:デフォルトの名無しさん
18/07/15 16:39:00.88 F1eG7opL.net
相手の自尊心を刺激しつつ、情報をタダで引き出す技術は極めて重要。省資源の基本。
488:デフォルトの名無しさん
18/07/15 18:54:11.43 z9dis41F.net
>>471
だよな
489:デフォルトの名無しさん
18/07/15 19:02:18.64 /PIdnGOp.net
逆に言えば「CreateEventの通知と共有メモリ」ではダメな理由は何なのか?
当人(>>466)が思うダメな理由が判れば、それを改善するものが「いい方法」なんじゃね?
490:デフォルトの名無しさん
18/07/15 19:29:32.13 JD67P8Kl.net
ネットワークモニターを共有メモリで実装すること考えたらダメと感じる理由分かるだろうよ
491:デフォルトの名無しさん
18/07/15 19:54:05.79 JjtknQT5.net
・・・・・この感覚・・・・・・感じるぞ・・・・・・
492:デフォルトの名無しさん
18/07/16 09:41:18.75 Tl1DHPio.net
memory mapped file
493:デフォルトの名無しさん
18/07/16 11:29:16.36 fjsGqhw7.net
共有メモリは誰が最後に開放するか問題があった気がする
代表プロセス(サービスとか)が全部やることにすればいいんだろうけど
494:デフォルトの名無しさん
18/07/17 09:35:44.28 3FwnZhxD.net
Win32APIでHDCに描画していくルーチンでPDFを作成できて、
プリンタドライバではなくDLLなどで提供されているものはありませんか?
ユーザーが印刷でAcrobatなどを選択するのではなく、専用のコマンドを用意して、
DLLのAPIからHDCを作成してそこに描画していく、という方法を探しています。
495:さまよえる蟻人間
18/07/17 11:31:49.15 iiy4NiaP.net
pdfium
496:さまよえる蟻人間
18/07/17 11:36:41.73 iiy4NiaP.net
ごめん、pdfiumは表示ができるけどPDF作成はできないんだった。
497:デフォルトの名無しさん
18/07/17 14:53:09.38 +kxKOOfA.net
HDC って描いてるからダメなんだろうけど
win32api じゃなくて良ければ
matplotlib の dll
498:デフォルトの名無しさん
18/07/17 15:02:10.66 Zb0J/52v.net
>>486
いっそpdfを自分でゴリゴリ作るライブラリを作って公開しよう
499:デフォルトの名無しさん
18/07/17 19:29:45.08 8vhfTmzU.net
PDFつくるの割と簡単だからな。読むのは難しいが
500:さまよえる蟻人間
18/07/17 21:32:24.00 o/CsZXJt.net
PDFは、Win32APIの範疇じゃないから、HDCにこだわる必要はないと思う。
どうしてもHDCで描くなら、ビットマップを使うことになる。
501:デフォルトの名無しさん
18/07/17 21:46:38.93 zCwWixNA.net
>>486
libharu
手書きPDF (URLリンク(www.kobu.com))
502:デフォルトの名無しさん
18/07/17 23:12:07.09 Zb0J/52v.net
どうしてもHDCからデータを取る必要があるのなら、pdfじゃなくてemfはダメなの
503:486
18/07/18 09:13:26.55 b6TTATjh.net
やっぱりこういうライブラリは無いものなんですかね。
プリンタのHDCに対する印刷処理は実装済みで、
普通にAcrobatなどを選んで印刷すればPDFは作成できるので、
PDF作成用のHDCさえ作れれば、Acrobatなどに依存せずに、
今の処理でPDFを作成できるんじゃないかと思った次第です。
もちろん、プリンタのHDCに描画する処理とは別に、
PDFを作成する処理を新たに作れば可能なんでしょうけど、
今の印刷結果と一致させるもの大変そうだと思いました。
504:デフォルトの名無しさん
18/07/18 09:30:56.80 XytxFrpz.net
HDC→bmp→手書きPDFの調子で画像埋め込みpdf生成
これで終わり。1日あればできるでしょw
505:デフォルトの名無しさん
18/07/18 09:32:44.92 b6TTATjh.net
>>496
説明不足ですいません。
それだと文字がコピーできなくなってしまいます。
506:デフォルトの名無しさん
18/07/18 10:32:30.08 w8OpeSfX.net
>>469
じゃぁそう書けばいいじゃん
507:デフォルトの名無しさん
18/07/18 10:35:38.58 w8OpeSfX.net
>>497
まさにここに>>471の実例がw
508:デフォルトの名無しさん
18/07/18 10:49:35.82 XytxFrpz.net
HDCをDLLから作れないと思う。プリンタドライバ入れないと無理じゃないかな
それでもプリンタドライバを入れたくない&HDC使いたいってなら、手書きPDFしかないと思う
HDC使う処理を全てフックして手書きPDF処理に渡して生成
フォントは埋め込めるし、当然座標指定もできるから見た目を合わせるのは難しいことじゃない
509:さまよえる蟻人間
18/07/18 11:39:33.38 2uaoDzyj.net
URLリンク(www.colorpilot.com)
510:デフォルトの名無しさん
18/07/18 17:17:05.71 r2tNZQmN.net
EMFがPDFになってもうれしくないんだよな
511:デフォルトの名無しさん
18/07/18 19:00:09.03 1yGq4zZr.net
嬉しいとか悲しいという感情はしまい込め
512:さまよえる蟻人間
18/07/18 19:44:08.79 IL3iPWys.net
EM_DOCUMENT_AddPageFromMetaHandleというメソッドがあるみたいだから試してみては。
$4995-が高いかどうかは自分で考えな。
URLリンク(github.com)
というものもある。
513:さまよえる蟻人間
18/07/18 21:34:56.01 2uaoDzyj.net
プロプロイエタリっぽいな。日本人にはまだ未踏の分野みたいだ。
514:デフォルトの名無しさん
18/07/21 18:28:47.97 TBQGTmI1.net
IE(11)のタブってspy++で見ると、タブコントロールじゃないように見えるけど
これ自前かな?
タブの入れ替えの時も、タブがするすると動いて入れ替わる動作だし
これってタブコントロールだと無理だよね?
基本的に、IE,Edge,Chrome,Firefox,Opera,Vivaldi等のブラウザのタブって
タブコントロールじゃなくて、自前で描画しているのかな?
515:デフォルトの名無しさん
18/07/21 22:53:51.14 diLgD0pr.net
基本的に自前だよ
516:デフォルトの名無しさん
18/07/22 17:11:05.29 0LoJ4eZK.net
char *p = "hello";
を書くと、「型 const char * の値を使用して型 char * のエンティティを初期化することはできません 」
と表示されるんだが、どうすればいいんだ?
CQ出版社の『Win32 API完璧マスタ』189ページにも書いてある構文なのに・・・
517:デフォルトの名無しさん
18/07/22 17:13:16.23 Xbb1Ck+x.net
スレタイ
518:デフォルトの名無しさん
18/07/22 17:14:28.87 LiIRy0eu.net
char q[] = "hello";
char *p = q;
519:デフォルトの名無しさん
18/07/22 17:14:46.72 V5NblbDe.net
そんなのはCスレで聞けよ
char p[] = "hello";
520:デフォルトの名無しさん
18/07/22 17:15:10.69 LiIRy0eu.net
こうか
char q[] = "hello";
char *p = (char *)q;
521:デフォルトの名無しさん
18/07/22 17:20:17.81 0LoJ4eZK.net
これをTextOutしたいんだが・・・
TextOut(hdc,10,10, p, strlen(p) );
と書いてもエラーになってしまうし、
pをqに変えてもエラーが出る
522:デフォルトの名無しさん
18/07/22 17:26:49.45 0LoJ4eZK.net
>>513
「型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません
BOOL TextOutW(HDC,int,intLPCWSTR,)int: 引数 4 を char[6] から LPCWSTR へ変換できません。」
って出てしまう。
CQ出版社の本には、
「TextOut(ps.hdc,10,10, p, strlen(p) ); 」って書いてあるのに。
523:デフォルトの名無しさん
18/07/22 17:27:01.83 +kDBWEhy.net
>>513
>508のエラーなのか TextOut のエラーなのか
524:デフォルトの名無しさん
18/07/22 17:29:03.13 +kDBWEhy.net
あー、面倒なので正確には調べないが、文字コードセットかソースファイルのコードを調べて
全部マルチバイト文字にでも統一すれ
525:デフォルトの名無しさん
18/07/22 17:30:27.51 V5NblbDe.net
コンパイラのオプションでユニコードを使うを無効化しろ
もしくはTCHARとかTextOutWとかTextOutAとかその辺でぐぐれ
526:デフォルトの名無しさん
18/07/22 17:33:51.95 0LoJ4eZK.net
>>515
TextOutの際に、いちいち
TextOut(hdc, 10, 10, TEXT("hello"), 5);
と文字列と字数を毎回入力したくないし、
表示文字を"good morning"とか "good bye" とか違う字数の文字列にも置き換えたいんだ。
だから、変数を使って文字列をpとかqとかに置き換えたいんだけど、そこで
型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません 」
とかのエラーが出てしまう。
527:デフォルトの名無しさん
18/07/22 17:36:00.67 V5NblbDe.net
charは1バイト文字の型
LPCWSTRは2バイト文字の型
ものが違うんだよ
ってかwin32の本ならそのくらい書いてあるだろ。もし書いてないならゴミだから捨てろw
528:デフォルトの名無しさん
18/07/22 17:38:56.62 2bRdLxLs.net
TCHAR p[] = TEXT("hello");
TextOut(hdc, 10, 10, p ,lstrlen(p));
529:デフォルトの名無しさん
18/07/22 17:45:11.99 2bRdLxLs.net
>>518
後から文字列を変更するのであれば、初期化の時に配列の要素数に注意
#define MAX_LENGTH 256; // 要素数に注意
TCHAR p[MAX_LENGTH] = TEXT("hello");
530:デフォルトの名無しさん
18/07/22 17:55:50.38 SZ8yn981.net
>>516-517
今から覚える人に非推奨のMBCS版を勧めるのはどうかと。
VSでも2015辺りからMBCS版のバグを治さず放置してたりするのだし。
531:デフォルトの名無しさん
18/07/22 18:02:40.99 0LoJ4eZK.net
「TCHAR p[MAX_LENGTH] = TEXT("hello");」
で「式が必要です」ってエラーが出てしまうし。
「TCHAR p[256] = TEXT("hello");」って直接に数値指定するとエラーメッセージが消えるから、
なんかdefineが働いてないっぽい
532:デフォルトの名無しさん
18/07/22 18:09:58.01 lnBo9wWY.net
>>521
「256」の後の「;」は不要
533:デフォルトの名無しさん
18/07/22 18:17:18.42 2bRdLxLs.net
>>523
すまんね
流石に気付くだろうと思って黙ってたけど、define文の末尾にうっかり余計なセミコロン付けてしまっているので注意してね
とりあえずいまどきの環境なら、charはTCHAR、char *はLPTSTR、const char *はLPCTSTRを使い、リテラルはTEXTマクロで囲って
文字列操作関数はl付きの関数strlenならlstrlen、strcpyならlstrcmpなどに置き換えればほとんど問題はないよ
534:デフォルトの名無しさん
18/07/22 18:18:05.39 2bRdLxLs.net
被った、
指摘ありがとう>>524
535:デフォルトの名無しさん
18/07/22 18:19:49.25 0LoJ4eZK.net
いろいろと教えてもらい、スレの皆様、ありがとうございます。
自分、最終的にゲームっぽいのを作りたくって、
それで会話メッセージが何百個もあるから、どうしても文字列を変数にする必要があるんです。
エラーコード↓です。
「
TCHAR p[256] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
p = TEXT("good morning");
TextOut(hdc, 30, 30, p, lstrlen(p));
」
こんな感じで、1つのpを使いまわしたいんです。
strcpyかとも思ったんですけど、「strcpy(p, TEXT("good morning") );」でも
「char*のパラメーターと互換性がありません」ってエラーが出て、なんか違いそうだし・・・
ググッても、Win32APIで1つの文字列変数を複数の文字列に何度も書き換える事例が見つからなくて、困ってます。
536:デフォルトの名無しさん
18/07/22 18:20:26.15 2bRdLxLs.net
>>525でstrcpyとstrcmpがごっちゃになってた、訂正
537:デフォルトの名無しさん
18/07/22 18:20:35.42 V5NblbDe.net
>>522
でもなこのレベルだとstrcpyすらできずに詰むぞw
538:デフォルトの名無しさん
18/07/22 18:24:33.44 2bRdLxLs.net
>>527
多分 lstrcpy でいける
539:
18/07/22 18:26:03.58 +jM3tBOE.net
>>527
私なら(char *) にキャストしてしまいますね…これは悪手ですが
540:デフォルトの名無しさん
18/07/22 18:26:33.56 0LoJ4eZK.net
解決しました!こうですね
「
TCHAR p[MAX_LENGTH] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
lstrcpy(p, TEXT("good morning") );
TextOut(hdc, 30, 30, p, lstrlen(p));
」
じぶん "lstrcpy" の存在を知りませんでした。
買ってたCQ出版社の本が2001年の本で古くって、
それで、ここら辺の話題が見当たらなくって、地元書店にWin32APIの本が無くって、
困ってました。月曜日に、銀行からカネを引き出して、都会の本屋に買い物に行こうかと思ってたところです。
質問に回答してくださった皆様、ありがとうございます。
541:デフォルトの名無しさん
18/07/22 18:26:39.79 lnBo9wWY.net
>>527
中身を直接書き換えないならLPCTSTRで十分
LPCTSTR p = TEXT("hello");
p = TEXT("good morning");
542:デフォルトの名無しさん
18/07/22 18:36:11.82 2bRdLxLs.net
>>533
LPTSTRなら可能だけどLPCTSTRだと無理じゃないかな
543:デフォルトの名無しさん
18/07/22 18:57:59.75 Xbb1Ck+x.net
なぜ?
544:デフォルトの名無しさん
18/07/22 19:17:54.18 LiIRy0eu.net
>>513
TextOutA使え
お前にTextOut/TextOutWはまだ早い
545:デフォルトの名無しさん
18/07/22 19:47:40.34 lnBo9wWY.net
>>534
無理と決め付ける前に、まずは試してみるべきじゃないかな。
546:デフォルトの名無しさん
18/07/22 19:49:56.11 Rc8bc+T5.net
>>507
やっぱり自前ですか。
ベースにコモンコントロールのタブコントロール使ってるかと思ったら
どのブラウザも完全にオリジナルのタブコントロールを作ってる
みたいなんですよね。
これだけで一仕事だ、せめて手を抜く方法が無いものか。
547:デフォルトの名無しさん
18/07/22 20:07:22.02 V5NblbDe.net
コモンコントロールでつくりゃいい
何も真似することないでしょ
548:デフォルトの名無しさん
18/07/25 12:14:32.39 ObNghvXR.net
>>508
レスをつけてたここの住人はある意味、意地悪だなw
508よ、VS2017とか使ってるなら、プロジェクトのプロパティから、
構成プロパティ -> C/C++ -> 言語 の画面に、準拠モードという項目があるので、準拠モードをオフにしてみろ。
コンパイラが悪さしているだけだw
たとえば、準拠モードONだとこのコードは、こんなエラーになる。オフなら無事コンパイルできる。
#include <stdio.h>
int main(){
char *p = "hoge\n";
printf(p);
return 0;
}
1>------ ビルド開始: プロジェクト: test0001, 構成: Debug Win32 ------
1>test0001.cpp
1>d:\test0001\test0001\test0001.cpp(3): error C2440: '初期化中': 'const char [6]' から 'char *' に変換できません。
1>d:\test0001\test0001\test0001.cpp(3): note: 文字列リテラルからの変換では const 修飾子が失われます (/Zc:strictStrings を参照)
1>プロジェクト "test0001.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
549:デフォルトの名無しさん
18/07/25 12:16:39.87 SfO6vmHU.net
>コンパイラが悪さ
最低だなこいつ
550:540
18/07/25 12:19:48.04 ObNghvXR.net
マルチバイト文字の設定しろって書き忘れた。
構成プロパティ -> 全般 -> 文字セット
マルチバイト文字セットを使用する
の項目をセットしておけ。
古い本ベースで作るならそっちで十分だ。
慣れて来たらunicode文字セットにしてwchar_tとか使えばいいよ。
551:デフォルトの名無しさん
18/07/25 12:21:31.72 ObNghvXR.net
>>541
本読んでる初心者相手に、難しいこと言って混乱させるよりはいいだろう。
まずは動くようにするのが先じゃね?w
552:デフォルトの名無しさん
18/07/25 12:42:55.89 BhmZZaV3.net
コンパイラとか言う野郎最悪だな
そんなもんに頼むなよ
553:デフォルトの名無しさん
18/07/25 13:07:44.22 yh3zla7+.net
だな
ハンドアセンブルとかハンドコンパイルしろ
554:デフォルトの名無しさん
18/07/25 13:11:46.60 ufwVuEFI.net
URLリンク(www.suruga-ya.jp)
555:デフォルトの名無しさん
18/07/25 13:15:34.98 bHme1j3N.net
>>542
意地悪も何も、そのレスをとっくにしとるんだが
556:
18/07/25 19:02:54.19 2d5RfbzO.net
cygwin/mingw-gcc で文句がでなければ、ほぼ問題ない、としています
557:デフォルトの名無しさん
18/08/06 21:23:32.62 CcPxoO2Y.net
成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPIって何なんだよクソ野郎め
558:デフォルトの名無しさん
18/08/06 21:32:35.68 1U9qnNco.net
getlasterror
559:デフォルトの名無しさん
18/08/06 21:52:26.61 ID4O2Vgr.net
もちろんそんなの知ってるけど、GoがWindows API用に生成してくれるコードが返り値をチェックしちゃっててしばらくハマった
560:デフォルトの名無しさん
18/08/06 23:33:15.82 rktgM2el.net
>成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPI
ちなみにどのAPI?
561:デフォルトの名無しさん
18/08/06 23:58:21.60 ID4O2Vgr.net
GetClassLongPtrとか
562:デフォルトの名無しさん
18/08/07 00:48:58.54 QZJ4WUVF.net
Goがクソなだけじゃん
リファレンス読んでコード生成しろよバーカ
563:デフォルトの名無しさん
18/08/07 05:00:55.97 OlmXtX1U.net
>>549-550
「失敗が返って来たときは関数を呼びます」
だっけ
564:デフォルトの名無しさん
18/08/07 13:27:12.44 ldpX++7o.net
>>549
「失敗したら0を返します」の対偶は「非ゼロが返ったら成功している」だ。
「成功したら非ゼロを返す」ではない
これが分からない人には if文は書けない
565:デフォルトの名無しさん
18/08/07 14:31:10.43 AJOeK/rw.net
>関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
これな
566:デフォルトの名無しさん
18/08/07 21:06:57.68 BoePinTI.net
>>557
>>拡張エラー情報を取得するには、 関数を使います。
これがわからない人には、プログラムは書けない
567:デフォルトの名無しさん
18/08/07 21:15:30.99 vzugDPjm.net
>>554-555
>リファレンス読んでコード生成しろよバーカ
>失敗が返って来たときは関数を呼びます
しばしば、動詞の主語がないせいで誰が対象なのか、わからないことが多い。
バカなのは誰なのか。
関数を呼ぶのは誰なのか、関数が関数を勝手に呼んでくれるのか。
的な。
568:デフォルトの名無しさん
18/08/07 21:19:02.18 +HmVRhEr.net
馬鹿なのは読み手に決まってるだろww
569:デフォルトの名無しさん
18/08/07 23:23:50.41 ca/GX3OS.net
まさかと思うけど英語読めないとか?
戻り値
関数が成功すると、要求した値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
URLリンク(msdn.microsoft.com)
Return value
Type: ULONG_PTR
If the function succeeds, the return value is the requested value.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
570:デフォルトの名無しさん
18/08/07 23:39:40.91 95G7jtf/.net
訳が全然ちげぇ、ってネタだろ。
571:デフォルトの名無しさん
18/08/07 23:44:38.95 JmB8aria.net
う~ん
実に使いにくい
572:さまよえる蟻人間
18/08/07 23:55:05.37 p+v0mQmH.net
ダークサイドの貧乏マは、インターネットのどこかにWin*2 Pr*gramm*rs' Refer*nceというヘルプファイルがあるから、別に。。。まあ、できる奴はサプスクリプションをイッチャッテ。
573:デフォルトの名無しさん
18/08/08 04:44:16.55 XhOfYtOw.net
>>561
このひどい訳文はテンプレのようになってて
このGetClassLongPtr()の例だけじゃなく
Win32APIのいたるところで見るんだが
ほんとうにやめてほしい
574:デフォルトの名無しさん
18/08/08 05:30:57.38 pP5XdYnX.net
>>562, >>565
訳が酷いと言うよりなぜかわからんが関数名(GetLastError)が無くなってるって話だろ
575:デフォルトの名無しさん
18/08/08 07:00:27.96 EhLv0UZk.net
もう慣れたわ
576:デフォルトの名無しさん
18/08/08 08:05:04.95 ApshsMT9.net
GetClassLongPtrのように値だけ返すやつは、失敗時ややこしいってのはAPIに限ったことじゃなく関数作ったことあればだれでも知ってること
MSDNの日本語ページはの罠は無数にあるから少しでもWindowsプログラミングしたことあれば英語ペ�
577:[ジ見ることになる どっちも超初心者じゃないとひっかからない罠 昨日のニュース 日本国内でのプログラミング言語別の年収ランキング、中央値1位は「Go」 http://www.itmedia.co.jp/news/articles/1808/07/news087.html
578:デフォルトの名無しさん
18/08/08 16:43:15.25 QemCzjVB.net
>>566
それを訳がひどいって言うんだよ
579:デフォルトの名無しさん
18/08/08 16:56:08.84 T8cc5IXv.net
みんな間抜けなんでマジレスするけど、SetLastError(0)でクリアしてから呼ばないと、成功したのか失敗したのかわからん仕様です。
580:デフォルトの名無しさん
18/08/08 17:43:49.45 jbuaovom.net
>>569
周回遅れ乙
>>570
みんなそんなことは分かってるだろ
普通に考えたら失敗/成功をBOOLで返して取得した値はポインタ経由で返せばいいのに
って思ってる人は多いと思う
581:デフォルトの名無しさん
18/08/08 19:26:41.46 9aI0uHWQ.net
ぬるぽ
582:デフォルトの名無しさん
18/08/11 00:27:06.52 MXmSxQHh.net
>>566
これを見るたびに何でどうしたらこんなことになるのかと考え込んで作業が中断してしまうのだ
583:デフォルトの名無しさん
18/08/11 07:49:06.09 J6jQGTXX.net
開発が遅れるわけだw
584:デフォルトの名無しさん
18/08/11 13:45:31.92 VJAxUjoq.net
悟ってお仕事
585:デフォルトの名無しさん
18/08/23 22:27:48.51 hCHxCnaA.net
スナップできるのはどういうウィンドウかあるいはどういう条件なのか、具体的な要件の一覧ってどこかで見られますか。
自作デスクトップアプリケーションのウィンドウがスナップ機能の対象になってないことに気づいて、少しプログラムをいじってみたところ
すぐにウィンドウスタイルによってスナップ機能が働かないことがあるのはわかりました。
具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
で、他のスタイルやスタイル以外の条件もあるかもしれないと思い、
まずはウィンドウスタイルとスナップの関係性から調べてみましたがスナップ機能の条件についての情報は見つけられませんでした。
よろしくお願いします。
586:デフォルトの名無しさん
18/08/23 23:19:58.10 yNz2G80b.net
スナップなんてOSの設定で最初に切る項目だぞ
気にするな
587:デフォルトの名無しさん
18/08/24 12:24:54.13 ZVlysGry.net
ダイアログにすればいい
588:デフォルトの名無しさん
18/08/24 12:28:22.65 NFTQhSIK.net
ついでに質問だけど
win10あたりからウィンドウの枠のちょっと外まで(影なしにしてても)
ウィンドウのリサイズとかマウスアイコン⇔の判定に使われてるみたいで
ウィンドウの下のウィンドウを上にもって来たくてクリックしたつもりが
違うウィンドウが上に来てしまうことが多くて困ってる
これなんとかする設定どこにある?
589:デフォルトの名無しさん
18/08/24 12:54:56.78 9pgk/rrF.net
このスレ的な解決だとFrameRectをフックして少し大きめの枠に変えちゃえばいいのかな
590:デフォルトの名無しさん
18/08/24 13:35:47.85 C22mUEBr.net
> 具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
win7 WS_MAXIMIZEBOXなしのタイトルバーをマウスでつまんで
desktopの上辺に移動してマウスを放すと、
タイトルバーが完全に表示されるように再移動される
これもsnapではないのか
591:デフォルトの名無しさん
18/08/24 16:58:34.94 71ZOGqZF.net
>>581
そうですね。即席で調べただけなので見落としてました。
いずれにせよ、スナップ操作時にどういったウィンドウならばどういう作用が起こるのか、
逆に特定のスナップの効果が欲しい場合にどういうウィンドウをセットアップすればよいのか
みたいなことがわかる情報を探しています。
592:デフォルトの名無しさん
18/08/27 20:05:43.05 vbuO7hMr.net
片山の取り巻きは帰れ
593:デフォルトの名無しさん
18/08/28 18:50:20.34 K0zx4BAG.net
実行中のGUIアプリケーションのコントロールを取得して表示させたいのですが良い方法はありますか?
594:デフォルトの名無しさん
18/08/28 22:31:26.44 CqD+kceR.net
spyのソースを読むべし
595:デフォルトの名無しさん
18/08/29 06:13:37.68 bvggge1h.net
hwnd検索するだけの質問だったのか
てっきりインジェクトして中身奪い取るとかそんなのかと思ったわww
596:デフォルトの名無しさん
18/08/29 06:56:51.37 /uFmfA/d.net
そっちならAppInit_DLLsの勉強しなされ
ってのが回答かな
597:デフォルトの名無しさん
18/08/29 07:15:50.54 bvggge1h.net
難しいのはインジェクトの先だから・・・
598:デフォルトの名無しさん
18/08/29 08:38:47.27 SgdWV5FD.net
悪用出来るからこの先は自分でお勉強
599:デフォルトの名無しさん
18/08/29 09:10:27.86 eKXrV34J.net
>>589
素直にわからないって言えよ
>>588の「先」は、「自分のプロセスに貼ったコントロールを、そのまま残しつつさらに別プロセスのウインドウに貼り付けて表示する」ということだからな
600:デフォルトの名無しさん
18/08/29 09:13:57.66 /ngMaME6.net
>>590
なんでそんなことするのか全然わからん。
>そのまま残しつつ
>貼り付けて
601:デフォルトの名無しさん
18/08/29 09:29:45.16 eKXrV34J.net
>>591
>>584がもしも>>586ならそうなるでしょ
602:デフォルトの名無しさん
18/08/29 10:17:28.09 X/yLq4q6.net
そのまま残してんなら奪ってないやん
603:デフォルトの名無しさん
18/08/29 10:41:34.94 eKXrV34J.net
>>593
飽きれるほどくだらない揚げ足取りだな
「パスワードを奪い取る」の考えてみろ。残さないとは限らないんだよ
604:デフォルトの名無しさん
18/08/29 11:02:53.78 X/yLq4q6.net
>>594
飽きれるほど下手な例えだな
パスワードは残さないと使えないだろ
605:デフォルトの名無しさん
18/08/29 11:13:44.40 7geB3Ftq.net
パスワードはいただいた
返して欲しければ1BC用意しろ
606:デフォルトの名無しさん
18/08/29 12:00:14.20 X/yLq4q6.net
いただいた(変更した)
607:デフォルトの名無しさん
18/08/29 12:09:36.88 /ngMaME6.net
入力するパスワードを勝手に変えたら駄目じゃん
608:デフォルトの名無しさん
18/08/29 14:19:35.46 X/yLq4q6.net
パスワード変えずに「パスワードはいただいた」って?
それ何の脅しにもならんやん
元の持ち主が別のに変更して終わり
609:
610:デフォルトの名無しさん
18/08/29 14:37:13.57 7geB3Ftq.net
せっかくギャグを入れてやったのにしょうもねえ奴ら
611:デフォルトの名無しさん
18/08/29 22:37:19.40 /ngMaME6.net
え?おもしろいとでも思ってたの?
もしかして渾身のギャグなの?
恥ずかしくないの?
612:デフォルトの名無しさん
18/08/30 10:17:52.45 Z5Fjo3b4.net
程度が同じじゃないとジョークは通じないらしい
ただ今回はガキとバカだからどちらも等しく低いように見えるな
613:デフォルトの名無しさん
18/08/30 10:23:06.98 53NSE4xw.net
謎の上から目線
614:デフォルトの名無しさん
18/08/31 04:18:44.69 kx4Z958G.net
昔のゲームのコードを弄ってて困った事があります。
ウィンドウの大きさを変えると一緒に表示中の画面も引き延ばされるのですが
引き延ばされた時に粗くなって美しくないです。内部のバッファをウィンドウを最大化された時の大きさで確保しておき
ゲームの処理の方でフィルタ処理を施せば上手く行きますが出来れば小さいバッファのままで
ウィンドウのリサイズ時にAPI側でフィルタ処理できないでしょうか?
あと気になるのが環境によっては上記の処理を勝手にやってくれている環境もあります(ディスプレイドライバによるのかもしれません)。
出来れば確実にこちらで処理できるようになれば嬉しいです。
615:デフォルトの名無しさん
18/08/31 06:25:35.68 u3E//DdP.net
>>604
普通、WM_SIZEの都度ゲームのフレームバッファを再作成するもんじゃねえの?
616:デフォルトの名無しさん
18/08/31 06:50:31.93 kx4Z958G.net
>>605
出来ればバッファの大きさは固定で行きたいんです。
最大化された時にいかにも拡大してフィルタリングされた感じを出したいので。
環境によってはウィンドウがリサイズされると勝手にフィルタリングしてくれて
ぼやっとした画面になるので出来ればそれを確実にやりたい感じです。
何か設定でもあるんでしょうか。OSの設定としてあるならそれを知りたいです。
617:デフォルトの名無しさん
18/08/31 07:13:40.06 wCA0c3fj.net
SetStretchBltMode
618:デフォルトの名無しさん
18/08/31 18:32:30.98 kx4Z958G.net
>>607
良さげですね!試してみます。ありがとうございます。
619:608
18/08/31 20:11:53.40 kx4Z958G.net
どのタイミングでStreachBltを呼び出してるのかわからない…
ウィンドウを制御するクラスの中のWM_PAINTは空だし。
初期化時にDirectXのAPIにhWndを渡してるので勝手にDirectX内部で呼び出してるのかな?
リサイズされた時にhWndを元にHDC作ってそこでStreachBltとか。その後HDC破棄みたいな。
そうなると手出しできないってこと?
620:デフォルトの名無しさん
18/08/31 20:17:23.84 kx4Z958G.net
それともウィンドウ作成時のスタイル設定などで
リサイズに合わせてスケーリングをどうするのかみたいな設定があるのかな。
それだとそこの設定でどうにかなりそうな気もするけどよく分からない。
ちなみにウィンドウ制御クラスの中のWM_PAINTでは動画などのスケーリングは自前でやってた。
なので少なくともWM_PAINTの中では自分でウィンドウ内部の他の表示のスケーリングはやってない。
621:デフォルトの名無しさん
18/08/31 20:46:55.45 kx4Z958G.net
ここ見たらたぶん同じような症状で困ってた人がいて
URLリンク(dxlib.o.oo7.jp)
基本的に手出しができず綺麗に拡大されるかはドライバによるという事らしい…
え~やだやだ~ 納得できない。やっすいPCでも綺麗に拡大されてるのに
家の高いPC(ドライバも新しい)で汚いなんて納得できないよ~!
622:デフォルトの名無しさん
18/08/31 21:07:44.36 pOoITzWx.net
> 現状ではコーラさんがお書き込みになられた方法しかありません
あるって書いてあるじゃn
623:デフォルトの名無しさん
18/08/31 21:22:40.36 kx4Z958G.net
>>612
うん。そうだけど、たっかいグラボ積んでる家のマシンで汚く表示されて
やっすい3万くらいのPCで綺麗に表示されるのが納得いかないの。
624:デフォルトの名無しさん
18/08/31 21:23:46.62 kx4Z958G.net
>>612
あ、ごめん見間違った。
方法はあるんだけどバッファの大きさは固定でやりたいの。
625:デフォルトの名無しさん
18/08/31 21:31:04.55 pOoITzWx.net
だからバッファ固定でできるって
626:デフォルトの名無しさん
18/08/31 21:32:44.33 LcHwdHfr.net
なんか意味不明な質問だなと思ったら、それWin32じゃなくてDXライブラリとかいう
よくわからんライブラリの話やん。
627:デフォルトの名無しさん
18/08/31 21:33:51.55 kx4Z958G.net
拡大した時に粗くなる→最初から内部のバッファの解像度を上げておけばよくね?
ってのはナシで。
あくまでも内部のバッファの大きさは今のままでウィンドウが拡大された時に
勝手にドライバがやる部分をどうにかしたい。けど無理そうだね…
納得いかないのは、やっすいPCでは綺麗に表示されてるのに
たっかいPCで汚く表示されてしまうこと… 逆なら納得したのにこれはないよな~
628:デフォルトの名無しさん
18/08/31 21:35:25.97 kx4Z958G.net
>>616
いやDXライブラリでも制御できない部分なので
Win32APIの方でなんとかならないのかなと思って。でも無理なのかな。
ここの人ならなんか解決法わかるかなと思ってたけど。
629:デフォルトの名無しさん
18/08/31 21:44:49.09 pOoITzWx.net
win32でやるならSetStretchBltMode
おまえがやるべきなのは小さい画面サイズのでいいからそのDCを取り出すこと
それしたらあとは表示するだけ
630:デフォルトの名無しさん
18/08/31 21:50:44.31 kx4Z958G.net
>>619
要するにそれは内部バッファのHDCを取り出して
SetStretchBltModeを設定し、その後ウィンドウのクライアント領域に自前で
StretchBltで描画しろってことになるかな?まあそれしかないのかやっぱ。
631:デフォルトの名無しさん
18/08/31 22:41:05.39 kx4Z958G.net
さすがに自前でやったらGDI+使っても速度が全然でなかった(毎フレーム描画しないといけないので)。
諦めます~
632:デフォルトの名無しさん
18/08/31 22:47:15.40 u3E//DdP.net
なんか基本的な部分から盛大に勘違いしてそうだな
Direct3D使ってるならドライバ依存になるのはスワップチェインのバックバッファが
ターゲットウィンドウのサイズとかみ合わない場合に
Presentの呼び出しでウィンドウにフィットするように自動でスケーリングされる部分だ
ドライバ依存の挙動を回避したいならバックバッファをウィンドウに合わせてリサイズするのは必須なの
逆に、バックバッファの解像度をゲームの解像度と考える必要も無い
バックバッファがどんなサイズであれゲーム自体は固定サイズのレンダーターゲット用テクスチャにレンダリングし
バックバッファへはそのテクスチャをスプライトとして張り付けるだけ
拡縮フィルタリングをニアレストにするのもバイリニアにするのもアプリでしっかり管理できる
なんならシェーダでLanczosにしても良い
633:デフォルトの名無しさん
18/08/31 23:02:05.30 GkpBxwA9.net
せっかく諦めたのに
634:デフォルトの名無しさん
18/08/31 23:19:59.47 kx4Z958G.net
>>622
なるほど~バッファをリサイズしないと必ずドライバ依存のスケーリングになってしまうってことね。
その辺りをもうちょい考えてどう対処するか検討してみるよ。ありがとう。
>>623
まだまだ諦めんぜえ~ww
635:デフォルトの名無しさん
18/08/31 23:25:09.45 N52+Kto5.net
野菜の日
636:デフォルトの名無しさん
18/09/04 23:00:53.53 g1EQF691.net
CreateFile()で取得したハンドルをGetMailslotInfo()に渡していいものでしょうか?
CreateFile()の第1引数には、別プロセスでCreateMailslot()したときの第1引数と同じ
です。
637:デフォルトの名無しさん
18/09/05 08:35:25.55 w5sEnOXo.net
流石にmsdn見ろとしか
638:デフォルトの名無しさん
18/10/03 18:23:25.15 BIMPuBeq.net
リストビューでマウスドラッグで範囲選択をしているとき、
その選択範囲の矩形座標を取得する仕組みは無いのでしょうか。
範囲選択開始時のLVN_MARQUEEBEGINしか見つからないのですが。
639:デフォルトの名無しさん
18/10/05 23:00:23.19 OkuzM4NB.net
メインウィンドウのメッセージループからマウス系イベント拾ってくるのが楽で良い
640:デフォルトの名無しさん
18/10/18 16:38:48.09 rfYW9BA4.net
AVIStreamGetFrameOpenというAPIで「MPEG-4 Visual (XviD)」で
圧縮されたaviファイルを開きたいのですが可能でしょうか?
また上記が無理なら無圧縮以外の何かでエンコードされたものを
開きたいのですが何だったら可能なのかも教えてもらえないでしょうか?
AVIStreamGetFrameOpenは、2番目の引数にAVIGETFRAMEF_BESTDISPLAYFMTを指定すれば
完全な無圧縮以外でYUY2だけはいけました。
641:630
18/10/18 17:40:26.75 rfYW9BA4.net
調べていたらコーデックというのはAVIStreamGetFrameOpenで使用されたような古い形式と
メディアプレイヤーで使用されてるような新しい形式があるようですね…
つまりこの古いAPIだとそれように提供されているコーデックを探してインストールしないといけないという事になるでしょうか?
新しい形式を利用するプログラムを作った方がいいような気がしてきました。
642:630
18/10/18 18:23:13.79 rfYW9BA4.net
確かにVideo for Windows用のコーデックを探してきてインストールすれば動くようになりました。
解決はしたのですが他のPCでもその都度これをインストールしないといけないってのがどうも…
643:デフォルトの名無しさん
18/10/18 18:34:46.06 LsEafRqd.net
そりゃコーデックのインストールは必須だよ
自前実装するとかなら別だけど
644:デフォルトの名無しさん
18/10/18 18:57:16.36 rfYW9BA4.net
>>633
ただ新しいタイプの方(DirectShow)の方はメディアプレイヤーとかも入ってるので
デフォルトでも結構動きそうなのでそこがいいなと。
初回のプログラム起動時にコーデック用dllだけシステムフォルダに突っ込んでもいいのかな…
645:デフォルトの名無しさん
18/10/19 12:08:49.41 jQ8EJjtV.net
>>632
ffmpeg
646:デフォルトの名無しさん
18/10/19 17:30:46.21 HIw2KJmH.net
ところでMacとかだと64bit化で32bit打ち切りの方向みたいだけど、Winはまだまだ32bitもサポートしてくれるよね?
647:デフォルトの名無しさん
18/10/19 19:13:40.82 HIw2KJmH.net
今のって64bit環境でエミュレーションしてるんだっけ?だから基本的にはずっと維持されるのかな?
648:デフォルトの名無しさん
18/10/20 11:06:47.52 6LBMAo3K.net
WOW64だけ終了させるのは考えにくいね。
32bit過去資産を切り捨てるメリットが当面無い。
32bitって、一般的なアプリだけなら切る方向に動くのもあり得る話だけど、
工業系で周辺ハードウェアを制御するのに32bitドライバとか組み込んでて
不思議じゃないので簡単に切れるレベルじゃないかと。
ARM系なんか採用してたらムリじゃね。
128bitOSが出てきたときにようやく切るようになるんじゃないかな。
Macはそんな環境で動いているケースはほとんどないから問題ない気がする。
649:
18/10/20 11:46:35.45 9jkSTDWo.net
>>638
>128bitOS
128ビットアーキテクチャーとか 128ビットOS とかは、ここ30年くらいは現れないのではないでしょうか…
650:デフォルトの名無しさん
18/10/20 11:57:36.98 6LBMAo3K.net
8/16bit全盛時代、64bitを現実的に捉えてた人は居なかったしなあ。
128bitなんて遠い先だと今は思ってても、どうなるか分からんもんよ。
651:デフォルトの名無しさん
18/10/20 12:18:25.97 u8BRF3D8.net
WOW64←32bit用のフォルダ
SYSTEM32←64bit用のフォルダ
では128bit化したときはどうなる?
WOW64←32bit用のフォルダ
WOW128←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうか?
652:デフォルトの名無しさん
18/10/20 12:22:46.95 QqxqMvRx.net
WOW128←32bit用のフォルダ
WOW64←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうなる可能性も悪夢
653:デフォルトの名無しさん
18/10/20 13:36:52.57 fOofNO0j.net
>>640
8/16bit全盛時代は32bitデスクトップコンピューターが
スーパーパソコンと言われることもあったなあ
32bit機なんて夢だった、64bit機なんて遠い未来に
実現するのかなあという感覚
654:デフォルトの名無しさん
18/10/20 19:16:09.86 ZcZ7Cx83.net
>>638
そういうところがOSだけ最新なの使っているものなのか?
古いアプリケーションをずっと使っているようなところだとOSも昔のままな気がするけど
>>641
その時にはSYSTEM32って名称はやめていると思う
んで、64bit以前のアプリケーション互換云々は単純に仮想マシン環境下で動作させればいい
仮想マシン上でも十分な性能を得られるだろうし
655:デフォルトの名無しさん
18/10/20 19:42:10.64 LsRLW+LD.net
128bitは多分こないんじゃないかなw
32bitとか64bitってメモリマッピングの領域の問題なんで
64bitなら4GByte×4GByteまでマッピング出来てしまうので
超絶高速SSDとかできてONメモリのように管理できるように
なっても64bit超えないような
656:デフォルトの名無しさん
18/10/20 20:09:53.22 zBQrNBwm.net
ドリームキャストは128bitって連呼してたなぁ
657:デフォルトの名無しさん
18/10/20 20:18:05.59 wecQHzx8.net
既にWindowsフォルダ配下はカオスだろ
M$よくこんなん管理できんなーと思ってたらやっぱり管理できてなかったみたいだな
658:デフォルトの名無しさん
18/10/20 21:00:21.96 A+7VUlnR.net
アプリケーション的には
16bits → 64KB 死ぬほど不便
32bits → 4GB 快適
64bits → 16EB 贅沢できる
659:デフォルトの名無しさん
18/10/21 02:36:06.52 fpcnU4T3.net
32bitアプリ使ってる人多いだろうから動かなくなったら苦情がめちゃくちゃ来そう。
660:デフォルトの名無しさん
18/10/21 03:23:03.53 C+Apg5Hi.net
>>643
でもその頃、汎用機は32bit機械だったよ?
アドレッシングは24bitだったけど。
>>645
AS400は128bitと言ってもいいのでは。
むしろIoTとか言ってコンピュータ側のリーチが伸びてるから
単一レベル記憶で世界を管理しようとしたら、既にある技術で言えば
IPv6は128bitだし、既に128bitの世界はきてる気がするよ。
661:デフォルトの名無しさん
18/10/21 05:03:20.85 5lMyjKAV.net
既存プロセスのウィンドウhwndに対するファイルのドラッグ&ドロップをマウスエミュレートを使わず実現するにはどうしたらよいですか?
過渡的な視覚効果であるドラッグは必要ないので、実質ドロップだけできればいいとは思うのですが。
662:デフォルトの名無しさん
18/10/21 08:15:24.58 S2kctYlU.net
>>649
そもそもVisual Studioが32bitだから32bit打ち切ったら開発できなくなるし w
663:デフォルトの名無しさん
18/10/21 14:33:56.37 jYu3kmgI.net
>>650
個人が買えるPCの話だよ、その頃はPCで
32Bitアドレッシング24Bitなんて夢だった
664:デフォルトの名無しさん
18/10/21 16:15:03.17 /+3u54Rp.net
>>653
XL2でも100万だったけど?
665:デフォルトの名無しさん
18/10/21 18:55:34.10 PdeVN0B9.net
> アプリケーション的には
> 16bits → 64KB 死ぬほど不便
> 32bits → 4GB 快適
> 64bits → 16EB 贅沢できる
8bitは ?
666:
18/10/21 18:59:32.77 gNVlu9Yw.net
>>655
>8bitは ?
ほとんどの 8 ビットCPU のアドレス空間はすでに 16 ビットだったからなあ…
667:デフォルトの名無しさん
18/10/21 19:06:52.55 9MgCOCRf.net
マウントの取り合いになってきたゾ~
668:デフォルトの名無しさん
18/10/21 20:51:33.47 3rYBWp0g.net
>>651
アプリケーション毎にドラッグをどう処理しているか不明だからマウスエミュが確実だと思うけど
669:デフォルトの名無しさん
18/10/21 21:19:33.66 MYahSoZu.net
>>651
URLリンク(docs.microsoft.com)
670:デフォルトの名無しさん
18/10/21 21:43:12.45 CMVET5pn.net
>>655
アドレスが8bitの汎用CPUなんてないんじゃない?
4004でさえアドレスは12bitだそうだ
671:651
18/10/22 01:10:30.37 zMz+R4iM.net
>>659
WM_DROPFILEはすでに試して失敗を確認済みです。
ドラッグ&ドロップの具体例をあげるとVisual Studio 2017 にファイルをドロップして開く処理をやりたいのだけど、
GlobalAlloc()、GlobalLock()、GlobalUnlock() などで作ったhDropをPostMessage(WM_DROPFILE)しているのだけど、まったく変化なし。
メモ帳notepad.exeの場合はPostMessage(WM_DROPFILE)で開けたのですが、VS2017と何が違うのやら。
672:デフォルトの名無しさん
18/10/22 02:10:39.32 T6zy7H5q.net
WM_DROPFILEの他に、OLE Drag&Dropもあるでよ
673:デフォルトの名無しさん
18/10/22 12:32:01.71 uugU0jx6.net
PIC のアドレスって何bitだっけ
68xx の memory mapped register とかは 8bit か
そもそもどうでもいい
674:デフォルトの名無しさん
18/10/22 14:14:29.65 2rAhHCnw.net
>>648がネタだったらどうでもいいのだが
16bitのWindows3.1でも 1Mを越えるメモリーは使えたし、
32bitのWindowsのアプリケーションのメモリー空間は32bitではないし
64bitのWindowsのアプリケーションのメモリー空間は64bitではない
675:デフォルトの名無しさん
18/10/22 15:48:26.25 H1W4+XYR.net
アセンブラで書いてるのかω
676:デフォルトの名無しさん
18/10/22 18:19:05.88 x0pcGzlw.net
8bit→16bit 前世代の256倍
16bit→32bit 前世代の65536倍
32bit→64bit 前世代の4294967296倍
64bit→128bit 前世代の18446744073709551616倍
で各時代のジャンプしてる倍数が全然リニアじゃない
128bitは俺らが生きてる間に実現しない
677:デフォルトの名無しさん
18/10/22 18:27:51.91 x0pcGzlw.net
つまりは
8bit倍→16bit倍→32bit倍→64bit倍 とくるから
だんだん間隔が長くなって正常
64bit(前世代の32bit倍)ですら途方もなくて持て余す(実際48bit)のに
64bit倍なんてのは途方もないものはどうしようもない
永遠に到達しないと思っても問題ないくらいに天文学的数値
678:デフォルトの名無しさん
18/10/22 18:38:09.95 N4Dlk9u9.net
そうでもない
進化は指数関数的に変化するから
679:デフォルトの名無しさん
18/10/22 18:44:02.73 VafFZz5P.net
CPU取り扱いビット数は、なにもメモリー空間だけの問題じゃないと思うが。
なんにしても、ないもの語るのは不毛な話だわ。
680:デフォルトの名無しさん
18/10/22 19:04:08.99 +9ubm+fa.net
64bit増毛
681:デフォルトの名無しさん
18/10/22 19:06:40.33 x0pcGzlw.net
CPUのビット数と言ったらやっぱりメモリ空間だろ
俺らに関係する互換性の意味でもさ
>>668
bit数が一つ増えると2倍になるが、そのbit数も2倍で増やしていくから
指数関数の指数関数でとんでもない速度で増加する
一方でムーアの法則はただの指数関数だから
割り算すると指数関数が残る
というのが>>666-667の説明
682:デフォルトの名無しさん
18/10/22 22:15:29.36 iXt7ySqh.net
さすがに64bitアドレスを使い切ることは無いべ?
下手すると64bit個の原子は目で見えるサイズじゃないか?
2^64=1.8446744e+19
アボガドロ数=6.0221409e+23/1mol
砂粒くらいはありそうだよな?
683:デフォルトの名無しさん
18/10/22 22:22:39.79 haEJCmq/.net
みんながそう思ったら、IPv6は128bitにしなかっただろうね :-p
684:デフォルトの名無しさん
18/10/22 23:05:44.67 CgLRMpn3.net
過去からbit数が上がる際にはメモリー空間に限定した話ではなくて
「パフォーマンスが上がる」というまずは大ざっぱな喧伝がなされてた
メモリー空間はもちろん広がるが、そんな限定的な事じゃない様々な性能アップ要素で
話がされたもので、今になってメモリー空間だけに絞った話にしかならないのは
その話している人の経験や視野が狭すぎるのが原因ではなかろうか
685:デフォルトの名無しさん
18/10/22 23:08:02.77 1Kkbm3du.net
>>664
アプリケーションの話をしてんだから
8086 死ぬほど不便 あってるじゃん
32bitのWindowsのアプリケーションのメモリー空間は32bitじゃん?
36bit使える?32bitアプリが。
686:デフォルトの名無しさん
18/10/23 01:54:45.89 WBybiFHu.net
>>674
80286とi386だと、クロックが同じだと80286の方が速いこともあったよ?
687:デフォルトの名無しさん
18/10/23 02:55:48.42 sn2WQhnj.net
アーキテクチャや最適化とかあらゆる要素を全く無視して
一部だけ切り取って主題の否定に終始しておけば勝つから頑張れ
688:664
18/10/23 10:09:02.12 GIVzaW28.net
>>675
Windows3.1は8086では動かない
多くの32bit Windowsアプリケーションのメモリー空間は 2G (31bits)
689:デフォルトの名無しさん
18/10/23 11:47:28.84 hJha4BQY.net
何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
ポインタのサイズがいくらになるかが互換性の面で最大限問題なんだよ
互換性の面でな
690:デフォルトの名無しさん
18/10/23 11:49:19.92 hJha4BQY.net
しかもここはWin32APIのスレで
128bitのWinAPIはいつ出るかって話だから
ポインタのサイズ=メモリ空間のサイズの
話になっていくのは当たり前
691:デフォルトの名無しさん
18/10/23 12:48:48.94 joSIbJ7d.net
>>675
128bitマシンがあっても
FDDだったら死ぬほど不便だな
692:デフォルトの名無しさん
18/10/23 15:26:03.23 WBybiFHu.net
>>681
オンラインストレージもすべてアドレッシングされてるような美来を考えると、
そんなに不便でもないような気も少し。
693:デフォルトの名無しさん
18/10/23 15:28:44.02 sn2WQhnj.net
>>679-680
> 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
プログラムの話でCPUの基本であるアセンブラ・命令セット・レジストリやアーキテクチャなどをすっぱり抜く意味はなんですか。
> 128bitのWinAPIはいつ出るかって話だから
>>636-640
「Win32APIのサポートはいつまでか」~
から、
「128bit CPU・OSが出たら」~
の話であって、128bitのWinAPIはいつ出るかって話ではありません。
しかし、「128bit CPU・OSが出たら」に対してメモリマップの問題だと言い出したのは>>645です。
この主張に対して、メモリ限定の話になっているのがおかしいというのが本反論です。
あくまでも「128bit CPU・OSが出たら」が基本の話で、あなたの言う「128bitのWinAPI」は
話の本筋ではありませんし、そもそも話が出ていません。
アドレッシングの話題は話題でやればいいですが、これを論拠に「だから次はない」
なんてのはナンセンスというだけの話です。
694:デフォルトの名無しさん
18/10/23 16:08:56.16 hJha4BQY.net
レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ
ただこれとWin32APIは関係ないでしょ?
x64が続く限りWin32APIのサポートがずっとあるのは明白だし
(あえて命令セットを変える意味がないでしょ・・・何の意味が?)
もし変えるとしたら128bit化の時だろうけど
まず生きてる間には来ないよねって話でしょ
695:デフォルトの名無しさん
18/10/23 16:18:21.83 hJha4BQY.net
ちなみに128bit化に伴って32bitプロセスがサポートされなくなる可能性は有る
何故なら128bitは100年後か1000年後かあるいは永遠に来ないか
そのぐらいの未来になったら32bitプロセスはすっかりレガシーになってて
サポートする意味が無いかもしれん、わからんがな
ただそんな未来は生きてる間に来そうにない、という事で
Win32APIのサポートが無くなることはないだろうという事を述べておる
696:デフォルトの名無しさん
18/10/23 17:00:05.35 yFsvvFWj.net
>生きてる間には来ない
来たらどうするか(どうなるか)って話をしてるんだろ
空気読めないアスペか?
697:デフォルトの名無しさん
18/10/23 17:40:29.64 GIVzaW28.net
I/Oがすべてマッピングされている世界はたぶんたのしい
698:デフォルトの名無しさん
18/10/23 17:47:11.62 POYrFqPG.net
PCIとかはメモリ空間にマッピングされているよね
699:デフォルトの名無しさん
18/10/23 17:55:28.41 hJha4BQY.net
計算したら来ないし
遠い未来すぎて今と状況が違いすぎるからなんとも
結局は32bitをサポートするかは技術的というより時間的要因とうか周りからの要求で決まるわけで
例えばもし10年後に128bitになるなら32bitをサポートするようにCPUを作るだろうし
100年後だったらもはやレガシーすぎてサポートしないかもだし
(その場合はソフトエミュレーションかな)
結局は問題ないだろうということ
俺らが困らないようにしてくれるさ
IntelがItaniumを作って広げようとしても、AMDがx86作ってそっちが選ばれたしな
互換が無くなって一番困るのは俺らよりマイクロソフトだから何とかしてくれるのだわ
700:デフォルトの名無しさん
18/10/23 17:58:27.40 hJha4BQY.net
ただ、Windowsが無くなればWin32APIも無くなるが。。。
701:デフォルトの名無しさん
18/10/23 18:15:44.57 d491RiZs.net
> レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ
AVXのときにAVX512なんて絶対来ないとか言ってたか?
次がどうなるとお前が決める事ではない
> ただこれとWin32APIは関係ないでしょ?
関係ないからこそWin32APIだけの話題で次があるないを確定づける論拠にするのに意味がない
702:デフォルトの名無しさん
18/10/23 19:35:50.85 bNdv7B9n.net
ポインタのサイズが互換性において何の問題が?
703:デフォルトの名無しさん
18/10/23 20:21:56.29 tecJ1BiK.net
32/64だとポインタをDWORDに放り込んで処理してるのとかあるからな
704:デフォルトの名無しさん
18/10/23 23:44:40.09 volyHHZE.net
window handleとかはx64だと64bit幅だけど、wow64でもそのまま扱えるように32bit内の値しか設定されないとかあるね。
705:687
18/10/24 06:38:30.05 UmzQGEnh.net
>>682が書いているように
I/Oの中身がすべてアドレスでとれるようなマッピングのこと
他のPCもまるごとアドレシングされているような世界
706:デフォルトの名無しさん
18/10/24 11:37:09.95 XOgiiIOy.net
>>692-693
rubyは困りそうω
707:デフォルトの名無しさん
18/10/24 13:36:44.56 42dinMX8.net
>>696
perl もだよ。
perlでライブラリWin32APIで構造体をマッピングする場合、
構造体のメンバー変数のアラインメントを自力で解決しなければならず、
32bit版と64bit版でオフセットを適切に切り替えるコードが必要。
708:
18/10/25 00:37:44.65 yGYVJ0zR.net
http://wisdom.sakura.ne.jp/system/
709:デフォルトの名無しさん
18/10/25 11:37:51.73 5Cy/pQlU.net
えらい古いな
っていうか 赤坂玲音 って糞筆者の筆頭じゃねーか
QZ って 赤坂玲音 だったのか?