C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part144
https://mevius.5ch.net/test/read.cgi/tech/1563769115/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
探検
C++相談室 part145
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/09/13(金) 17:13:24.60ID:/ygW08Jq498デフォルトの名無しさん
2019/10/19(土) 01:28:27.26ID:kDntEbbb mingw使わずに標準のwindowsの環境で使えるようになってから出直してきて
499デフォルトの名無しさん
2019/10/19(土) 01:36:12.28ID:+xsHXYvs mesonいいぞー
500デフォルトの名無しさん
2019/10/19(土) 01:37:16.21ID:JKxr+RAJ makeとかのビルドツールって超重要なはずなのにおざなりな状況になってるのは不思議だ
なんとかしてくれ
なんとかしてくれ
501デフォルトの名無しさん
2019/10/19(土) 01:49:35.75ID:kiA3Djjo クロスプラットフォームなソフト作るにしても、成果物が対象の環境で動けば良い訳で、ビルドをどの環境でも出来ることにそれほど意味はないからね
てかunix系でgccやclang使って開発しているものをVCに入れても謎の独自仕様でコンパイルできないとかザラだしね
てかunix系でgccやclang使って開発しているものをVCに入れても謎の独自仕様でコンパイルできないとかザラだしね
502デフォルトの名無しさん
2019/10/19(土) 04:05:50.65ID:kDntEbbb >>500
そう言って立ち上がった人は100億人くらいいたが誰一人として帰ってくる者はいなかった
そう言って立ち上がった人は100億人くらいいたが誰一人として帰ってくる者はいなかった
503デフォルトの名無しさん
2019/10/19(土) 04:25:19.36ID:Qviva8VV >>502
ほんとこれw
ほんとこれw
504デフォルトの名無しさん
2019/10/19(土) 07:26:21.05ID:4XSJxZBk >>498
wslでmingwクロス環境はマクソ提供だけど
wslでmingwクロス環境はマクソ提供だけど
505デフォルトの名無しさん
2019/10/19(土) 09:24:58.31ID:wYu0/eCZ あらゆるビルドツールは怪獣化して、怪獣を飼いならすためのラッパーが必要になり、そしてそのラッパーももれなく怪獣化する
歴史が証明しており例外はない
歴史が証明しており例外はない
506デフォルトの名無しさん
2019/10/19(土) 09:25:25.42ID:WQwZNfDO 会社でifstreamのファイルオープンがエラーになるのはなぜなのか不明。assert()で引っかかる。
Visual Studio 2008コマンドプロンプトでコンパイルしたプログラムで、コードは単純化
して示したものが下記のようなもの。
std::ifstream ifs1;
for (n = 0; n < 8; ++n) {
ifs1.open(s[n].c_str());
assert(ifs1); // もしくはassert(ifs1.is_open());
関数(ifs1);
ifs1.close();
ifs1.clear();
}
コーディング上に間違いがあるのかいな。ファイルが使用中のためにエラー
でもないようだし。
よくわからんからCのFILE *に変更して対処したけどコンパイラの欠陥か。
ifstreamを宣言した後に ifs1.clear(); が必要なのか。
Visual Studio 2008コマンドプロンプトでコンパイルしたプログラムで、コードは単純化
して示したものが下記のようなもの。
std::ifstream ifs1;
for (n = 0; n < 8; ++n) {
ifs1.open(s[n].c_str());
assert(ifs1); // もしくはassert(ifs1.is_open());
関数(ifs1);
ifs1.close();
ifs1.clear();
}
コーディング上に間違いがあるのかいな。ファイルが使用中のためにエラー
でもないようだし。
よくわからんからCのFILE *に変更して対処したけどコンパイラの欠陥か。
ifstreamを宣言した後に ifs1.clear(); が必要なのか。
507デフォルトの名無しさん
2019/10/19(土) 09:50:39.86ID:wYu0/eCZ ifsreamってcloseの後に再使用できる保証あったっけ?
ifs1の宣言をfor文の中に入れて毎回オブジェクト作り直す方が無難に見える
ifs1の宣言をfor文の中に入れて毎回オブジェクト作り直す方が無難に見える
508デフォルトの名無しさん
2019/10/19(土) 09:51:32.93ID:wYu0/eCZ 宣言じゃないや定義
509デフォルトの名無しさん
2019/10/19(土) 09:54:59.18ID:Xn59Im0u makeが複雑なんじゃなくて
多様な環境すべてに対応するように書くことが複雑なわけで。
だったらdockerなり使って一つの環境だけでの提供を考える方が楽。
多様な環境すべてに対応するように書くことが複雑なわけで。
だったらdockerなり使って一つの環境だけでの提供を考える方が楽。
510デフォルトの名無しさん
2019/10/19(土) 11:50:11.90ID:Xq/UOX2V511デフォルトの名無しさん
2019/10/19(土) 12:33:25.60ID:IyvFodwr >>484
あれ、Winの構造化例外ってそもそもtry..catchには引っかからなかったような……
あれ、Winの構造化例外ってそもそもtry..catchには引っかからなかったような……
512デフォルトの名無しさん
2019/10/19(土) 12:41:43.65ID:IyvFodwr513デフォルトの名無しさん
2019/10/19(土) 13:51:45.42ID:2wK0PqU+ C++でv8のjavascriptを使うために
インストールしようと色々やってるんだけどどうにもうまく行かない。
https://qiita.com/mofumonta/items/ef3d890e13a7c1701748
このサイトを参考にしながら進めてるんだけど
「depot-toolsインストール」の環境変数を通す項目で
C:\v8\depot_tools\win_tools-2_7_6_bin\python\bin
このパスがダウンロードしてきたdepot-toolsにはないんだけど、
どこにあるか誰か知りませんか?
スレチだったらごめんなさい。
インストールしようと色々やってるんだけどどうにもうまく行かない。
https://qiita.com/mofumonta/items/ef3d890e13a7c1701748
このサイトを参考にしながら進めてるんだけど
「depot-toolsインストール」の環境変数を通す項目で
C:\v8\depot_tools\win_tools-2_7_6_bin\python\bin
このパスがダウンロードしてきたdepot-toolsにはないんだけど、
どこにあるか誰か知りませんか?
スレチだったらごめんなさい。
514デフォルトの名無しさん
2019/10/19(土) 14:48:33.14ID:g7gJ/kc1 おま環
何をダウソしたかくらいは書け
何をダウソしたかくらいは書け
515デフォルトの名無しさん
2019/10/19(土) 15:03:15.21ID:g7gJ/kc1 python2.7 が既に入ってるなら
その bin に path 通しとけば良いんかな
その bin に path 通しとけば良いんかな
516デフォルトの名無しさん
2019/10/19(土) 15:14:23.88ID:Q3nSZoDU >>483
C の関数が呼び出すコールバックを C++ で書いた場合、環境によってはコールバックからの例外が
C の関数を通過してくる。環境によっては通過できずに terminate() するけど。
厳密に「Cの関数」じゃなくなるけど qsort(), bsearch() については例外が通過できるものと規定されている。
あとは未定義動作となる場合の反応として例外が飛んでくることはあるかもしれない。
C の関数が呼び出すコールバックを C++ で書いた場合、環境によってはコールバックからの例外が
C の関数を通過してくる。環境によっては通過できずに terminate() するけど。
厳密に「Cの関数」じゃなくなるけど qsort(), bsearch() については例外が通過できるものと規定されている。
あとは未定義動作となる場合の反応として例外が飛んでくることはあるかもしれない。
517デフォルトの名無しさん
2019/10/19(土) 15:22:29.09ID:2wK0PqU+ >>514
忘れてた。スマヌ。
Windows10 X64
Visual Studio Community 2019
Python 3.7.4(64-bit)
Git version 2.23.0.windows.1
ダウンロードしたのは
https://chromium.googlesource.com/chromium/tools/depot_tools.git
ここから「x64 Native Tools Command Prompt for VS 2019」
で「git clone」を使ってダウンロードしました。
>>515
python自体のbinフォルダは試してませんでした。
ちょっとやってみます。
忘れてた。スマヌ。
Windows10 X64
Visual Studio Community 2019
Python 3.7.4(64-bit)
Git version 2.23.0.windows.1
ダウンロードしたのは
https://chromium.googlesource.com/chromium/tools/depot_tools.git
ここから「x64 Native Tools Command Prompt for VS 2019」
で「git clone」を使ってダウンロードしました。
>>515
python自体のbinフォルダは試してませんでした。
ちょっとやってみます。
518デフォルトの名無しさん
2019/10/19(土) 15:27:23.69ID:g7gJ/kc1 OS とかツールは全部違うけど
https://chromium.googlesource.com/chromium/tools/depot_tools.git
これ clone しても確かに win_tools-2_7_6_bin は無かった
https://chromium.googlesource.com/chromium/tools/depot_tools.git
これ clone しても確かに win_tools-2_7_6_bin は無かった
519デフォルトの名無しさん
2019/10/19(土) 15:29:04.62ID:ydKYIai+ 何故公式のインストール手順を読まないのか
520デフォルトの名無しさん
2019/10/19(土) 19:15:58.17ID:fDUUZQql Node.js じゃ、ダメなのか?
521デフォルトの名無しさん
2019/10/19(土) 20:05:28.35ID:+xsHXYvs >>511
なんか設定次第で引っかかるようにならなかったっけ・・・
なんか設定次第で引っかかるようにならなかったっけ・・・
522517です
2019/10/20(日) 17:45:24.74ID:njFFTJVf523蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 20:19:16.97ID:hyX4MvIl 今、YappyCamという録画ソフトを作っています。以下のソースをご覧下さい。
https://github.com/katahiromz/YappyCam/blob/master/sound.hpp
https://github.com/katahiromz/YappyCam/blob/master/sound.hpp#L125
https://github.com/katahiromz/YappyCam/blob/master/sound.cpp#L154
このSoundが音声を扱うクラスになっております。
スレッド関数Sound::ThreadProcで録音処理を行っています。
std::vector<BYTE> m_wave_dataがサウンドバッファです。
Sound::FlushDataがバッファを吐き出す関数です。
現在、SSDが主流になりつつありますが、ハードディスクでもトラブルなく使えるようにしたいです。いくつか質問します。
1.m_wave_dataをstaticな固定バッファにすべきか。するとすればどれぐらいの容量か。
2.もっといいバッファリングの方法はないか。
お願いします。
https://github.com/katahiromz/YappyCam/blob/master/sound.hpp
https://github.com/katahiromz/YappyCam/blob/master/sound.hpp#L125
https://github.com/katahiromz/YappyCam/blob/master/sound.cpp#L154
このSoundが音声を扱うクラスになっております。
スレッド関数Sound::ThreadProcで録音処理を行っています。
std::vector<BYTE> m_wave_dataがサウンドバッファです。
Sound::FlushDataがバッファを吐き出す関数です。
現在、SSDが主流になりつつありますが、ハードディスクでもトラブルなく使えるようにしたいです。いくつか質問します。
1.m_wave_dataをstaticな固定バッファにすべきか。するとすればどれぐらいの容量か。
2.もっといいバッファリングの方法はないか。
お願いします。
524蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 21:02:47.12ID:hyX4MvIl スピード命です。フレーム落ちは絶対にダメだそうです。
525デフォルトの名無しさん
2019/10/20(日) 21:06:32.98ID:I/H74RW7 古臭いスタイルはさておき・・・
(別にそれでいいと思うよ)
なぜバッファリングしてる?
vectorにためずにwriteしたらいいじゃん
readとwriteの単位が合わないとか?
バッファリングするならreader/writerで別スレッドにした方がいいかもね
オーディオの処理なんだからおれなら動的メモリ確保の走るvectorは使わないね
最悪システムコールだから音が途切れる可能性が高まる
一瞬かもしれないが音は少しでも途切れるとノイズになる
最適なバッファ量はそのルーチンがどれぐらいのジッターで駆動してか計測して決めればいい
あとバッファリングすればそれだけ遅延が発生するから注意
本来ビデオ側と同期をとる必要あるけどPCだと適当だよな
CE機器だと完璧に合わせるけど
(別にそれでいいと思うよ)
なぜバッファリングしてる?
vectorにためずにwriteしたらいいじゃん
readとwriteの単位が合わないとか?
バッファリングするならreader/writerで別スレッドにした方がいいかもね
オーディオの処理なんだからおれなら動的メモリ確保の走るvectorは使わないね
最悪システムコールだから音が途切れる可能性が高まる
一瞬かもしれないが音は少しでも途切れるとノイズになる
最適なバッファ量はそのルーチンがどれぐらいのジッターで駆動してか計測して決めればいい
あとバッファリングすればそれだけ遅延が発生するから注意
本来ビデオ側と同期をとる必要あるけどPCだと適当だよな
CE機器だと完璧に合わせるけど
526デフォルトの名無しさん
2019/10/20(日) 21:15:47.21ID:PJrfugKB COBOLのWRITE命令みたいに非同期書き込み&バッファローテーションてか?
あの当時のアホOSならともかく今どきアプリでそんなことせにゃならんか?
ベアメタルなら面白そうだけど
あの当時のアホOSならともかく今どきアプリでそんなことせにゃならんか?
ベアメタルなら面白そうだけど
527デフォルトの名無しさん
2019/10/20(日) 21:16:42.61ID:Vt7fKSBc 遅延の原因は、vector::insert()でしょ。
528デフォルトの名無しさん
2019/10/20(日) 21:24:56.14ID:akKR2ina ズらすの?
529デフォルトの名無しさん
2019/10/20(日) 21:27:13.38ID:peAHiKUT 誰がハゲやねん
530蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 22:12:11.93ID:2g822Cxo ああそうか。std::FILE/CreateFileそのものがバッファリングしてるんだ。ならば下手なバッファリングは必要ないと。
普通にI/Oすることにします。ありがとうございます。
普通にI/Oすることにします。ありがとうございます。
531蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 22:21:50.50ID:2g822Cxo std::vectorのメモリー動的確保は音声処理では不味いと。
ハードディスク環境でジッターを測定して見ないと。わかりました。
ハードディスク環境でジッターを測定して見ないと。わかりました。
532デフォルトの名無しさん
2019/10/20(日) 22:32:55.48ID:I/H74RW7533蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 22:59:16.11ID:2g822Cxo534蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 23:12:22.20ID:2g822Cxo setvbufって便利な関数を見つけた。これ使うか。
535デフォルトの名無しさん
2019/10/20(日) 23:13:52.92ID:fVQAzz8M 音声のバッファリングには普通はリングバッファを使う
536蟻人間 ◆T6xkBnTXz7B0
2019/10/20(日) 23:28:56.20ID:2g822Cxo ここまでのまとめ。
リングバッファを使う。
十分大きなバッファサイズでsetvbufを使う。
リングバッファへの読み書きは別スレッドにする。
バッファが空のときはイベント待ちで休ませる。
リングバッファを使う。
十分大きなバッファサイズでsetvbufを使う。
リングバッファへの読み書きは別スレッドにする。
バッファが空のときはイベント待ちで休ませる。
537デフォルトの名無しさん
2019/10/20(日) 23:44:50.34ID:Vt7fKSBc 別スレッドにキューイングするのに適したC++標準クラスは何かな?
538デフォルトの名無しさん
2019/10/21(月) 06:50:33.92ID:iwcvXj42 ゴチャゴチャ言うならビルトイン配列使っとけ
539デフォルトの名無しさん
2019/10/21(月) 15:01:03.56ID:c9dhXgWB C++から呼べるし
C++を呼べる
C++を呼べる
540デフォルトの名無しさん
2019/10/21(月) 15:43:44.16ID:M4XH2/Bk >>537
Queue への読み書きは、1要素当たりは短時間で済むことが多いので、
Queueを読み書きする場所で、必ず Critical Section などで囲むと良い。
一度に沢山の要素をまとめて書き込みたい場合は、原則的には、
1要素を書き込む処理をこまめに、Critical Section で囲むようにする。
必ずしも1要素ずつ囲む必要は無いが、こまめに囲った方が、
別スレッドの待ち時間が減ることが期待できるが、その意味が有る場合と
無い場合とが有る。
Critical Section の代わりに、Mutex や Semaphore などを使うことも出来る。
Queue への読み書きは、1要素当たりは短時間で済むことが多いので、
Queueを読み書きする場所で、必ず Critical Section などで囲むと良い。
一度に沢山の要素をまとめて書き込みたい場合は、原則的には、
1要素を書き込む処理をこまめに、Critical Section で囲むようにする。
必ずしも1要素ずつ囲む必要は無いが、こまめに囲った方が、
別スレッドの待ち時間が減ることが期待できるが、その意味が有る場合と
無い場合とが有る。
Critical Section の代わりに、Mutex や Semaphore などを使うことも出来る。
541デフォルトの名無しさん
2019/10/21(月) 17:20:19.00ID:Yxovtd3S キャッシュに配列を置けばいいじゃねえか
かんたんだろ
APUの近くに配列でOK
複雑なデータ構造なんて考える必要ナシ
かんたんだろ
APUの近くに配列でOK
複雑なデータ構造なんて考える必要ナシ
542デフォルトの名無しさん
2019/10/21(月) 18:19:39.76ID:iwcvXj42 タイミングで問題が出てるのにvectorにこだわるのはアホだよな
543デフォルトの名無しさん
2019/10/21(月) 18:33:52.73ID:K8Ck/3Ch 実行時のパラメータでバッファサイズ可変にするならvectorで始めにresizeしておくのが楽
size使える分配列のunique_ptrより取り回しも楽だし
size使える分配列のunique_ptrより取り回しも楽だし
544デフォルトの名無しさん
2019/10/21(月) 18:43:04.52ID:Kc9FjQwr boostにリングバッファのクラスあるよ
545蟻人間 ◆T6xkBnTXz7B0
2019/10/21(月) 18:50:23.92ID:LVq8IpRv 天才だから自分でリングバッファ作った。
https://github.com/katahiromz/YappyCam/blob/master/ring.hpp
https://github.com/katahiromz/YappyCam/blob/master/ring.hpp
546蟻人間 ◆T6xkBnTXz7B0
2019/10/21(月) 19:22:51.62ID:ICV7tWge バッファがいっぱいになったらどうしよう?
547537
2019/10/21(月) 19:27:27.31ID:iqf1snDW >>540
それらの同期機能って標準C++のクラスだけで実現できるもんなの?
それらの同期機能って標準C++のクラスだけで実現できるもんなの?
548デフォルトの名無しさん
2019/10/21(月) 19:30:51.93ID:Kc9FjQwr >>546
捨てるしかないだろ
捨てるしかないだろ
549デフォルトの名無しさん
2019/10/21(月) 20:56:31.15ID:NgTxqwl+ >>547
どこまでを標準と言ってるのか知らんけどお前の考える標準でスレッドをサポートしてるならたいてい同期機構もあるはず
どこまでを標準と言ってるのか知らんけどお前の考える標準でスレッドをサポートしてるならたいてい同期機構もあるはず
550蟻人間 ◆T6xkBnTXz7B0
2019/10/21(月) 21:02:21.32ID:LVq8IpRv >>547
WindowsではCriticalSection, CreateMutexなどがあったからC++11以前でも使えた。
C++11からstd::mutex, std::lock_guardなどが使えるぞ。
WindowsではCriticalSection, CreateMutexなどがあったからC++11以前でも使えた。
C++11からstd::mutex, std::lock_guardなどが使えるぞ。
551デフォルトの名無しさん
2019/10/22(火) 00:25:01.95ID:IM/z9Y8P ロックフリー的ななんか無かったっけ?
552蟻人間 ◆T6xkBnTXz7B0
2019/10/22(火) 16:18:00.26ID:QN5InCe0 リングバッファの排他制御どうするか?
push/popごとにロックかけたら遅くなりそう。
push/popごとにロックかけたら遅くなりそう。
553デフォルトの名無しさん
2019/10/22(火) 16:36:38.23ID:LzjGZCpL >>545
stlライクにしてる割にコピーやムーブが内部の値ベースなのおかしくない?
stlライクにしてる割にコピーやムーブが内部の値ベースなのおかしくない?
554デフォルトの名無しさん
2019/10/22(火) 17:03:31.86ID:mzkWHCb9 用途的に
reader 1
wrtier 1
だと思うけどそれならwait freeな実装が可能
read pointer/writer pointerで制御するやつね
かつかつに最適化するならこれ
しかしその前にどれだけの頻度と長さで排他の衝突するか見た方がいい
リアルタイムのオーディオなら短くても5msec周期とかじゃないか
かつlock中に多少のメモリの読み書きやってるだけなら排他が必要な時間は短い
なら素朴にmutex1個でのロックで十分な可能性も高い
同期のミスはデバッグがつらいから不用意に難しいことしない方がいい
もしくはある程度のバッファリング(遅延)が許容できるとか、固定長の処理であるなら
ならバッファを複数用意してダブル、トリプルバッファ的な制御でもいいだろう
つまりwriter側でバッファに全部書き終わったらそのバッファをreader側のキューにいれる
reader側は全部読み終わったらwriter側のキューに戻す
っての
とにかく原則どおりまずシンプルにミスなく作って計測して最適化ね
reader 1
wrtier 1
だと思うけどそれならwait freeな実装が可能
read pointer/writer pointerで制御するやつね
かつかつに最適化するならこれ
しかしその前にどれだけの頻度と長さで排他の衝突するか見た方がいい
リアルタイムのオーディオなら短くても5msec周期とかじゃないか
かつlock中に多少のメモリの読み書きやってるだけなら排他が必要な時間は短い
なら素朴にmutex1個でのロックで十分な可能性も高い
同期のミスはデバッグがつらいから不用意に難しいことしない方がいい
もしくはある程度のバッファリング(遅延)が許容できるとか、固定長の処理であるなら
ならバッファを複数用意してダブル、トリプルバッファ的な制御でもいいだろう
つまりwriter側でバッファに全部書き終わったらそのバッファをreader側のキューにいれる
reader側は全部読み終わったらwriter側のキューに戻す
っての
とにかく原則どおりまずシンプルにミスなく作って計測して最適化ね
555デフォルトの名無しさん
2019/10/22(火) 17:19:01.36ID:mzkWHCb9 ringのソース見たけど
おれはm_full なしでやるのが好みだな
つまりm_front_indexとm_back_indexが一致するのはemptyのときのみ
full時には実際は1個空きがある状態
これを推し進めればwait freeの実装に近づけるぞ
車輪の再発明だが勉強にはなる
おれはm_full なしでやるのが好みだな
つまりm_front_indexとm_back_indexが一致するのはemptyのときのみ
full時には実際は1個空きがある状態
これを推し進めればwait freeの実装に近づけるぞ
車輪の再発明だが勉強にはなる
556デフォルトの名無しさん
2019/10/22(火) 17:21:45.79ID:2ZhQSHmS557蟻人間 ◆T6xkBnTXz7B0
2019/10/22(火) 17:29:01.30ID:QN5InCe0 まずは記憶媒体の性能を計測してみた。
https://github.com/katahiromz/YappyCam/blob/master/tests/diskrate/diskrate.cpp
https://twitter.com/katahiromz/status/1186558848393285633
これはSSDの場合だ。HDDでも同様に計測しないといけない。
https://twitter.com/5chan_nel (5ch newer account)
https://github.com/katahiromz/YappyCam/blob/master/tests/diskrate/diskrate.cpp
https://twitter.com/katahiromz/status/1186558848393285633
これはSSDの場合だ。HDDでも同様に計測しないといけない。
https://twitter.com/5chan_nel (5ch newer account)
558蟻人間 ◆T6xkBnTXz7B0
2019/10/22(火) 17:43:23.84ID:QN5InCe0 static DWORD s_dwTick;
printf("write: %ld, %ld\n", cbToWrite, GetTickCount() - s_dwTick);
s_dwTick = GetTickCount();
// 最高の音質での出力。
write: 3900, 15
write: 3900, 0
write: 3900, 16
write: 3904, 16
write: 3900, 0
10msecごとに音声データがおよそ3900バイトあるようだ。
printf("write: %ld, %ld\n", cbToWrite, GetTickCount() - s_dwTick);
s_dwTick = GetTickCount();
// 最高の音質での出力。
write: 3900, 15
write: 3900, 0
write: 3900, 16
write: 3904, 16
write: 3900, 0
10msecごとに音声データがおよそ3900バイトあるようだ。
559デフォルトの名無しさん
2019/10/22(火) 18:28:33.04ID:HSQTG8Jj >>558
Win32APIや音声仕様はC++じゃないのでよそでどうぞ。>蟻人間
Win32APIや音声仕様はC++じゃないのでよそでどうぞ。>蟻人間
561蟻人間 ◆T6xkBnTXz7B0
2019/10/22(火) 20:08:29.90ID:+0Lq2R8m 【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
こっちに移動します。回答者に感謝します。
https://mevius.5ch.net/test/read.cgi/tech/1556142878/
こっちに移動します。回答者に感謝します。
562デフォルトの名無しさん
2019/10/22(火) 21:35:58.70ID:SC+tqfVH Win32APIって何だよ
20年前からタイムスリップでもしてきたか?
20年前からタイムスリップでもしてきたか?
>>562
win32api(64bit版)で書くのが正義、という価値観もまだまだ存在するようです
win32api(64bit版)で書くのが正義、という価値観もまだまだ存在するようです
564デフォルトの名無しさん
2019/10/22(火) 23:33:30.81ID:QUuuj0zF C++11からできた属性構文あるけどこの属性は宣言にだけつければOK?
定義にも同じ属性を記載するべき?
定義にも同じ属性を記載するべき?
565デフォルトの名無しさん
2019/10/23(水) 00:34:15.61ID:kAyiuXKe >>563
それはお前だけの価値観だろハゲ
それはお前だけの価値観だろハゲ
566デフォルトの名無しさん
2019/10/23(水) 00:50:12.41ID:/s0IRa9G >>563,565
Mozilla Firefoxなどサードパーティ大手は今もWin32APIをネイティブに使っており.NETを使ってない。
Mozilla Firefoxなどサードパーティ大手は今もWin32APIをネイティブに使っており.NETを使ってない。
568デフォルトの名無しさん
2019/10/23(水) 02:03:48.66ID:my1FePPi 単に64bitのWindows APIもなぜかwin32と呼ばれ続けてること知らないんだろ
569デフォルトの名無しさん
2019/10/23(水) 06:28:47.24ID:/lpUBik0 それこそ20年前からタイムスリップしたのかって話だなw
570デフォルトの名無しさん
2019/10/23(水) 18:08:41.93ID:bvZ5IXVl 速度重視な場面ならWin32APIは今でも普通に使う
571デフォルトの名無しさん
2019/10/23(水) 20:43:18.87ID:R0F6kh0V うわぁ・・・
572デフォルトの名無しさん
2019/10/23(水) 21:15:01.42ID:kC3TvNwV 正直なところWin32APIで速度でるの?
573デフォルトの名無しさん
2019/10/23(水) 21:30:55.10ID:/s0IRa9G >>572
「Linuxシステムコールで速度でるの?」という質問と同じくらい矛盾に満ちた質問。
Win32APIも含めシステムコールはOSが提供するAPIなので、プログラマは他の手段で代替しようない。
「Linuxシステムコールで速度でるの?」という質問と同じくらい矛盾に満ちた質問。
Win32APIも含めシステムコールはOSが提供するAPIなので、プログラマは他の手段で代替しようない。
574デフォルトの名無しさん
2019/10/23(水) 21:35:56.58ID:H9cLmi0l Native APIがあるじゃろ
575デフォルトの名無しさん
2019/10/23(水) 22:12:26.70ID:B7dtMHRy Visual C++ 2015なんですが、
goto文でERRORというラベルに飛ばそうとしたら、コンパイルエラーが出ました。
ERRにしたらコンパイルできるようになったんですが、
なぜERRORのラベルはダメなんでしょうか?
goto文でERRORというラベルに飛ばそうとしたら、コンパイルエラーが出ました。
ERRにしたらコンパイルできるようになったんですが、
なぜERRORのラベルはダメなんでしょうか?
577デフォルトの名無しさん
2019/10/23(水) 22:22:30.17ID:R0F6kh0V #undef ERROR
578デフォルトの名無しさん
2019/10/23(水) 22:24:20.08ID:H9cLmi0l 単語1つのラベルなんか使うなってこった
579デフォルトの名無しさん
2019/10/23(水) 22:28:23.69ID:R0F6kh0V いやC++ではマクロが悪だ
580575
2019/10/23(水) 22:32:44.87ID:B7dtMHRy ERRORのdefineがあるんですね・・・!
ありがとうございました!
ありがとうございました!
581デフォルトの名無しさん
2019/10/24(木) 09:12:01.73ID:m57JSwXI クソみたいなマクロにsmallもある
他にもwindows.hには地雷が入念に仕込まれてる
普通の神経の人間が爆死して厭らしい人間だけが生き残るように整えられている厭らしい環境がwindows.hだよ
マトモな人間にはまず耐えられない
頭のオカシイ厭らしい人間だけが残るように設計されているのがwindows.h
このヘッダは頭がおかしい
他にもwindows.hには地雷が入念に仕込まれてる
普通の神経の人間が爆死して厭らしい人間だけが生き残るように整えられている厭らしい環境がwindows.hだよ
マトモな人間にはまず耐えられない
頭のオカシイ厭らしい人間だけが残るように設計されているのがwindows.h
このヘッダは頭がおかしい
582デフォルトの名無しさん
2019/10/24(木) 13:45:08.38ID:VURCQr2T >>581
お前の頭がおかしいだけだと思う
お前の頭がおかしいだけだと思う
583デフォルトの名無しさん
2019/10/24(木) 13:57:45.03ID:SfEmAS3k 林檎だってcheckマクロでBoostに大迷惑かけてるしお互い様
584デフォルトの名無しさん
2019/10/24(木) 17:59:23.36ID:0EVcBOG9585デフォルトの名無しさん
2019/10/24(木) 18:05:45.17ID:pgieaG2c ヘッダ「嫌ならincludeするな」
586デフォルトの名無しさん
2019/10/24(木) 19:57:40.06ID:WiWlXxwu このスレはみんなWindows嫌いなのかな
587デフォルトの名無しさん
2019/10/24(木) 20:17:56.94ID:TRYJth0S んなわけない
588デフォルトの名無しさん
2019/10/24(木) 21:28:21.53ID:hxYU3Lux たしかmaxとかもマクロ定義されてたよね
初心者のころはどハマリして殺意がわいたわ
初心者のころはどハマリして殺意がわいたわ
589デフォルトの名無しさん
2019/10/24(木) 21:49:18.24ID:omM/Gkq5 いまはIDEが色変えてくれるからすぐわかるから別にいいけどね
590デフォルトの名無しさん
2019/10/24(木) 23:20:19.58ID:M5uvwdA8 マクロがあればなんでもできる
591デフォルトの名無しさん
2019/10/24(木) 23:40:29.47ID:PIyGP0m1 最近ちょいちょい思うことだが、ある言語のここがどうであーだこうだと議論する場合
テキストエディタでコーディング作業してる連中と IDE でコーディング作業してる連中では
わりと大きな認識の違いがあることが多い
テキストエディタでコーディング作業してる連中と IDE でコーディング作業してる連中では
わりと大きな認識の違いがあることが多い
592デフォルトの名無しさん
2019/10/24(木) 23:44:34.75ID:8Fri6DgZ windows.hのマクロ回りでトラブル起こしているのは、殆んどvisual studio使用者だと思うのだが
593デフォルトの名無しさん
2019/10/25(金) 00:24:04.41ID:AZBzSxe6 認識の違いはコンパイラによるものであってコードエディタは関係ない。
594デフォルトの名無しさん
2019/10/25(金) 00:39:26.61ID:ghRRxqDU モジュールでマクロとか気にしなくて良くなる(なるといいなぁ...)
595デフォルトの名無しさん
2019/10/25(金) 07:52:28.01ID:51G3P59H コンパイラ変えてもマクロは変わらんでしょ
せいぜいエラーメッセージ変わるぐらいじゃ
せいぜいエラーメッセージ変わるぐらいじゃ
596デフォルトの名無しさん
2019/10/25(金) 09:14:30.39ID:AZBzSxe6 >>595
何言ってるのか意味がわかりにくいエラーメッセージを吐くのはコンパイラでしょ。
何言ってるのか意味がわかりにくいエラーメッセージを吐くのはコンパイラでしょ。
597デフォルトの名無しさん
2019/10/25(金) 12:19:38.16ID:51G3P59H マクロは影響範囲わからんからなんとも
vcでマクロがテンプレートに影響したらマジでわからん
clangはテンプレートのエラーメッセージわかりやすいとかみたな
vcでマクロがテンプレートに影響したらマジでわからん
clangはテンプレートのエラーメッセージわかりやすいとかみたな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 立民・岡田氏の質疑「不適切」 維新・藤田氏、台湾有事答弁巡り [蚤の市★]
- 4:44:44.444
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- そもそも日本て中国に日沈む国だとか無礼な事言ってたよね
- アニメでよく日本人キャラなのに目の色だけ変えたりしてるのあるじゃん?
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 高市早苗って「わざと」日本畳んでるよな? [419865925]
