Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build126
https://mevius.5ch.net/test/read.cgi/tech/1588339011/
Win32API質問箱 Build125
https://mevius.5ch.net/test/read.cgi/tech/1551247748/
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
■関連スレ
Visual Studio 2020 Part1 https://mevius.5ch.net/test/read.cgi/tech/1634166667/
Visual Studio 2019 Part7 https://mevius.5ch.net/test/read.cgi/tech/1634178709/
Visual Studio 2017 Part7 https://mevius.5ch.net/test/read.cgi/tech/1558179898/
【C++】 DirectX初心者質問スレ Part41 【C】 https://mevius.5ch.net/test/read.cgi/tech/1521786252/
Win32API質問箱 Build127
■ このスレッドは過去ログ倉庫に格納されています
2021/12/09(木) 21:32:56.60ID:sYLpmj89
280デフォルトの名無しさん
2022/07/30(土) 02:15:20.39ID:pJ1A3nc7 C++でクラス化ラップ化する前のピュアなメッセージループをなら猫かな
そこから先は ラップしてるライブラリの方言が出てくるだろうし
そこから先は ラップしてるライブラリの方言が出てくるだろうし
281デフォルトの名無しさん
2022/07/30(土) 12:31:23.06ID:YQlRXD6d282デフォルトの名無しさん
2022/08/01(月) 14:57:50.07ID:ei01gCPD283蟻人間 ◆T6xkBnTXz7B0
2022/08/01(月) 16:08:58.49ID:eMiJU5As MsgCrackにWM_DESTROYを入力すると
void OnDestroy(void)
って出てくる。
これを#include <windowsx.h>のHANDLE_MSGマクロと一緒に使うと吉。
void OnDestroy(void)
って出てくる。
これを#include <windowsx.h>のHANDLE_MSGマクロと一緒に使うと吉。
284デフォルトの名無しさん
2022/08/01(月) 16:24:30.82ID:n7o9xXsd 自前で巨大なswitch文を並べるんや
285デフォルトの名無しさん
2022/08/01(月) 16:46:02.44ID:lS5VDU2q MFCを勧める人はいないんかい・・・
286デフォルトの名無しさん
2022/08/01(月) 17:30:54.15ID:EZlLH+eW 統合環境の力技でマクロ埋め込んだりするしねぇ 癖や方言が強い
287デフォルトの名無しさん
2022/08/01(月) 19:48:54.56ID:kaXTkJ9F いまさら MFC を使いたいんですけど、まずどうすればいいですか?
288デフォルトの名無しさん
2022/08/01(月) 20:38:09.58ID:Z+HQWfkn >>284
windowsx.hで定義されてるHANDLE_MSG()マクロを使えば
いちいちcase文を書く必要がない
switch (uMsg)
{
HANDLE_MSG(hwnd, WM_CREATE, OnCreate);
HANDLE_MSG(hwnd, WM_COMMAND, OnCommand);
...
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
使わないメッセージはスルーしていい
OnCreate()やOnCommand()のプロトタイプもwindowsx.hで定義されてるので引数を間違ったらエラーで教えてくれる
windowsx.hで定義されてるHANDLE_MSG()マクロを使えば
いちいちcase文を書く必要がない
switch (uMsg)
{
HANDLE_MSG(hwnd, WM_CREATE, OnCreate);
HANDLE_MSG(hwnd, WM_COMMAND, OnCommand);
...
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
使わないメッセージはスルーしていい
OnCreate()やOnCommand()のプロトタイプもwindowsx.hで定義されてるので引数を間違ったらエラーで教えてくれる
289デフォルトの名無しさん
2022/08/02(火) 17:15:54.00ID:64Iv6nA4 #define BEGIN {
#define END }
に近い感じなので マクロにお任せってあまり好きではない(個人的感想)
#define END }
に近い感じなので マクロにお任せってあまり好きではない(個人的感想)
290デフォルトの名無しさん
2022/08/02(火) 21:12:37.20ID:NatehBYU false、False、FALSE色々あるなあ
291デフォルトの名無しさん
2022/08/02(火) 22:59:22.62ID:clR4IgPX こういうシステム的な部分を作るとき厄介なのが細かい引数間違えたりすることなのですべて定義されてるのは助かるよ
windowsx.hに入ってるってことはMS推奨なんだろうし
windowsx.hに入ってるってことはMS推奨なんだろうし
292デフォルトの名無しさん
2022/08/03(水) 08:49:02.53ID:HRex91Fl そのヘッダか忘れたけどコモンコントロール系はマクロが無いとやってられん
それ前提でMSDNにリファレンスがあるし
それ前提でMSDNにリファレンスがあるし
293デフォルトの名無しさん
2022/08/03(水) 12:38:08.58ID:t9tQNkon そこでWTLですよ
294デフォルトの名無しさん
2022/08/03(水) 23:45:13.40ID:+fTvsC8V295デフォルトの名無しさん
2022/08/04(木) 23:07:37.30ID:iuI8tOa1 そういえばバイナリエディター「Binary Editor BZ」はWTL使ってたはず
296デフォルトの名無しさん
2022/08/05(金) 02:46:33.66ID:RasK5Hhu 大きな文字や小さな文字をコマンドプロンプトに同じ行で表示したいのですが可能でしょうか?
設定で変えるのではなくプログラムで結果によって変えたいのですが
よろしくお願いします。
設定で変えるのではなくプログラムで結果によって変えたいのですが
よろしくお願いします。
297デフォルトの名無しさん
2022/08/05(金) 03:00:58.31ID:CLX9KL3y 「あ」と「ぁ」みたいに?
298デフォルトの名無しさん
2022/08/05(金) 13:41:02.21ID:w8qsceV0 8pt
■
■ ■ ■ ■■■■■
■■■■ ■ ■
■ ■ ■ ■■■■■■
■■■■■■ ■ ■
■■■■ ■ ■ ■
■ ■■ ■ ■■ ■■■■
■ ■■ ■■ ■■ ■ ■■■
■■■■ ■■ ■ ■■■■
16pt
■ ■
■ ■ ■■ ■ ■■■
■■■■■■■■ ■■ ■■■■■■■
■■■■■■■■■ ■■ ■■
■■ ■■ ■■
■■ ■■ ■■ ■■■■■
■■■■■■■■■ ■ ■■■■■■■■■■
■■■ ■■ ■■■ ■ ■■
■■■■ ■■ ■■ ■■ ■■
■■ ■■ ■■ ■■ ■■ ■■
■■ ■■ ■■ ■■ ■■ ■ ■■
■■ ■■■■ ■■ ■■■ ■■■■■■
■■ ■■■ ■■ ■■■ ■■ ■■■■
■■ ■■ ■■ ■■ ■ ■■ ■■■
■■ ■■■ ■■■ ■■ ■■ ■■ ■■
■■■ ■ ■■■■ ■■ ■■■■■
■■
■
■ ■ ■ ■■■■■
■■■■ ■ ■
■ ■ ■ ■■■■■■
■■■■■■ ■ ■
■■■■ ■ ■ ■
■ ■■ ■ ■■ ■■■■
■ ■■ ■■ ■■ ■ ■■■
■■■■ ■■ ■ ■■■■
16pt
■ ■
■ ■ ■■ ■ ■■■
■■■■■■■■ ■■ ■■■■■■■
■■■■■■■■■ ■■ ■■
■■ ■■ ■■
■■ ■■ ■■ ■■■■■
■■■■■■■■■ ■ ■■■■■■■■■■
■■■ ■■ ■■■ ■ ■■
■■■■ ■■ ■■ ■■ ■■
■■ ■■ ■■ ■■ ■■ ■■
■■ ■■ ■■ ■■ ■■ ■ ■■
■■ ■■■■ ■■ ■■■ ■■■■■■
■■ ■■■ ■■ ■■■ ■■ ■■■■
■■ ■■ ■■ ■■ ■ ■■ ■■■
■■ ■■■ ■■■ ■■ ■■ ■■ ■■
■■■ ■ ■■■■ ■■ ■■■■■
■■
299デフォルトの名無しさん
2022/08/05(金) 18:10:13.24ID:uan7vRb+300デフォルトの名無しさん
2022/08/05(金) 22:00:13.48ID:x2QrbwhX >>296
不可能ッス!!
不可能ッス!!
301デフォルトの名無しさん
2022/08/05(金) 23:51:13.34ID:2v49rt6J NFT市場が2年で300億円→2兆円に急拡大したワケ
「保有する」だけではない、アート作品につけられた「価値」
市場規模ですね。これは少し古いデータになりますが、直近では、だいたい
2兆円ぐらいの市場規模になります。去年の3月ぐらいから盛り上がってきて、
2019年は300億円ぐらいと言われていたものが急拡大して、今や2兆円と
なっています。
一番大きいのが「コレクティブル」というものです。実際のNFTでいうと、
「CryptoPunks(クリフトパンクス)」とか「Meebits(ミービッツ)」など、
デジタルアートで、これが76パーセントを占めています。
他にはゲーム、スポーツの会員権のようなもの、メタバース上での利用、
アートなどに使われています。
「保有する」だけではない、アート作品につけられた「価値」
市場規模ですね。これは少し古いデータになりますが、直近では、だいたい
2兆円ぐらいの市場規模になります。去年の3月ぐらいから盛り上がってきて、
2019年は300億円ぐらいと言われていたものが急拡大して、今や2兆円と
なっています。
一番大きいのが「コレクティブル」というものです。実際のNFTでいうと、
「CryptoPunks(クリフトパンクス)」とか「Meebits(ミービッツ)」など、
デジタルアートで、これが76パーセントを占めています。
他にはゲーム、スポーツの会員権のようなもの、メタバース上での利用、
アートなどに使われています。
302デフォルトの名無しさん
2022/08/06(土) 00:56:36.07ID:c+phwPql >>301
どうせビットコと同じ運命…
どうせビットコと同じ運命…
303デフォルトの名無しさん
2022/08/06(土) 01:06:28.07ID:A+9lJBuH304デフォルトの名無しさん
2022/08/06(土) 09:37:57.13ID:Cm9is4wi305デフォルトの名無しさん
2022/08/06(土) 09:38:29.30ID:Cm9is4wi >>285
ダメ、絶対。
ダメ、絶対。
306デフォルトの名無しさん
2022/08/06(土) 09:39:01.65ID:Cm9is4wi >>287
やめとけ
やめとけ
307デフォルトの名無しさん
2022/08/06(土) 10:58:35.84ID:gIOgTSvM じゃあどれならいいんだよw
308デフォルトの名無しさん
2022/08/06(土) 15:56:25.30ID:eSBCWCwI Win32API
309デフォルトの名無しさん
2022/08/06(土) 16:07:28.86ID:LLV93bqs 知識としては必要だが、最初から最後までフレームワーク使わずにWin32だけでやるのは時間の無駄だろう。
310デフォルトの名無しさん
2022/08/06(土) 19:02:31.04ID:E+U3mr6/ そうでもない
311デフォルトの名無しさん
2022/08/06(土) 19:03:10.71ID:f4eIJ5Mn >>309
フレームワークの学習コストはどのように評価しますか?
フレームワークの学習コストはどのように評価しますか?
312デフォルトの名無しさん
2022/08/06(土) 19:07:52.04ID:LLV93bqs この先そのコストを回収できるくらいプログラミングする見込みがあるかどうか次第だな。
313デフォルトの名無しさん
2022/08/06(土) 20:41:33.14ID:mK2UhqOX そのWin32APIのラッパーとなるべきフレームワークがことごとくゴミなんだもんよ
MS金余ってんだからQtでも買っときゃよかったのに
MS金余ってんだからQtでも買っときゃよかったのに
314デフォルトの名無しさん
2022/08/06(土) 20:42:57.75ID:A61GDKit >>312
学習した結果フレームワークがうんこだったと自覚したときの絶望感を、学習前にどのように織り込めばいいですか?
学習した結果フレームワークがうんこだったと自覚したときの絶望感を、学習前にどのように織り込めばいいですか?
315デフォルトの名無しさん
2022/08/06(土) 20:58:55.11ID:LLV93bqs 素のwin32と既存のフレームワークと自前のオレオレフレームワークのどれが一番うんこか次第だな。
316デフォルトの名無しさん
2022/08/06(土) 21:37:39.73ID:A61GDKit >>315
あなた自身はどう思っていますか?
あなた自身はどう思っていますか?
317デフォルトの名無しさん
2022/08/06(土) 21:39:07.40ID:nAr30yJy win95時代にCで作ったハンドルメモリリーク検知付きのフレームワーク()があるけどいまだに世話になってる
新規でならC#で適当に作るがアプリの寿命を考えるといまだに上記フレームワーク()になるだろう
新規でならC#で適当に作るがアプリの寿命を考えるといまだに上記フレームワーク()になるだろう
318デフォルトの名無しさん
2022/08/06(土) 21:54:12.10ID:S1WP3eVH 男なら誰しも自分だけの車輪再発明・・・じゃなかったフレームワークを心に持つよな
319デフォルトの名無しさん
2022/08/06(土) 22:13:31.50ID:mZ1/a9El wxWidgets、DelphiのVLC、それの模倣のLazarus Component Library (LCL)位が今でも活発に開発されてるWin32フレームワークか。
wxWidgetsとC++Builder(VCL)には散々世話になった。
wxWidgetsとC++Builder(VCL)には散々世話になった。
320デフォルトの名無しさん
2022/08/06(土) 22:14:29.50ID:mZ1/a9El ×DelphiのVLC
○DelphiのVCL
○DelphiのVCL
321デフォルトの名無しさん
2022/08/07(日) 21:24:24.65ID:WV/2UEsV >>317
メモリーリークは
https://mevius.5ch.net/test/read.cgi/tech/1652160275/365
に一晩でちょいちょい、て書いたやつを貼ったら沈黙されてしまった…
普通誰でもそうすると思うのに、rust! rust! と連呼されてもねえ
でもハンドルリークは考えたことなかったなあ…
メモリーリークは
https://mevius.5ch.net/test/read.cgi/tech/1652160275/365
に一晩でちょいちょい、て書いたやつを貼ったら沈黙されてしまった…
普通誰でもそうすると思うのに、rust! rust! と連呼されてもねえ
でもハンドルリークは考えたことなかったなあ…
322デフォルトの名無しさん
2022/08/07(日) 22:03:11.08ID:fAQAAmLc323デフォルトの名無しさん
2022/08/07(日) 22:19:05.28ID:PKSgBlrY >>322
なる
なる
324デフォルトの名無しさん
2022/08/07(日) 22:21:12.86ID:c43tg8Rc ならんだろ。
325デフォルトの名無しさん
2022/08/09(火) 01:28:22.61ID:6wLu/xJX オレオレライブラリ作って悦に入るのは初心者レベル2のやること
326デフォルトの名無しさん
2022/08/09(火) 16:24:46.11ID:rOh0RBr3 経験しておくとライブラリの手抜きがわかってシステムのバグを予想しやすくなるけどな
327デフォルトの名無しさん
2022/08/14(日) 17:46:08.17ID:qUOj9dBB328デフォルトの名無しさん
2022/08/14(日) 18:48:02.83ID:W71axh2R Googleは車輪の再発明しかしてないけどな
検索だって最初じゃない
その代わり頭の良い奴らが本気でやるから良いものになる
日本が得意としてた事だったがな
検索だって最初じゃない
その代わり頭の良い奴らが本気でやるから良いものになる
日本が得意としてた事だったがな
329デフォルトの名無しさん
2022/08/15(月) 10:36:30.31ID:LrEHeo01 頭の悪い人が足引っ張る法律作って海外に先を越されるパティーン
330デフォルトの名無しさん
2022/08/15(月) 10:47:36.26ID:VNnB4sci331デフォルトの名無しさん
2022/08/15(月) 14:36:52.56ID:+9oi41Wm >>327
GNUも再発明なんか?w
GNUも再発明なんか?w
332デフォルトの名無しさん
2022/08/15(月) 15:43:33.22ID:AOxAYYNB333デフォルトの名無しさん
2022/08/15(月) 16:18:07.18ID:Z5BB7x+B ここで車輪の再発明の指摘は的外れ
発明なんて一切してない
他人の成果物をソース読んでないからといって横取りする傲慢野郎
発明なんて一切してない
他人の成果物をソース読んでないからといって横取りする傲慢野郎
334デフォルトの名無しさん
2022/08/15(月) 17:10:35.77ID:YGdpIuz3 いまさらソフトウェア開発競争を国家間の諍いの次元でしか捉えてないやつは
一行もプログラム組んでないのがアリアリだねw
一行もプログラム組んでないのがアリアリだねw
335デフォルトの名無しさん
2022/08/15(月) 18:25:51.34ID:AOxAYYNB 国家間というより、先に作ってしまった人が他人に別のものを作ってもらいたくない
心理が働くと、「車輪の再発明禁止」という如何にもまっとうなことらしき標語
となる。
心理が働くと、「車輪の再発明禁止」という如何にもまっとうなことらしき標語
となる。
336デフォルトの名無しさん
2022/08/15(月) 19:37:50.16ID:/49gMCwa 車輪の再発明禁止は高機能なソフトウェアをオープンソースにするということで囲い込み、再発明させる気を起こさせなくしてる
オープンソース文化が強いものを更に強くしてしまってる
オープンソース文化が強いものを更に強くしてしまってる
337デフォルトの名無しさん
2022/08/15(月) 23:02:24.27ID:dK5hO1Lx 作って楽しそうなものなもものの内、芸術性を伴わず技術だけで
作れるようなものはほぼ全てオープンソースで無料になってしまっている
(フォトショップみたいな高機能なものは除く)。
作れるようなものはほぼ全てオープンソースで無料になってしまっている
(フォトショップみたいな高機能なものは除く)。
338デフォルトの名無しさん
2022/08/15(月) 23:10:53.60ID:AwPJsiC0 再発明をしないまでもその部品と構成や仕組みを知っていると高機能なアプリ開発などへの機転や応用が利きやすいと思う
339デフォルトの名無しさん
2022/08/16(火) 01:19:06.38ID:agNT7bMr 以下のコードが動かなくて困ってます。
pgfFrame = AVIStreamGetFrameOpen(paviStream, (LPBITMAPINFOHEADER)AVIGETFRAMEF_BESTDISPLAYFMT);
AVIStreamGetFrameClose(pgfFrame); ←これを実行したら落ちる
AVIStreamGetFrameCloseを実行しなくても動くのですが、再度Openした時に少しずつメモリを食いつぶして行くので困ってます。
止まった時にVC++の実行ボタンを再度押すと、内部で使ってるDLLがアンロードされてその後は動くようになります。
そうなると何回でもOpen→Close出来る様になり、メモリも食いつぶしません。
どうしたらいいんでしょうか?
pgfFrame = AVIStreamGetFrameOpen(paviStream, (LPBITMAPINFOHEADER)AVIGETFRAMEF_BESTDISPLAYFMT);
AVIStreamGetFrameClose(pgfFrame); ←これを実行したら落ちる
AVIStreamGetFrameCloseを実行しなくても動くのですが、再度Openした時に少しずつメモリを食いつぶして行くので困ってます。
止まった時にVC++の実行ボタンを再度押すと、内部で使ってるDLLがアンロードされてその後は動くようになります。
そうなると何回でもOpen→Close出来る様になり、メモリも食いつぶしません。
どうしたらいいんでしょうか?
340デフォルトの名無しさん
2022/08/16(火) 11:35:45.33ID:2x3mrzZQ >>329
ほんそれ
ほんそれ
341デフォルトの名無しさん
2022/08/16(火) 11:41:24.43ID:2x3mrzZQ342デフォルトの名無しさん
2022/08/16(火) 14:36:20.03ID:agNT7bMr >>341
詳しく書くとこうなってるんです。
AVIStreamGetFrameCloseだけ落ちるんで困ってます。
これを実行しなくても動くのですが、複数回Openするとどんどんメモリを食いつぶすので困ってます…
AVIFileOpen(&paviFile, FileName, OF_READ | OF_SHARE_DENY_NONE, NULL);
AVIFileGetStream(paviFile, &paviStream, streamtypeVIDEO, 0);
pgfFrame = AVIStreamGetFrameOpen(paviStream, (LPBITMAPINFOHEADER)AVIGETFRAMEF_BESTDISPLAYFMT);
if(pgfFrame != NULL){ AVIStreamGetFrameClose(pgfFrame); } ←これだけ落ちる
if(paviStream != NULL){ AVIStreamRelease(paviStream); }
if(paviFile != NULL){ AVIFileRelease(paviFile); }
詳しく書くとこうなってるんです。
AVIStreamGetFrameCloseだけ落ちるんで困ってます。
これを実行しなくても動くのですが、複数回Openするとどんどんメモリを食いつぶすので困ってます…
AVIFileOpen(&paviFile, FileName, OF_READ | OF_SHARE_DENY_NONE, NULL);
AVIFileGetStream(paviFile, &paviStream, streamtypeVIDEO, 0);
pgfFrame = AVIStreamGetFrameOpen(paviStream, (LPBITMAPINFOHEADER)AVIGETFRAMEF_BESTDISPLAYFMT);
if(pgfFrame != NULL){ AVIStreamGetFrameClose(pgfFrame); } ←これだけ落ちる
if(paviStream != NULL){ AVIStreamRelease(paviStream); }
if(paviFile != NULL){ AVIFileRelease(paviFile); }
343デフォルトの名無しさん
2022/08/16(火) 14:45:35.08ID:ySPaUmMI そういう不具合が出るけど是正が困難な処理は別プロセスとして動かして終わったらそのプロセスを終わらすといいよ
解決したら統合すればいい
解決したら統合すればいい
344デフォルトの名無しさん
2022/08/16(火) 15:02:38.50ID:2x3mrzZQ プロセス別けて落とすのも同じ効果だと思うけど
DLLを自前でアンロードするコードを入れても良いんじゃないかな
そもそも
pgfFrame = AVIStreamGetFrameOpen(paviStream, (LPBITMAPINFOHEADER)AVIGETFRAMEF_BESTDISPLAYFMT);
↑
この間の処理に問題があるんじゃないかな
↓
if(pgfFrame != NULL){ AVIStreamGetFrameClose(pgfFrame); } ←これだけ落ちる
DLLを自前でアンロードするコードを入れても良いんじゃないかな
そもそも
pgfFrame = AVIStreamGetFrameOpen(paviStream, (LPBITMAPINFOHEADER)AVIGETFRAMEF_BESTDISPLAYFMT);
↑
この間の処理に問題があるんじゃないかな
↓
if(pgfFrame != NULL){ AVIStreamGetFrameClose(pgfFrame); } ←これだけ落ちる
345デフォルトの名無しさん
2022/08/16(火) 15:28:13.38ID:agNT7bMr >>343-344
ありがとうございます。
>この間の処理に問題があるんじゃないかな
この間は何にもしてなくても落ちちゃうんですよね… なんでだろう?
DLLを自前でアンロードする事も視野に入れてもう少し試行錯誤してみます
ありがとうございます。
>この間の処理に問題があるんじゃないかな
この間は何にもしてなくても落ちちゃうんですよね… なんでだろう?
DLLを自前でアンロードする事も視野に入れてもう少し試行錯誤してみます
346デフォルトの名無しさん
2022/08/16(火) 15:45:44.34ID:2x3mrzZQ AVIFileExit();
してないというオチ?
してないというオチ?
347デフォルトの名無しさん
2022/08/16(火) 15:59:37.24ID:agNT7bMr348デフォルトの名無しさん
2022/08/16(火) 16:18:58.86ID:2x3mrzZQ 本気で解決したいなら再現する全ソースコードを晒すのと
実際に読もうとしてるファイルのURLを晒して逝け
実際に読もうとしてるファイルのURLを晒して逝け
349デフォルトの名無しさん
2022/08/16(火) 17:58:27.74ID:agNT7bMr >>348
あとでその部分だけまとめて再現できるか確かめてみます
あとでその部分だけまとめて再現できるか確かめてみます
350デフォルトの名無しさん
2022/08/16(火) 20:04:29.51ID:xodQRDI1 必要最小限で描いて観たが全然問題無いぞ
351デフォルトの名無しさん
2022/08/16(火) 21:22:52.88ID:agNT7bMr >>350
原因がわかりました。
普通にやると問題なくて、ここにあるコーデックの.dllをリンクすると
AVIStreamGetFrameCloseが上手くいかないようでした。
https://sourceforge.net/projects/x264vfw/files/
このコーデックを使う必要があるのでどうにかならないでしょうかね。
原因がわかりました。
普通にやると問題なくて、ここにあるコーデックの.dllをリンクすると
AVIStreamGetFrameCloseが上手くいかないようでした。
https://sourceforge.net/projects/x264vfw/files/
このコーデックを使う必要があるのでどうにかならないでしょうかね。
352351
2022/08/16(火) 21:27:27.79ID:agNT7bMr 正確にはコーデックの.dllをリンクして
そのコーデックを使っているファイルを読み込むと
AVIStreamGetFrameCloseが失敗するということです。
.dllをリンクしててもそのコーデックを使ってないファイルであれば
AVIStreamGetFrameCloseが失敗する事はなかったです。
そのコーデックを使っているファイルを読み込むと
AVIStreamGetFrameCloseが失敗するということです。
.dllをリンクしててもそのコーデックを使ってないファイルであれば
AVIStreamGetFrameCloseが失敗する事はなかったです。
353351
2022/08/16(火) 23:11:48.85ID:agNT7bMr 古いバージョンにしてみたら直りました!
これで普通に動いてるのでこのまま動かしてみます。
みなさんありがとうございました。
これで普通に動いてるのでこのまま動かしてみます。
みなさんありがとうございました。
354デフォルトの名無しさん
2022/08/17(水) 09:12:41.44ID:17qdbn+g バカの三大特徴
情報を小出しにする&後出しする
自分は間違ってないと思い込む&言い張る
正しい解決策に進まずすぐに別の山に登ろうとする
情報を小出しにする&後出しする
自分は間違ってないと思い込む&言い張る
正しい解決策に進まずすぐに別の山に登ろうとする
355デフォルトの名無しさん
2022/08/17(水) 10:05:31.13ID:75soL8XV FFmpeg 使った方が良くね?
356デフォルトの名無しさん
2022/08/17(水) 11:59:16.72ID:75soL8XV ああ
それを言うなら ffdshow の方だったかな
しかしまだ使えるんかなこれ
それを言うなら ffdshow の方だったかな
しかしまだ使えるんかなこれ
357デフォルトの名無しさん
2022/08/18(木) 16:29:05.82ID:9oKj6z2J xvideos
358デフォルトの名無しさん
2022/08/22(月) 16:22:19.61ID:ChTfYzF8 日本語キーボード日本語Windowsで英数キー(CapsLockキー)のアップを捕捉する事って不可能?
レジストリでキーマップを変えて英数キーを違うキーに割り当てた後なら一般的なキー同様に捕捉出来ることは確認できたけどそういう迂回方法無しで出来る方法があれば教えてもらいたい
レジストリでキーマップを変えて英数キーを違うキーに割り当てた後なら一般的なキー同様に捕捉出来ることは確認できたけどそういう迂回方法無しで出来る方法があれば教えてもらいたい
359デフォルトの名無しさん
2022/08/22(月) 17:26:47.15ID:Zp58Sca6 GetKeyState( vk_code )
VK_CAPITAL CapsLockのトグル状態 のほうじゃなく
VK_OEM_ATTN 仮想キーコード 240 (0xF0) で今の押下状態は取得できそうではあるな
IMEはちゃんと shift 無し Caps lock キーを受け取って反応できてるんだし
VK_CAPITAL CapsLockのトグル状態 のほうじゃなく
VK_OEM_ATTN 仮想キーコード 240 (0xF0) で今の押下状態は取得できそうではあるな
IMEはちゃんと shift 無し Caps lock キーを受け取って反応できてるんだし
360デフォルトの名無しさん
2022/08/22(月) 18:22:10.86ID:9oiM0iks ないです
361デフォルトの名無しさん
2022/08/22(月) 18:27:49.15ID:x6NjRtAl ノートパソコンなどの省スペースキーボードについてるFnキーも拾えないんだよなあ、GetKeyState&GetAsyncKeyState
362デフォルトの名無しさん
2022/08/22(月) 21:05:07.73ID:pMMCnUP8 fnはosの預かり知らないキーなので同列にすんなハゲハゲハゲハゲハゲ!!!!!!!!!!!
363デフォルトの名無しさん
2022/08/22(月) 21:25:09.66ID:6BQsurqE キーボードのコントローラーが勝手に処理してるでしょう
CPUまで線がつながってない感じ
CPUまで線がつながってない感じ
364デフォルトの名無しさん
2022/08/23(火) 07:39:49.30ID:W/9/eWQQ >>359
SetTimerとかで定期監視するしか無さそうか
SetTimerとかで定期監視するしか無さそうか
365デフォルトの名無しさん
2022/08/25(木) 23:57:16.63ID:ePt16zWH 今はarduinoとかで自分好みのキーボード作れる時代なんだぜ
知らんけど
知らんけど
366デフォルトの名無しさん
2022/08/26(金) 10:40:49.53ID:lf60l9vY 虫歯が痛いなら総入れ歯にしましょう!レベルの解決策w
367デフォルトの名無しさん
2022/08/26(金) 12:29:39.93ID:NrrxL3kr 禿げてきたら丸坊主にしましょう!
368デフォルトの名無しさん
2022/08/26(金) 12:48:26.23ID:im0ZYKIt なんて日だ!
369デフォルトの名無しさん
2022/08/31(水) 12:36:32.64ID:twZsJrmt >>355
ライセンスはどうしてるの?
GPLやLGPLだから、リンクすれば最低でも自作プログラムのオブジェクト
ファイルの公開が必要になるだろう。
別コマンドで実行する場合は、*.exe が自作アプリと合わせて二つ必要になるし、
データの受け渡しの効率も落ちる。
ライセンスはどうしてるの?
GPLやLGPLだから、リンクすれば最低でも自作プログラムのオブジェクト
ファイルの公開が必要になるだろう。
別コマンドで実行する場合は、*.exe が自作アプリと合わせて二つ必要になるし、
データの受け渡しの効率も落ちる。
370デフォルトの名無しさん
2022/09/02(金) 22:59:42.92ID:L2uZLmEf 質問です。
GetCharABCWidths()を用いて、TextOut()で描いた文字のABC構造体を取得しています。
Arialフォントのような欧文フォントを用いてTextOut()で"あ"を描いた場合、そのフォント内には"あ"という日本語文字は入っていないため、適当な代替フォントに置き換えられて"あ"が描かれるようです(たぶん「フォントリンク」という機能だと思います)。
この時にGetCharABCWidths()で得られるABC構造体には、描かれた"あ"の寸法が入っておらず、ダミーの寸法が入ってきてしまいます。
msdnのGetCharABCWidths()APIの項には、
The ABC widths of the default character are used for characters outside the range of the currently selected font.
とあるので、APIとしては仕様どおりの動作なのですが、では、描かれた"あ"のABC寸法を得るにはどうすればよいのでしょうか?
以上、よろしくお願いします。
GetCharABCWidths()を用いて、TextOut()で描いた文字のABC構造体を取得しています。
Arialフォントのような欧文フォントを用いてTextOut()で"あ"を描いた場合、そのフォント内には"あ"という日本語文字は入っていないため、適当な代替フォントに置き換えられて"あ"が描かれるようです(たぶん「フォントリンク」という機能だと思います)。
この時にGetCharABCWidths()で得られるABC構造体には、描かれた"あ"の寸法が入っておらず、ダミーの寸法が入ってきてしまいます。
msdnのGetCharABCWidths()APIの項には、
The ABC widths of the default character are used for characters outside the range of the currently selected font.
とあるので、APIとしては仕様どおりの動作なのですが、では、描かれた"あ"のABC寸法を得るにはどうすればよいのでしょうか?
以上、よろしくお願いします。
371デフォルトの名無しさん
2022/09/04(日) 10:57:34.63ID:RQxkFcRF GetTextExtentPoint32()
SetTextJustification()
DrawText()
SetTextJustification()
DrawText()
372デフォルトの名無しさん
2022/09/04(日) 16:57:14.39ID:aZX/9mcR >>371
ありがとうございます。
GetTextExtentPoint32()だと、文字の左余白(A), 文字自体の幅(B), 文字の右余白(C)の
和の値(A+B+C)しか得ることができません。
そうではなくて、各文字について、A,B,Cそれぞれの値が知りたいのです。
それを返してくれるのがGetCharABCWidths()なのですが、>>370に書いたように
正しい値が返ってこない場合があります。
一応、自分で考えた対処方法として、
1. GetTextExtentPoint32()で、文字のA+B+Cの値を取得
2. その幅を持つ白色の描画領域を確保し、その原点位置から黒色でその文字を描画
3. 領域に描画された結果(白・黒)を左端から走査して、左余白(A)を得る
4. 同様に右端から走査して、右余白(C)を得る
5. 手順1で取得したA+B+Cの値からAとCを減じてBを得る
という風にすれば、(どんくさいですが)知りたい値を得ることはできると思います。
ちなみに、実際には、上のやり方そのままではうまくいかないことがありそうです。
というのも、イタリック体にしたりすると、AやCの値がマイナスになることがあるからです。
その場合、上のやり方だと、文字の左右が領域からはみ出て描画されてしまいます。
なので、左右にある程度の余裕を持った領域、例えば幅「100+A+B+C+100」の領域を確保し、
(x,y)=(100,0)の位置に文字を描画する。
そうするとはみ出さずに描画できるので、100の余分な余白があることを考慮に入れて計算すれば、
A,B,Cを得られるだろうと考えています。
でも、こんなやり方は面倒くさい。もっとマシなやり方はないのだろうか・・・。
例えば、フォントリンク?で描画されたときに、どのフォントが使われたのかがわかれば、
そのフォントを明示的にデバイスコンテキストに指定してGetCharABCWidths()呼べば
A,B,Cの幅を得られるはずですが、フォントを知る方法はわかりませんでした。
ありがとうございます。
GetTextExtentPoint32()だと、文字の左余白(A), 文字自体の幅(B), 文字の右余白(C)の
和の値(A+B+C)しか得ることができません。
そうではなくて、各文字について、A,B,Cそれぞれの値が知りたいのです。
それを返してくれるのがGetCharABCWidths()なのですが、>>370に書いたように
正しい値が返ってこない場合があります。
一応、自分で考えた対処方法として、
1. GetTextExtentPoint32()で、文字のA+B+Cの値を取得
2. その幅を持つ白色の描画領域を確保し、その原点位置から黒色でその文字を描画
3. 領域に描画された結果(白・黒)を左端から走査して、左余白(A)を得る
4. 同様に右端から走査して、右余白(C)を得る
5. 手順1で取得したA+B+Cの値からAとCを減じてBを得る
という風にすれば、(どんくさいですが)知りたい値を得ることはできると思います。
ちなみに、実際には、上のやり方そのままではうまくいかないことがありそうです。
というのも、イタリック体にしたりすると、AやCの値がマイナスになることがあるからです。
その場合、上のやり方だと、文字の左右が領域からはみ出て描画されてしまいます。
なので、左右にある程度の余裕を持った領域、例えば幅「100+A+B+C+100」の領域を確保し、
(x,y)=(100,0)の位置に文字を描画する。
そうするとはみ出さずに描画できるので、100の余分な余白があることを考慮に入れて計算すれば、
A,B,Cを得られるだろうと考えています。
でも、こんなやり方は面倒くさい。もっとマシなやり方はないのだろうか・・・。
例えば、フォントリンク?で描画されたときに、どのフォントが使われたのかがわかれば、
そのフォントを明示的にデバイスコンテキストに指定してGetCharABCWidths()呼べば
A,B,Cの幅を得られるはずですが、フォントを知る方法はわかりませんでした。
373デフォルトの名無しさん
2022/09/04(日) 17:09:08.67ID:A8KVTWK8 https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-gettextmetrics
https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-textmetrica
>日本語文字は入っていない
結局この問題は残るんじゃないかな
確実に日本語グリフが入ってるフォントを指定
https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-textmetrica
>日本語文字は入っていない
結局この問題は残るんじゃないかな
確実に日本語グリフが入ってるフォントを指定
374デフォルトの名無しさん
2022/09/04(日) 19:32:04.85ID:aZX/9mcR ありがとうございます。
作っているアプリの仕様は、
・アプリのユーザは、フォントと文字列を自由に指定できる
・画面上には、指定したフォントで、指定した文字列が描画される
やりたいことは、
・ユーザが上記の操作で描画させた文字列中の各文字について、A,B,Cの幅を知りたい
ということなのです。
本来NGな組み合わせ(例:欧文フォントと、全角まじり文字列との組み合わせ)をユーザーが指定した時、
存在しない文字がいわゆる豆腐(□)にでも化けてくれれば、そこでユーザは別のフォントを
選びなおすはずです。
しかし、文字化けせずに一見正しく表示されてしまうため、困っています。
作っているアプリの仕様は、
・アプリのユーザは、フォントと文字列を自由に指定できる
・画面上には、指定したフォントで、指定した文字列が描画される
やりたいことは、
・ユーザが上記の操作で描画させた文字列中の各文字について、A,B,Cの幅を知りたい
ということなのです。
本来NGな組み合わせ(例:欧文フォントと、全角まじり文字列との組み合わせ)をユーザーが指定した時、
存在しない文字がいわゆる豆腐(□)にでも化けてくれれば、そこでユーザは別のフォントを
選びなおすはずです。
しかし、文字化けせずに一見正しく表示されてしまうため、困っています。
375デフォルトの名無しさん
2022/09/04(日) 23:44:22.53ID:047Xbk5t >>374
ABCなんて何に使うんだろうと思ったら、フォント情報を表示するツールなのか。
GetCharacterPlacement + ExtTextOut / ETO_GLYPH_INDEX あたりで、グリフを直接描画すれば
フォントリンクは効かないはずなので無い文字は豆腐になるはず...
ABCなんて何に使うんだろうと思ったら、フォント情報を表示するツールなのか。
GetCharacterPlacement + ExtTextOut / ETO_GLYPH_INDEX あたりで、グリフを直接描画すれば
フォントリンクは効かないはずなので無い文字は豆腐になるはず...
376デフォルトの名無しさん
2022/09/05(月) 20:04:11.68ID:lEq1EKXB ありがとうございます。
参考にさせていただきます。
可能ならば、無理やり豆腐にするんじゃなくて、フォントリンクで表示されたとおりの文字の情報を取得できるのが理想ですが、難しそうですね・・・
参考にさせていただきます。
可能ならば、無理やり豆腐にするんじゃなくて、フォントリンクで表示されたとおりの文字の情報を取得できるのが理想ですが、難しそうですね・・・
377375
2022/09/05(月) 23:27:10.40ID:ViUtFxr1 >>376
GetCharABCWidthsで取得しても1文字単位でしか取得できないので、筆記体やアラビア文字のように前後の文字や位置によって大きさが変わるような場合には対応できないので、ABCの値は参考程度にしか使えないと思います。
フォントリンク先のフォント情報(LOGFONT)は、メタファイルに出力後そのメタファイルを解析するというちょっとトリッキーな方法で可能です。
https://stackoverflow.com/questions/54050095/how-to-tell-if-a-surrogate-pair-unicode-character-is-supported-by-the-font
GetCharABCWidthsで取得しても1文字単位でしか取得できないので、筆記体やアラビア文字のように前後の文字や位置によって大きさが変わるような場合には対応できないので、ABCの値は参考程度にしか使えないと思います。
フォントリンク先のフォント情報(LOGFONT)は、メタファイルに出力後そのメタファイルを解析するというちょっとトリッキーな方法で可能です。
https://stackoverflow.com/questions/54050095/how-to-tell-if-a-surrogate-pair-unicode-character-is-supported-by-the-font
378デフォルトの名無しさん
2022/09/06(火) 20:18:06.15ID:H7QyPUx+ 大変有用な情報、ありがとうございます。
確かに、筆記体のような手を繋ぐフォントの場合、うまくいきませんね。
これは気づきませんでした。
実際にはそういったフォントが使われることはまれなので、大きな問題にはならないかな、と思います。
確かに、筆記体のような手を繋ぐフォントの場合、うまくいきませんね。
これは気づきませんでした。
実際にはそういったフォントが使われることはまれなので、大きな問題にはならないかな、と思います。
379デフォルトの名無しさん
2022/09/10(土) 21:08:59.03ID:eGqDTe4p HBITMAP hBitmap; に既に bitmap image が load されているとき
BITMAP bm = {0};
GetObject(hBitmap, sizeof(BITMAP), &bm);
で bm.bmBits の指す場所に pixles data があることは確認出来るのですが
bm.bmBits は何時 GlobalFree(bm.bmBits); すれば良いのでしょうか?
放置しても memory leak の心配はありませんか?
BITMAP bm = {0};
GetObject(hBitmap, sizeof(BITMAP), &bm);
で bm.bmBits の指す場所に pixles data があることは確認出来るのですが
bm.bmBits は何時 GlobalFree(bm.bmBits); すれば良いのでしょうか?
放置しても memory leak の心配はありませんか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- ハゲがレジやってるコンビニって
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 姉が爆乳パジャマ姿でうっかりドキドキしてしまった……デカすぎてヤバい
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
