エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1545944692/
探検
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
2019/04/25(木) 06:54:38.08ID:6xUIrXDu
337デフォルトの名無しさん
2019/10/24(木) 23:17:05.32ID:se7EzpzH 録画した後、それを再生するとずれていくといこと?
それとも狙った時間でスクショをキャプチャできないという意味?
それとも狙った時間でスクショをキャプチャできないという意味?
338デフォルトの名無しさん
2019/10/25(金) 09:14:50.02ID:cKRHja93 >>336
WindowsMediaPlayer起動しながらやってみたらどうなる?
WindowsMediaPlayer起動しながらやってみたらどうなる?
339蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 13:15:44.76ID:OgTxIR48 Visual Studio 2017だと音ズレはなくなった。
MSYS2のデバッグバージョンでは少しずつ音がずれる。
WinDepth のSTAGE 2にいくと0.5秒ほどずれる。
MSYS2のデバッグバージョンでは少しずつ音がずれる。
WinDepth のSTAGE 2にいくと0.5秒ほどずれる。
340蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 13:28:08.21ID:OgTxIR48 MSYS2のリリースバージョンでも音ズレなくなった。
ありがとうございます。
https://github.com/katahiromz/YappyCam/blob/master/YappyCam.cpp#L75
これがPictureConsumerThreadProc (映像消費スレッド)。
https://github.com/katahiromz/YappyCam/blob/master/YappyCam.cpp#L158
これがPictureProducerThreadProc (映像生成スレッド)。
次はパフォーマンスを出来る限り高めないといけない。
ありがとうございます。
https://github.com/katahiromz/YappyCam/blob/master/YappyCam.cpp#L75
これがPictureConsumerThreadProc (映像消費スレッド)。
https://github.com/katahiromz/YappyCam/blob/master/YappyCam.cpp#L158
これがPictureProducerThreadProc (映像生成スレッド)。
次はパフォーマンスを出来る限り高めないといけない。
341蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 14:06:51.29ID:OgTxIR48 CreateThreadはCRTと一緒に使っちゃいけないらしいから、_beginthreadexで書き直しだ。
342蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 16:19:18.72ID:OgTxIR48 https://twitter.com/katahiromz/status/1187629168042708992
画面切り替え(フルスクリーンゲーム)のときにSegmentation faultが発生する。。。
まずいぞまずいぞ。。。
https://twitter.com/5chan_nel (5ch newer account)
画面切り替え(フルスクリーンゲーム)のときにSegmentation faultが発生する。。。
まずいぞまずいぞ。。。
https://twitter.com/5chan_nel (5ch newer account)
343蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 16:30:53.82ID:OgTxIR48 https://twitter.com/katahiromz/status/1187632297601716225
これ見て原因わかりますか?
https://twitter.com/5chan_nel (5ch newer account)
これ見て原因わかりますか?
https://twitter.com/5chan_nel (5ch newer account)
344蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 17:01:41.65ID:OgTxIR48 PT_SCREENCAPにBITMAPチェックを入れたら直った。
画面にごみが残るのはどうにかならないかなあ?
画面にごみが残るのはどうにかならないかなあ?
345蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 18:50:20.70ID:VkouAEbH フレーム落ちはしてないから、性能の問題ではない。たぶんフレームと音声のタイミングの違いだろう。音声の方が長い場合は音声を削ることも検討する。
346デフォルトの名無しさん
2019/10/25(金) 18:53:10.78ID:cKRHja93 >>338はどうなんよ?
347蟻人間 ◆T6xkBnTXz7B0
2019/10/25(金) 19:06:40.11ID:OgTxIR48348デフォルトの名無しさん
2019/10/25(金) 19:36:22.67ID:q8W1xqeq あらかじめMediaPlayerを起動しておくと
あら不思議なぜか動作が軽い
っていうのは昔から有名な検証方法の一つ
あら不思議なぜか動作が軽い
っていうのは昔から有名な検証方法の一つ
349デフォルトの名無しさん
2019/10/25(金) 20:00:49.22ID:VxINcxQ3 スレチのキチガイを飼い慣らすのは止めてください
350デフォルトの名無しさん
2019/10/25(金) 20:38:50.75ID:StYWqeWG どうせ過疎スレ
351デフォルトの名無しさん
2019/10/25(金) 22:23:03.54ID:MULKQLsl >>347
Windowsのタイマーはmsecのオーダーは出ない(Linuxもだ)
それしかビデオのタイミング作る手段がないならタイムスタンプ管理すべきだ
またPCではそもそもハードウェア的にビデオとオーディオは同期してる保証がない
その前提を踏まえてつくる必要がある
オーディオもビデオもキャプチャしたタイミングでタイムスタンプを取得して同様にファイルに保存する
再生するときにそのタイムスタンプを比較してビデオが±0.5フレームずれてきたら
フレームをスキップかリピートして調整する
オーディオを基準に考えるのがポイントだ
最後にWindows10では画面録画は標準機能だ
Windowsのタイマーはmsecのオーダーは出ない(Linuxもだ)
それしかビデオのタイミング作る手段がないならタイムスタンプ管理すべきだ
またPCではそもそもハードウェア的にビデオとオーディオは同期してる保証がない
その前提を踏まえてつくる必要がある
オーディオもビデオもキャプチャしたタイミングでタイムスタンプを取得して同様にファイルに保存する
再生するときにそのタイムスタンプを比較してビデオが±0.5フレームずれてきたら
フレームをスキップかリピートして調整する
オーディオを基準に考えるのがポイントだ
最後にWindows10では画面録画は標準機能だ
352デフォルトの名無しさん
2019/10/25(金) 22:35:35.48ID:cKRHja93 >>347
とりあえずやってみたらいいのに
とりあえずやってみたらいいのに
354デフォルトの名無しさん
2019/10/25(金) 22:56:14.57ID:APY4ctz9 timeBeginPeriod使えで済む話だろう
355蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 11:07:21.59ID:Q5f3+aYX356蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 14:53:06.64ID:Q5f3+aYX これで終わり、、、じゃないよ。
プラグインで時刻表示と猫耳ができるまで終わらないぞ。
プラグインで時刻表示と猫耳ができるまで終わらないぞ。
357デフォルトの名無しさん
2019/10/26(土) 15:23:17.18ID:a/Ne+y1n 蟻人間のらくがき帳になってしまった
358蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 15:30:57.98ID:Q5f3+aYX プラグインを実装するには自作のPluginFrameworkを参考にする。
これもC++/Win32で書かれている。
PluginFramework
https://github.com/katahiromz/PluginFramework
拡張子は.yapでいいだろう。拡張子こそ違うが、プラグインファイルの中身はDLLファイルと同じ。LoadLibraryで読み込めるはずだ。
これもC++/Win32で書かれている。
PluginFramework
https://github.com/katahiromz/PluginFramework
拡張子は.yapでいいだろう。拡張子こそ違うが、プラグインファイルの中身はDLLファイルと同じ。LoadLibraryで読み込めるはずだ。
360デフォルトの名無しさん
2019/10/26(土) 22:31:16.45ID:Gui6HX0l クラスの中の処理を別のプロセスのプログラムに行わせたいんですけどどのような方法があるでしょうか
64bit環境のプログラムにインターフェースのみを提供するクラスがあって、中の処理を32bitのプログラムに行わせたいです
クラスは状態を保持する必要があるので呼び出す度にプログラムを実行することはできません
64bit環境のプログラムにインターフェースのみを提供するクラスがあって、中の処理を32bitのプログラムに行わせたいです
クラスは状態を保持する必要があるので呼び出す度にプログラムを実行することはできません
361デフォルトの名無しさん
2019/10/26(土) 22:31:33.65ID:Gui6HX0l windows環境です
362デフォルトの名無しさん
2019/10/26(土) 22:38:25.84ID:SyjizfQh まずお前が何を試してどうだったか書いて
364デフォルトの名無しさん
2019/10/26(土) 22:44:08.74ID:w/PE+z55 >>363
呼び出される側のプログラムはどのように待機するべきですか?
呼び出される側のプログラムはどのように待機するべきですか?
365デフォルトの名無しさん
2019/10/26(土) 23:34:00.80ID:fKw1xQJ9 dllインジェクションの話?
366蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 23:43:30.80ID:0HLEEd3+ コマンドライン引数経由でファイルマッピングハンドルの値を受け取る、もしくはPostMessageでハンドルの値を受け取る。
クリップボードを使ってもいいし、ファイルを経由してもいい。
クリップボードを使ってもいいし、ファイルを経由してもいい。
367蟻人間 ◆T6xkBnTXz7B0
2019/10/26(土) 23:44:43.73ID:0HLEEd3+ WM_COPYDATAは生のデータを送信できる。
368デフォルトの名無しさん
2019/10/27(日) 17:20:04.24ID:IkTaChA0 自由に変更できるならsocket使ってTCP(UDP)portで待機
369デフォルトの名無しさん
2019/10/27(日) 17:20:36.84ID:IkTaChA0 ANTさんはNimやってない訳?
371蟻人間 ◆T6xkBnTXz7B0
2019/10/27(日) 19:33:52.69ID:irXhIBVc 最近はRustとElixirがブームらしいが、私は相変わらずC++。
372蟻人間 ◆T6xkBnTXz7B0
2019/10/27(日) 22:03:41.19ID:cNZwDfUU カメラアプリのプラグインを設計しないといけない。要件定義から。
OpenCVのcv::Matを受け取り、何らかの画像処理をする。今考えているのはフィルタープラグインと監視役プラグイン。
時刻表示フィルターと猫耳フィルターは必ず実装する。監視役は、何かが発生したら、管理者権限で保護されたコマンド列(Command*.bat)を実行する。
フィルターは処理の順序が大事だから、プラグインを順序付けしないといけない。
プラグインは自作のPluginFrameworkをチューニングして使用する。
OpenCVのcv::Matを受け取り、何らかの画像処理をする。今考えているのはフィルタープラグインと監視役プラグイン。
時刻表示フィルターと猫耳フィルターは必ず実装する。監視役は、何かが発生したら、管理者権限で保護されたコマンド列(Command*.bat)を実行する。
フィルターは処理の順序が大事だから、プラグインを順序付けしないといけない。
プラグインは自作のPluginFrameworkをチューニングして使用する。
373蟻人間 ◆T6xkBnTXz7B0
2019/10/27(日) 22:11:26.78ID:cNZwDfUU 読み込んだプラグインは有効か無効かを選べる。プラグインの順序も変えられる。そこでプラグインを管理するダイアログが必要だ。
そのダイアログはメインメニューからアクセスできる。ダイアログからプラグインの名前やバージョン情報にアクセスできるようにリストビューを使用する。
読み込んだ全てのプラグインが有効であるとは限らない。有効なプラグインは、プラグインを表す文字列のリストで記録する。高速にアクセスするためにさらにプラグインのインデックスのリストを使用する。
そのダイアログはメインメニューからアクセスできる。ダイアログからプラグインの名前やバージョン情報にアクセスできるようにリストビューを使用する。
読み込んだ全てのプラグインが有効であるとは限らない。有効なプラグインは、プラグインを表す文字列のリストで記録する。高速にアクセスするためにさらにプラグインのインデックスのリストを使用する。
374蟻人間 ◆T6xkBnTXz7B0
2019/10/27(日) 22:34:37.57ID:cNZwDfUU 順序の変更には上・下ボタンを使用する。
有効・無効の切り替えはリストビューのチェックボックスを使用する。
時刻表示にはcv::putTextを使用する。
拡張子は.yapで決まり。exeと同じ場所に置く。
有効・無効の切り替えはリストビューのチェックボックスを使用する。
時刻表示にはcv::putTextを使用する。
拡張子は.yapで決まり。exeと同じ場所に置く。
375蟻人間 ◆T6xkBnTXz7B0
2019/10/31(木) 20:42:35.84ID:ssZYzg5C YappyCamプラグイン実装。
https://github.com/katahiromz/YappyCam
https://github.com/katahiromz/YappyCamPlugins
https://twitter.com/katahiromz/status/1189869665251553280
何か追加してほしいプラグインがあったら教えてね。
https://twitter.com/5chan_nel (5ch newer account)
https://github.com/katahiromz/YappyCam
https://github.com/katahiromz/YappyCamPlugins
https://twitter.com/katahiromz/status/1189869665251553280
何か追加してほしいプラグインがあったら教えてね。
https://twitter.com/5chan_nel (5ch newer account)
376蟻人間 ◆T6xkBnTXz7B0
2019/11/03(日) 12:41:34.03ID:nr4jSbTs https://github.com/katahiromz/YappyCam/blob/master/PluginFramework.cpp#L25
ドライバ関数を通じてDLLからEXEの関数にアクセスできる。凄いだろ?
ドライバ関数を通じてDLLからEXEの関数にアクセスできる。凄いだろ?
377デフォルトの名無しさん
2019/11/11(月) 09:09:46.18ID:TRmuSqs3 完全初心者です
苦しんで覚えるC言語という初心者サイトを終わらせたら
次になにかおすすめサイトor本をやるべきなどありますか?
とりあえず義務教育に組み込まれるということで
何か作れるという体験をしてみたいのですが
苦しんで覚えるC言語という初心者サイトを終わらせたら
次になにかおすすめサイトor本をやるべきなどありますか?
とりあえず義務教育に組み込まれるということで
何か作れるという体験をしてみたいのですが
378デフォルトの名無しさん
2019/11/11(月) 09:12:12.48ID:lxCWwdCX 作れ
どの言語でもそれが最短かそれに近い高効率
どの言語でもそれが最短かそれに近い高効率
379デフォルトの名無しさん
2019/11/11(月) 12:29:24.77ID:bjD92kdR Rust, Elixir は、小さめのサイズの本が出たから、簡単に読める。
その代わり、情報は少ない
Rustプログラミング入門、酒井 和哉、2019/10/13
小さめのサイズの本で、初心者向け。
簡単すぎるから、たぶん、かなり情報が少なそうw
プログラミングElixir、2016
著者は「プログラミングRuby」のDave Thomas
Elixir = Ruby + Rails + Erlang VM
Elixir は関数型言語で、状態を持たず、並行処理が得意
Elixir で並列に動く、小プロセスはデータを共有しない。
10万の小プロセスを、0.6秒で起動できて、すべてのCPUコアを使いつくす
これで、スレッドと状態を持つ地獄から、おさらば!
その代わり、情報は少ない
Rustプログラミング入門、酒井 和哉、2019/10/13
小さめのサイズの本で、初心者向け。
簡単すぎるから、たぶん、かなり情報が少なそうw
プログラミングElixir、2016
著者は「プログラミングRuby」のDave Thomas
Elixir = Ruby + Rails + Erlang VM
Elixir は関数型言語で、状態を持たず、並行処理が得意
Elixir で並列に動く、小プロセスはデータを共有しない。
10万の小プロセスを、0.6秒で起動できて、すべてのCPUコアを使いつくす
これで、スレッドと状態を持つ地獄から、おさらば!
380デフォルトの名無しさん
2019/11/11(月) 12:32:20.68ID:2oMqNNOD >並行処理が得意
そんなもん今どきの言語なら皆そうなんだが?
いい加減スレ違いの書き込みはやめろ
ここはC/C++スレだ
そんなもん今どきの言語なら皆そうなんだが?
いい加減スレ違いの書き込みはやめろ
ここはC/C++スレだ
381デフォルトの名無しさん
2019/11/11(月) 13:44:52.51ID:dWj5v9Wo >>377
終わってから考えろ
終わってから考えろ
382デフォルトの名無しさん
2019/11/11(月) 16:13:50.62ID:JcIJLOOR 義務教育を受けてる若者なのか、教える立場の教師なのか、
はたまた我が子の勉強を心配する教育ママか。
とりあえず義務教育でCは使わないと思うよ。
しかし、このスレッドも意外に見てる人がいるのね。
はたまた我が子の勉強を心配する教育ママか。
とりあえず義務教育でCは使わないと思うよ。
しかし、このスレッドも意外に見てる人がいるのね。
383デフォルトの名無しさん
2019/11/11(月) 16:30:36.69ID:nmrg3hQp 義務教育課程のプログラミング教育はフローチャート書いて終わりだよ
384デフォルトの名無しさん
2019/11/11(月) 17:08:28.39ID:rlOgmRK8 それでいいよ
問題を分解して論理立てて解決する力
が必要なのであって構文とかどうでもいい
だから擬似言語でも良いし図だけでもいい
問題を分解して論理立てて解決する力
が必要なのであって構文とかどうでもいい
だから擬似言語でも良いし図だけでもいい
385デフォルトの名無しさん
2019/11/11(月) 17:12:08.97ID:dWj5v9Wo パヨチン教師に論理的思考ωを教えさせるのは無理やろ
>>385
kwsk
kwsk
387デフォルトの名無しさん
2019/11/11(月) 21:28:40.68ID:+nZ+GxSE >>377
完全初心者で作ってみるのがまず目標ならscratch辺りが無難じゃないかな?取っつきやすくプログラミングの基本に触れられると思うよ。
初心者がCから始めても作る喜びを見つける前に細かなところで躓きを繰り返して挫折する率が高いと思う。
入門書一冊読んだ時点でその知識を組み合わせてなんか試してみようと自発的に思い付くとか、文字だけの画面で入力した数字を並び替えただけで喜びを感じられるとかなら、向いているとは思うけど。
完全初心者で作ってみるのがまず目標ならscratch辺りが無難じゃないかな?取っつきやすくプログラミングの基本に触れられると思うよ。
初心者がCから始めても作る喜びを見つける前に細かなところで躓きを繰り返して挫折する率が高いと思う。
入門書一冊読んだ時点でその知識を組み合わせてなんか試してみようと自発的に思い付くとか、文字だけの画面で入力した数字を並び替えただけで喜びを感じられるとかなら、向いているとは思うけど。
388デフォルトの名無しさん
2019/11/12(火) 09:36:03.48ID:uG6HIbdY >知識を組み合わせてなんか試してみようと自発的に思い付く
コピペしか出来ないkidsには無理
コピペしか出来ないkidsには無理
389デフォルトの名無しさん
2019/11/12(火) 10:16:48.75ID:L22oXPxY 初心者にマウント取るの楽しいー!
390デフォルトの名無しさん
2019/11/12(火) 11:56:52.41ID:tiISvNIN 初心者にマウントとるしか出来ない無自覚kidsには無理
391デフォルトの名無しさん
2019/11/13(水) 01:32:22.16ID:hjs0qnAg >>389,390
救いようのないバカ
救いようのないバカ
392デフォルトの名無しさん
2019/11/13(水) 08:59:42.98ID:G4amaIT4 >>391
救いたくもならないバカ
救いたくもならないバカ
393デフォルトの名無しさん
2019/11/13(水) 10:20:21.80ID:OceCV+VL 馬鹿には無理
394はちみつ餃子 ◆8X2XSCHEME
2019/11/13(水) 15:20:35.33ID:B91T1gla 本格的にやる気はないやつにも最低限の知恵を与える (義務教育) ってのと
学ぶ意欲があって学ぶってのは別物だよ。
学ぶ意欲があって学ぶってのは別物だよ。
395デフォルトの名無しさん
2019/12/20(金) 17:01:42.60ID:mI5I/WU7 これからc++に手を出そうという人間に、江添氏の入門サイトもしくはその書籍化本は向いてますか?
いきなりヘッダファイルまとめて、コンパイルオプションに設定してて、たしかに記述減るけどありなのかがよくわかりません
いきなりヘッダファイルまとめて、コンパイルオプションに設定してて、たしかに記述減るけどありなのかがよくわかりません
396デフォルトの名無しさん
2019/12/20(金) 17:32:42.71ID:VlcbOuJw397デフォルトの名無しさん
2019/12/20(金) 17:42:09.99ID:mI5I/WU7398デフォルトの名無しさん
2019/12/20(金) 17:47:54.25ID:VlcbOuJw Java で import *;
399はちみつ餃子 ◆8X2XSCHEME
2019/12/20(金) 18:50:13.84ID:smtL92ik >>395
意味がわかってるならやりたいようにやっていいよ。
「プラグラマがやりたいことをさまたげない」という意味のことは D&E に書いてある。
言語仕様としてはさまたげないという意味なのでやった結果がクソになっても自己責任だけど。
そのあたりは言語仕様がどうこうよりも設計の話になるんじゃないかなぁ。
まあまずは言語を理解しないことにはどうにもならんので、
いい感じの作法は後回しでもいいでしょ。
(そういってずっと後回しにし続けるのはよくある話なのでちゃんと計画を立てて学習しような!)
意味がわかってるならやりたいようにやっていいよ。
「プラグラマがやりたいことをさまたげない」という意味のことは D&E に書いてある。
言語仕様としてはさまたげないという意味なのでやった結果がクソになっても自己責任だけど。
そのあたりは言語仕様がどうこうよりも設計の話になるんじゃないかなぁ。
まあまずは言語を理解しないことにはどうにもならんので、
いい感じの作法は後回しでもいいでしょ。
(そういってずっと後回しにし続けるのはよくある話なのでちゃんと計画を立てて学習しような!)
400デフォルトの名無しさん
2019/12/20(金) 20:36:03.32ID:PIQAyvT8 はちみつが江添を腐すのは意外だな
401はちみつ餃子 ◆8X2XSCHEME
2019/12/21(土) 01:13:26.24ID:hBrPM7yJ402デフォルトの名無しさん
2019/12/21(土) 21:42:45.92ID:r9u4FEpO >>401
正にその入門の本探しで迷宮入りしてるところに、江添氏の本を見たので、そういうのもありなのかと思っての質問でした
作法にこだわって肝心な部分を落としてたら意味がない(作法を無視して良いというわけではなく)のは確かなので、本読み手を動かしていきます
アドバイスありがとうございます
正にその入門の本探しで迷宮入りしてるところに、江添氏の本を見たので、そういうのもありなのかと思っての質問でした
作法にこだわって肝心な部分を落としてたら意味がない(作法を無視して良いというわけではなく)のは確かなので、本読み手を動かしていきます
アドバイスありがとうございます
403デフォルトの名無しさん
2019/12/21(土) 21:53:38.39ID:Pmk2U2LB 別にそこまで言語文法と作法がバッティングするわけでもないし、両方やったらいいとしか言いようがない。
何を心配してるんだか。
何を心配してるんだか。
404デフォルトの名無しさん
2019/12/21(土) 22:06:25.82ID:/C2Zxfa9 カネの心配だろ
どの本がいいか=どれを買えばいいか だ
どの本がいいか=どれを買えばいいか だ
405はちみつ餃子 ◆8X2XSCHEME
2019/12/22(日) 16:56:47.47ID:0CTeJT4Z だいたいの作法にはそれなりの理由があるけど、
言語を理解せずに作法を学んでもただそうするということだけが頭に残って教条的になりやすい気がするんだよね。
完璧に言語を理解する必要はないけどほどほどには理解してから作法に入った方が良くない?
言語を理解せずに作法を学んでもただそうするということだけが頭に残って教条的になりやすい気がするんだよね。
完璧に言語を理解する必要はないけどほどほどには理解してから作法に入った方が良くない?
406デフォルトの名無しさん
2019/12/22(日) 17:17:17.16ID:x1zpVDy3 質問者は江添の示す作法に疑問を持ってんだからその理屈はおかしい
407デフォルトの名無しさん
2019/12/22(日) 17:30:35.07ID:WxFIsXHD とりあえずこうする!じゃなくて
自分が納得して辿りついた方法はこれ
の方がいいよね
自分が納得して辿りついた方法はこれ
の方がいいよね
408はちみつ餃子 ◆8X2XSCHEME
2019/12/22(日) 18:00:49.87ID:0CTeJT4Z >>406
あ〜〜そゆことか。 江添本でやってるわけね。
https://ezoeryou.github.io/cpp-intro/#%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%9C%81%E7%95%A5
その前提をわかってなかった。 すまぬ。
わかってる人からするとこれは説明の便宜のためであって作法を示すものではないことがわかるけど、
入門書の冒頭でやっちゃうのは思い切りが良すぎるな。
あ〜〜そゆことか。 江添本でやってるわけね。
https://ezoeryou.github.io/cpp-intro/#%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%9C%81%E7%95%A5
その前提をわかってなかった。 すまぬ。
わかってる人からするとこれは説明の便宜のためであって作法を示すものではないことがわかるけど、
入門書の冒頭でやっちゃうのは思い切りが良すぎるな。
409デフォルトの名無しさん
2019/12/23(月) 12:35:08.34ID:sEnpgkKc 禿添を擁護する気は無いが
そもそも他の入門書だって
#include はおまじないとか言って
お茶を濁してるレベルなのを考えれば
(見た目のインパクトは知ってる人が見てそう思うだけで)
初心者には大した違いは無い
そもそも他の入門書だって
#include はおまじないとか言って
お茶を濁してるレベルなのを考えれば
(見た目のインパクトは知ってる人が見てそう思うだけで)
初心者には大した違いは無い
410デフォルトの名無しさん
2019/12/23(月) 17:22:38.49ID:cv9cp49U 思い切りがいいのはgotoの説明があるところダゾ
411デフォルトの名無しさん
2019/12/23(月) 17:31:52.28ID:7PnpYzan goto否定は時代遅れ
412デフォルトの名無しさん
2019/12/23(月) 17:56:04.90ID:yUC4LEa+ 肯定するもんではない
413デフォルトの名無しさん
2019/12/23(月) 18:23:13.68ID:FZMFlrDL gotoの是非ではなくスパゲッティコードの是非
414デフォルトの名無しさん
2019/12/23(月) 20:32:41.60ID:JFzkr+Zj gotoアレルギーは悪
多様も悪
多様も悪
415デフォルトの名無しさん
2019/12/23(月) 20:38:42.86ID:Dm8g2GT6 gotoが悪とか言ってるやつの脳は
武器があるから戦争がおこるんだ!
っていうパヨク脳と同じ構造
武器があるから戦争がおこるんだ!
っていうパヨク脳と同じ構造
416デフォルトの名無しさん
2019/12/23(月) 21:29:45.76ID:kZpvALBe >>413
スパゲッティは困るのが本人限定でない限りは非でいいだろう。問題はgotoのどんな使い方までがスパゲッティにならないかだけど合意を得られる共通認識はないから、組織のルールに合わせるくらいしかないかも。
スパゲッティは困るのが本人限定でない限りは非でいいだろう。問題はgotoのどんな使い方までがスパゲッティにならないかだけど合意を得られる共通認識はないから、組織のルールに合わせるくらいしかないかも。
417デフォルトの名無しさん
2019/12/23(月) 23:14:04.93ID:VCFgqBQo 深いところからの抜け出しはわかる
飛び込みは……ヤバイ
飛び込みは……ヤバイ
418デフォルトの名無しさん
2019/12/23(月) 23:42:38.10ID:qDrReXNq プロは使うぞ goto
419デフォルトの名無しさん
2019/12/24(火) 01:18:53.63ID:qpZ25SUC switchとgoto組み合わせてステートマシン作るのよくやってる。
420デフォルトの名無しさん
2019/12/24(火) 03:33:33.92ID:4c9jV6+e 何重にもネストしたforの真っ只中にぶっこんでくgotoとかじゃない限り
そこまで可読性が悪くなるってことはないかな。
そこまで可読性が悪くなるってことはないかな。
421デフォルトの名無しさん
2019/12/24(火) 06:58:18.67ID:cUFUrp77 gotoネタまだやってんのか
初心者に使い方を教えれば終わりだよ
初心者に使い方を教えれば終わりだよ
所詮 goto は関数内でジャンプするだけだから、たいしたスパゲッティにはならないのでは?
むしろ setjmp()/longjmp() 大好き人間のほうが怖い…
むしろ setjmp()/longjmp() 大好き人間のほうが怖い…
424デフォルトの名無しさん
2019/12/24(火) 18:39:15.66ID:IBUEMR4t setjmp/longjmpって具体的に使われてるプロジェクト今ある?
426デフォルトの名無しさん
2019/12/25(水) 16:23:59.62ID:Jr8g24A7 bool readShaderSource(const char *name,std::vector<GLchar> &buffer){
//ファイルなし
if(name == NULL) return false;
//ソースファイルを開く
std::ifstream file(name,std::ios::binary);
if(file.fail()){
//開けなかった場合
std::cerr << "Error: Can't open source file: " << name << std::endl;
return false;
}
// 以下読み込み部分の為省略
}
Macでこんな感じのコードを書いてるのですが、実行ファイルをターミナルから
相対パスで実行すると成功し、Finderからダブルクリックすると別ウィンドウのターミナルが出て
Last login: ~~
$[実行ファイルの絶対パス] ; exit;
"Can't open Source File [ファイル名]"と出てしまいます。
絶対パスと相対パスでファイル読み込みの挙動が変わるのでしょうか?
調べてもそれっぽい情報が出てこず……もし思い当たる方がいたらお願いします。
ちなみに読み込みファイルはOpenGLのShaderです。
//ファイルなし
if(name == NULL) return false;
//ソースファイルを開く
std::ifstream file(name,std::ios::binary);
if(file.fail()){
//開けなかった場合
std::cerr << "Error: Can't open source file: " << name << std::endl;
return false;
}
// 以下読み込み部分の為省略
}
Macでこんな感じのコードを書いてるのですが、実行ファイルをターミナルから
相対パスで実行すると成功し、Finderからダブルクリックすると別ウィンドウのターミナルが出て
Last login: ~~
$[実行ファイルの絶対パス] ; exit;
"Can't open Source File [ファイル名]"と出てしまいます。
絶対パスと相対パスでファイル読み込みの挙動が変わるのでしょうか?
調べてもそれっぽい情報が出てこず……もし思い当たる方がいたらお願いします。
ちなみに読み込みファイルはOpenGLのShaderです。
427デフォルトの名無しさん
2019/12/25(水) 16:34:37.25ID:TfD43SqC カレントディレクトリでググって。
428デフォルトの名無しさん
2019/12/25(水) 16:34:37.50ID:ZI663GBY まず、端末とFinder は、異なる!
Windows のExplorer で言えば、拡張子に対して、開くアプリが関連付けられている。
漏れの場合、.txt なら、TeraPad で開く
関連付けられていないと、どのアプリで開きますか? と聞いてくる
Windows のExplorer で言えば、拡張子に対して、開くアプリが関連付けられている。
漏れの場合、.txt なら、TeraPad で開く
関連付けられていないと、どのアプリで開きますか? と聞いてくる
429デフォルトの名無しさん
2019/12/25(水) 20:11:17.23ID:Jr8g24A7 >>427
すみません、言われたことをよく考えたら重要な説明抜けてました
mainの中で先ほどの関数が使われるのは、
const GLuint program(loadProgram("point.vert","point.frag"));
という部分であり、ここで読み込まれている
GLuint loadProgram(const char *vert,const char *frag))
の内部に先ほどのコードがあります。
上の"point.vert"と"point.frag"を"./point.vert"、"./point.frag"に変えたりしましたがダメでした。
/User/~~~ による絶対指定なら動いたのですが、それだと別ファイルに移動した時使えなくなるので
ファイルの階層などを変えても動くようにしたいです。
>>428
とりあえずfileコマンドの結果は
Cのソースファイル(main.cpp): c program text, UTF-8 Unicode text
同ファイル内から読み込んでいるヘッダ(Matrix.hなど): C++ source text, UTF-8 Unicode text
読み込んでいるシェーダーファイル(上記の返答レスの二つ): c program text, ASCII text
実行ファイル: Mach-O 64-bit executable x86_64
dSYMファイル(実行と同時に生成された): directory(IOSの情報ファイル)
という感じです。
実行ファイルなので開くアプリはデフォでterminal、他はバイナリエディタで開けます。
すみません、言われたことをよく考えたら重要な説明抜けてました
mainの中で先ほどの関数が使われるのは、
const GLuint program(loadProgram("point.vert","point.frag"));
という部分であり、ここで読み込まれている
GLuint loadProgram(const char *vert,const char *frag))
の内部に先ほどのコードがあります。
上の"point.vert"と"point.frag"を"./point.vert"、"./point.frag"に変えたりしましたがダメでした。
/User/~~~ による絶対指定なら動いたのですが、それだと別ファイルに移動した時使えなくなるので
ファイルの階層などを変えても動くようにしたいです。
>>428
とりあえずfileコマンドの結果は
Cのソースファイル(main.cpp): c program text, UTF-8 Unicode text
同ファイル内から読み込んでいるヘッダ(Matrix.hなど): C++ source text, UTF-8 Unicode text
読み込んでいるシェーダーファイル(上記の返答レスの二つ): c program text, ASCII text
実行ファイル: Mach-O 64-bit executable x86_64
dSYMファイル(実行と同時に生成された): directory(IOSの情報ファイル)
という感じです。
実行ファイルなので開くアプリはデフォでterminal、他はバイナリエディタで開けます。
430デフォルトの名無しさん
2019/12/25(水) 20:28:55.00ID:KX6i+Zbe >>429
カレントディレクトリの概念は分かったの?
プログラムを何らかの方法で起動したときに、そのプログラムはどこかのディレクトリを「現在位置」として処理を行う。
だからプログラム中でファイルを指定するときに絶対パスではない書き方、つまり相対パス(point.vertや./point.vertという書き方)で指定すると、それは現在位置から見てその名前の場所にあるファイルを指す。
macの環境は詳しくないけど、terminalから実行したならカレントディレクトリはterminal上のカレントディレクトリだろうし、finderから実行したらプログラムの実行ファイルがある場所だろう。
そこと、開きたいファイルの位置関係を確認して、適切な相対パスを指定してみて。
カレントディレクトリの概念は分かったの?
プログラムを何らかの方法で起動したときに、そのプログラムはどこかのディレクトリを「現在位置」として処理を行う。
だからプログラム中でファイルを指定するときに絶対パスではない書き方、つまり相対パス(point.vertや./point.vertという書き方)で指定すると、それは現在位置から見てその名前の場所にあるファイルを指す。
macの環境は詳しくないけど、terminalから実行したならカレントディレクトリはterminal上のカレントディレクトリだろうし、finderから実行したらプログラムの実行ファイルがある場所だろう。
そこと、開きたいファイルの位置関係を確認して、適切な相対パスを指定してみて。
431デフォルトの名無しさん
2019/12/25(水) 20:45:23.56ID:ZI663GBY >>429
loadProgram と言う名前から想像すると、
特定のディレクトリだけから、ファイルを探すとか?
カレントディレクトリ内からは、探さないとか?
絶対パスなら読めるのなら、絶対パスへ変換すれば?
例えば、ruby -e 'puts $:'
と、Ruby でライブラリの探索パス・ロードパスを表示すると、
その中に、カレントディレクトリは入っていない
他には、エラーの前後で、カレントディレクトリがどこにあるか、確認すれば?
loadProgram と言う名前から想像すると、
特定のディレクトリだけから、ファイルを探すとか?
カレントディレクトリ内からは、探さないとか?
絶対パスなら読めるのなら、絶対パスへ変換すれば?
例えば、ruby -e 'puts $:'
と、Ruby でライブラリの探索パス・ロードパスを表示すると、
その中に、カレントディレクトリは入っていない
他には、エラーの前後で、カレントディレクトリがどこにあるか、確認すれば?
432デフォルトの名無しさん
2019/12/25(水) 20:48:27.13ID:88EUoeVm まず相対パスを絶対パスに変換してどうなるか確認したらいいんでないの
433デフォルトの名無しさん
2019/12/25(水) 21:06:23.06ID:KX6i+Zbe434デフォルトの名無しさん
2019/12/25(水) 21:07:02.85ID:KX6i+Zbe 上のレスは>>431宛だった
435デフォルトの名無しさん
2019/12/25(水) 22:03:46.49ID:R9J1PIns iOSのシミュレータで実行するアプリ??(IOSとか書いてるから
それだったらfstreamには絶対パスを渡すしかなかったはず
あんま自信ないので違ってたらすまん
それだったらfstreamには絶対パスを渡すしかなかったはず
あんま自信ないので違ってたらすまん
436デフォルトの名無しさん
2019/12/25(水) 22:09:17.12ID:ulJiubw3 ほんとruby君はどこのスレでも邪魔しかしないね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 気象庁・高市内閣「この後311級の地震の可能性があります。北海道〜関東の人は1週間は地震が来てもすぐ逃げられる格好をしてください」 [597533159]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- バリ島で万引きした高校生が叩かれているけどさ
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
