エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。
【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
前スレ
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1469177649/
【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/11/06(日) 22:58:02.60ID:dU5z27As
283デフォルトの名無しさん
2017/01/29(日) 15:31:20.39ID:2ZaFXkbr オプションによる不確定なものをどうして不手際と思ったのか謎
/O2 /GF-なら残る可能性高いし
/O2 /GF-なら残る可能性高いし
284デフォルトの名無しさん
2017/01/29(日) 17:04:30.90ID:XKehhdE4285デフォルトの名無しさん
2017/01/29(日) 18:59:23.49ID:K+/fnyLa 何かの理由があって残してるという事はないのかな・・・
286デフォルトの名無しさん
2017/01/29(日) 19:49:35.57ID:6wGEJq5M >>281
普通に削除されて文字列もなくなるけど?
普通に削除されて文字列もなくなるけど?
287デフォルトの名無しさん
2017/01/29(日) 23:12:58.08ID:XKehhdE4 >>285-286
ご返答ありがとうございます。
どうも文字列をあれこれ変えて、消えたり消えなかったりとよくわからない状況になってきました。
とりあえず、VS2015での最小コードを作れましたので貼り付けます
int main()
{
char text[] = "foofoo";
printf("hogehoge");
if (false) { printf(text); }
return 0;
}
こうすると以下の挙動になります。
このまま: exeにhogehoge, foofooの両方が含まれているのを確認できる
printf("hogehoge");を削除: hogehoge, foofooの両方がEXEから消える
※単に0を返すだけの結果固定関数になるため、変数の割り当てすらしなくなるから?
ご返答ありがとうございます。
どうも文字列をあれこれ変えて、消えたり消えなかったりとよくわからない状況になってきました。
とりあえず、VS2015での最小コードを作れましたので貼り付けます
int main()
{
char text[] = "foofoo";
printf("hogehoge");
if (false) { printf(text); }
return 0;
}
こうすると以下の挙動になります。
このまま: exeにhogehoge, foofooの両方が含まれているのを確認できる
printf("hogehoge");を削除: hogehoge, foofooの両方がEXEから消える
※単に0を返すだけの結果固定関数になるため、変数の割り当てすらしなくなるから?
288デフォルトの名無しさん
2017/01/29(日) 23:42:21.35ID:DuISdTe+ VS2015の環境を持っていないんで見当違いかも知れんが…。
#include <stdio.h> か #include <cstdio> を書いてみる。
char text[] = ... を const char text[] = ... にしてみる。
これらを(独立して)変えてみたら状態が変わらんかな?
printf()による副作用の可能性を考慮してtextを消さないのかも知れん。
もちろんprintf("hogehoge")を呼び出しても
引数になってないtextが読み書きされるはずはないんだけど。
#include <stdio.h> か #include <cstdio> を書いてみる。
char text[] = ... を const char text[] = ... にしてみる。
これらを(独立して)変えてみたら状態が変わらんかな?
printf()による副作用の可能性を考慮してtextを消さないのかも知れん。
もちろんprintf("hogehoge")を呼び出しても
引数になってないtextが読み書きされるはずはないんだけど。
289デフォルトの名無しさん
2017/01/30(月) 00:05:47.51ID:iVXSa+56 >>288
アドバイスありがとうございます
すいません。最小コードといいつつincludeをきちんと書いておりませんでした
#include <stdio.h>を最初に書いております
cstdioに変えてみて、各種パターンやってみましたが、変化は見られませんでした
次に、以下です
const char ではfoofooは消えませんでした
const static char に変えたところ、消えました
printfが、中でスタック消費量でも利用しているのかな…と馬鹿なことを考えて
char text〜をグローバル空間に出してみましたが、foofooは消えずです
アドバイスありがとうございます
すいません。最小コードといいつつincludeをきちんと書いておりませんでした
#include <stdio.h>を最初に書いております
cstdioに変えてみて、各種パターンやってみましたが、変化は見られませんでした
次に、以下です
const char ではfoofooは消えませんでした
const static char に変えたところ、消えました
printfが、中でスタック消費量でも利用しているのかな…と馬鹿なことを考えて
char text〜をグローバル空間に出してみましたが、foofooは消えずです
290デフォルトの名無しさん
2017/01/30(月) 13:26:01.87ID:NFw8h2uH >>289
グローバル変数にするのは最適化されにくくなるだけ。
とりあえずこれで
#include <stdio.h>
int main(){
printf("hogehoge");
if(false){
printf("foofoo");
}
return 0;
}
データセグメントが消えるかどうかは最適化の
目的じゃないと思うが、"foofoo"が残るか見てみると
VS2015
cl /Ox /Fa hoge.cpp きえない
cl /O1 /Fa hoge.cpp きえた
cl /O2 /Fa hoge.cpp きえた
GCC-3.4.5
gcc -S hoge.cpp きえた
まあ所詮VC
グローバル変数にするのは最適化されにくくなるだけ。
とりあえずこれで
#include <stdio.h>
int main(){
printf("hogehoge");
if(false){
printf("foofoo");
}
return 0;
}
データセグメントが消えるかどうかは最適化の
目的じゃないと思うが、"foofoo"が残るか見てみると
VS2015
cl /Ox /Fa hoge.cpp きえない
cl /O1 /Fa hoge.cpp きえた
cl /O2 /Fa hoge.cpp きえた
GCC-3.4.5
gcc -S hoge.cpp きえた
まあ所詮VC
291デフォルトの名無しさん
2017/01/30(月) 17:50:38.46ID:X+M9ocjS つまり>>281は嘘つきってこと?
292デフォルトの名無しさん
2017/01/30(月) 19:47:42.18ID:p0U51Ig/ exeの中身まで気が回りませんわ
293デフォルトの名無しさん
2017/01/30(月) 22:08:56.31ID:mpXbeHjF exeにビルド時のフルパスが埋め込まれてるとイラっとする
294デフォルトの名無しさん
2017/01/30(月) 22:20:13.70ID:XMGcU10o デバッグビルドなら普通でしょ
295デフォルトの名無しさん
2017/01/31(火) 02:46:33.99ID:SZ8YrWi+ リリースビルドにして、最適化オプションを指定すれば?
296デフォルトの名無しさん
2017/01/31(火) 09:17:11.64ID:r8Cb1+5o デバッグ情報を含めなければいいだけだしな
297デフォルトの名無しさん
2017/02/01(水) 01:15:31.17ID:lC8eLy+G あるクラスに引数で渡されるオブジェクトのconstではない参照を持ちたいんですけどどのようにやればいいでしょうか
ポインタはなるべく使いたくないのですが
class A {
public:
void setParam(Param&);
private:
Param& m_param;
}
状況としては
あるクラスBがクラスAみたいなParamの参照を持つクラスを複数持っていて
クラスBがvector<Param>でParamの実体を持っているという感じです
ポインタはなるべく使いたくないのですが
class A {
public:
void setParam(Param&);
private:
Param& m_param;
}
状況としては
あるクラスBがクラスAみたいなParamの参照を持つクラスを複数持っていて
クラスBがvector<Param>でParamの実体を持っているという感じです
298デフォルトの名無しさん
2017/02/01(水) 01:25:10.63ID:V+KME3Sb ライフタイムと循環参照のもたらす悪夢を
全部避けられるように熟考しながら
shared_ptr / weak_ptr をどうぞ
Welcome to C++ nightmare!!
全部避けられるように熟考しながら
shared_ptr / weak_ptr をどうぞ
Welcome to C++ nightmare!!
299デフォルトの名無しさん
2017/02/01(水) 01:36:32.13ID:nwC60mRJ shared_ptrの何が難しいのか判らん。
shared_ptr程度で悪夢とか言ってたらswiftも使えなくない?
shared_ptr程度で悪夢とか言ってたらswiftも使えなくない?
300デフォルトの名無しさん
2017/02/01(水) 02:15:37.65ID:V+KME3Sb まぁ良く調べて使ってねってのを脅し効かせた程度です
他の言語で参照カウント型のsmart_ptr解ってるなら 確かに大丈夫
他の言語で参照カウント型のsmart_ptr解ってるなら 確かに大丈夫
301デフォルトの名無しさん
2017/02/01(水) 12:17:29.74ID:RxSebrTI Windows10でBluetoothを使ったCOM通信を行いたく、
プログラムのほうはCOMポート通信のつもりで書き、
OSの設定でBluetoothに仮想COMポートを追加しました。
Androidとは問題なく接続・通信できたのですが、
Windows10同士ではうまくいきませんでした。
これは仮想COMポート作成するときに、どちらのPCも「受信」(相手側が接続を開始する)にしていたからだと思い、
片方を「送信」に変更しようとしました。
しかし、この場合は接続先PCを指定しなくてはならないのですが
対象PCが選択リスト内に出てこなくて作成することができません。
ペアリングはできているにもかかわらずです。
どうすればWin10PC同士でBluetoothを介したCOMポート接続・通信ができるでしょうか?
プログラムのほうはCOMポート通信のつもりで書き、
OSの設定でBluetoothに仮想COMポートを追加しました。
Androidとは問題なく接続・通信できたのですが、
Windows10同士ではうまくいきませんでした。
これは仮想COMポート作成するときに、どちらのPCも「受信」(相手側が接続を開始する)にしていたからだと思い、
片方を「送信」に変更しようとしました。
しかし、この場合は接続先PCを指定しなくてはならないのですが
対象PCが選択リスト内に出てこなくて作成することができません。
ペアリングはできているにもかかわらずです。
どうすればWin10PC同士でBluetoothを介したCOMポート接続・通信ができるでしょうか?
302デフォルトの名無しさん
2017/02/01(水) 12:30:13.62ID:HL/HxBhd 直接の解はわからないけど、ぐぐって見つかったので確認
ポート開くとき "\\\\.\\COM○○" (○は数字 \はエスケープ込み)
って開いてる?
ポート番号が1桁の場合に限り "COM○"でも開けるらしいけど、
そのコードの延長で 2桁渡すとそれは開けないから
ポート開くとき "\\\\.\\COM○○" (○は数字 \はエスケープ込み)
って開いてる?
ポート番号が1桁の場合に限り "COM○"でも開けるらしいけど、
そのコードの延長で 2桁渡すとそれは開けないから
303301
2017/02/01(水) 12:49:42.61ID:RxSebrTI >>302
あ、はい。それはやってます。
今、わかったのですが、
一旦ペアリングを解除して、改めて「送信」COMポートを追加しようとすると、
先程までペアリングしていた対象PCが選択できるようになりました。
しかし今度は「選択されたデバイスでシリアルポートサービスが実行されていません。」と出て作成されません。
相手側に「受信」のCOMポートは作成済みなのですが…。
あ、はい。それはやってます。
今、わかったのですが、
一旦ペアリングを解除して、改めて「送信」COMポートを追加しようとすると、
先程までペアリングしていた対象PCが選択できるようになりました。
しかし今度は「選択されたデバイスでシリアルポートサービスが実行されていません。」と出て作成されません。
相手側に「受信」のCOMポートは作成済みなのですが…。
304デフォルトの名無しさん
2017/02/01(水) 13:25:07.55ID:HL/HxBhd ttp://kokufu.blogspot.jp/2014/02/windows-bluetooth-spp-server.html
これとかの雰囲気だと
「受信」で作った側のPCのソフトを先に立ち上げて接続待ちにして(SPPサーバー)
「送信」で作った側のPCを後追いで接続 かなぁ
力になれなくてすまん
これとかの雰囲気だと
「受信」で作った側のPCのソフトを先に立ち上げて接続待ちにして(SPPサーバー)
「送信」で作った側のPCを後追いで接続 かなぁ
力になれなくてすまん
305301
2017/02/01(水) 14:06:25.03ID:RxSebrTI >>304
いえいえ!
色々と調べていただいて参考になりました。
どうもシリアル接続サービスをサポートしていないようです。
今回の条件ではあまり好ましくないのですが、
WiFiを使ったソケット通信で妥協することにします。
ありがとうございました。
いえいえ!
色々と調べていただいて参考になりました。
どうもシリアル接続サービスをサポートしていないようです。
今回の条件ではあまり好ましくないのですが、
WiFiを使ったソケット通信で妥協することにします。
ありがとうございました。
306デフォルトの名無しさん
2017/02/01(水) 14:21:22.91ID:+8V+I8xy307デフォルトの名無しさん
2017/02/01(水) 20:39:39.90ID:3j6uP7e4 >>297
参照をメンバで持ちたい時は、コンストラクタでの初期化以外は無理。
class A {
public:
A(Param& x):m_param(x){}
private:
Param& m_param;
};
参照をメンバで持ちたい時は、コンストラクタでの初期化以外は無理。
class A {
public:
A(Param& x):m_param(x){}
private:
Param& m_param;
};
308デフォルトの名無しさん
2017/02/02(木) 01:04:42.40ID:CAgg+EtY shared_ptr,weak_ptrのことで質問なのですが
自クラス2つを引数に取る+演算子をオーバーロードしているクラスMatrixを使って
func(std::weak_ptr<Matrix> m1, std::weak_ptr<Matrix> m2){
mat = m1 * m2;
…
}
みたいにやりたいんですが、オペランドに一致する演算子がないと言われます
shared_ptr,weak_ptrに入れた場合どのようにしてオーバーロードされた演算子を利用できますか?
自クラス2つを引数に取る+演算子をオーバーロードしているクラスMatrixを使って
func(std::weak_ptr<Matrix> m1, std::weak_ptr<Matrix> m2){
mat = m1 * m2;
…
}
みたいにやりたいんですが、オペランドに一致する演算子がないと言われます
shared_ptr,weak_ptrに入れた場合どのようにしてオーバーロードされた演算子を利用できますか?
309デフォルトの名無しさん
2017/02/02(木) 01:27:35.78ID:FXYEZ0RW310デフォルトの名無しさん
2017/02/02(木) 02:04:10.33ID:CAgg+EtY >>309
ありがとうございます
weak_ptrを使っている理由は
funcはあるクラスのメンバ関数で、引数で渡されたポインタの所有権をクラスが持たないこと示すためにweak_ptrを使っているのですが
weak_ptr::expired()な場合は想定していません
ありがとうございます
weak_ptrを使っている理由は
funcはあるクラスのメンバ関数で、引数で渡されたポインタの所有権をクラスが持たないこと示すためにweak_ptrを使っているのですが
weak_ptr::expired()な場合は想定していません
311デフォルトの名無しさん
2017/02/02(木) 02:21:14.81ID:ExAPXdhA312デフォルトの名無しさん
2017/02/02(木) 02:21:18.81ID:EB2HJN86 スマートポインタはポインタのように振る舞うものだから
*や->でポインタの指す値にしなければならないよ
*や->でポインタの指す値にしなければならないよ
313デフォルトの名無しさん
2017/02/02(木) 10:51:03.92ID:335RX4F5 VS2015で.objを.libに変換してリンクできなくて悩んでいます
そういうことはできないのでしょうか?
複数のC++ファイルをビルド→.objが複数できる
新しいEXEプロジェクト作る→main()を用意→そこの.vcxprojを編集して複数の.objをincludeする→ビルドで正常な.exeできる(exeサイズ10MB)
include方法は<Object Include="abc1.obj" /> <Object Include="abc2.obj" />・・・
新しいスタティックライブラリプロジェクト作る→そこの.vcxprojを編集して複数の.objをincludeする→ビルドで.libができる(libサイズ100MB)
→新しいEXEプロジェクト作る→main()を用意→追加のライブラリで.libをリンクする→ビルドで動かない.exeできる(exeサイズ1MB)
動かない.exeのビルド時はリンカーエラーなど出ません
exeサイズが期待しているよりも小さく、実行時に例外で強制終了します
そういうことはできないのでしょうか?
複数のC++ファイルをビルド→.objが複数できる
新しいEXEプロジェクト作る→main()を用意→そこの.vcxprojを編集して複数の.objをincludeする→ビルドで正常な.exeできる(exeサイズ10MB)
include方法は<Object Include="abc1.obj" /> <Object Include="abc2.obj" />・・・
新しいスタティックライブラリプロジェクト作る→そこの.vcxprojを編集して複数の.objをincludeする→ビルドで.libができる(libサイズ100MB)
→新しいEXEプロジェクト作る→main()を用意→追加のライブラリで.libをリンクする→ビルドで動かない.exeできる(exeサイズ1MB)
動かない.exeのビルド時はリンカーエラーなど出ません
exeサイズが期待しているよりも小さく、実行時に例外で強制終了します
314デフォルトの名無しさん
2017/02/02(木) 12:49:56.83ID:cH1kwi7M 例外を具体的に
315デフォルトの名無しさん
2017/02/02(木) 13:18:13.30ID:Nq0thOwX >>314
> ハンドルされない例外がスローされました:読み取りアクセス違反。
> xxxxx が nullptr でした。
xxxxxはポインタ変数
exeサイズが小さいからリンクできてるように見えてリンクできてないのかなとは思うけど
libの追加方法を#pragma comment(lib,"")にしてもうまくいかずでどうしたらいいものか
> ハンドルされない例外がスローされました:読み取りアクセス違反。
> xxxxx が nullptr でした。
xxxxxはポインタ変数
exeサイズが小さいからリンクできてるように見えてリンクできてないのかなとは思うけど
libの追加方法を#pragma comment(lib,"")にしてもうまくいかずでどうしたらいいものか
316デフォルトの名無しさん
2017/02/02(木) 18:40:08.32ID:qO0hDPsp317デフォルトの名無しさん
2017/02/02(木) 18:48:07.72ID:S7kpFPUA318デフォルトの名無しさん
2017/02/02(木) 19:11:39.98ID:Eu4e1EaI319デフォルトの名無しさん
2017/02/02(木) 19:16:04.83ID:WkIFQVuy320デフォルトの名無しさん
2017/02/02(木) 19:18:03.73ID:qhXDtbED .c, .cpp から .lib 作るプロジェクト -(A)
そいつをリンクしつつ、 .c, .cpp から実行ファイルを作るプロジェクト -(B)
(参照設定とか依存関係とかで (A) を使うぜ俺 って指定する)
そいつをリンクしつつ、 .c, .cpp から実行ファイルを作るプロジェクト -(B)
(参照設定とか依存関係とかで (A) を使うぜ俺 って指定する)
321デフォルトの名無しさん
2017/02/02(木) 19:38:57.55ID:WkIFQVuy こんな感じだろ
ソースからobj生成: VSプロジェクトでなくていい
VSプロジェクト
1. objからexe作るVSプロジェクト (結果OK)
2. objからlib作るVSプロジェクト (3.がNGで、本当にうまくlib作れたかわからず)
3. 上のlibからexe作るVSプロジェクト (exeが例外でNG)
ソースからobj生成: VSプロジェクトでなくていい
VSプロジェクト
1. objからexe作るVSプロジェクト (結果OK)
2. objからlib作るVSプロジェクト (3.がNGで、本当にうまくlib作れたかわからず)
3. 上のlibからexe作るVSプロジェクト (exeが例外でNG)
322デフォルトの名無しさん
2017/02/02(木) 19:51:53.25ID:Eu4e1EaI323デフォルトの名無しさん
2017/02/02(木) 20:22:53.95ID:k638XiO/ そこまで行ったらDLLに分けるだろう
324313
2017/02/03(金) 13:56:09.01ID:3xPmzf3n 4番をやってみましたが結果OKでした
1. objからexe作るVSプロジェクト (結果OK)
2. objからlib作るVSプロジェクト (3.がNGで、本当にうまくlib作れたかわからないが、4がOKで作れてる可能性高い)
3. 2のlibからexe作るVSプロジェクト (exeが例外でNG)
4. 2のlibからobjを抽出して、そのobjからexe作るVSプロジェクト (結果OK)
作業の前提条件として下の2つは意味が同じと思っているのですが、違いがあるのでしょうか?
cppをコンパイルしてobjにし、objをリンクしてexeを作る
cppをコンパイルしてobjにし、objをlibに変換してからリンクしてexeを作る
1. objからexe作るVSプロジェクト (結果OK)
2. objからlib作るVSプロジェクト (3.がNGで、本当にうまくlib作れたかわからないが、4がOKで作れてる可能性高い)
3. 2のlibからexe作るVSプロジェクト (exeが例外でNG)
4. 2のlibからobjを抽出して、そのobjからexe作るVSプロジェクト (結果OK)
作業の前提条件として下の2つは意味が同じと思っているのですが、違いがあるのでしょうか?
cppをコンパイルしてobjにし、objをリンクしてexeを作る
cppをコンパイルしてobjにし、objをlibに変換してからリンクしてexeを作る
325デフォルトの名無しさん
2017/02/03(金) 13:56:30.01ID:OeN1TpCU Ubuntu16.04,gcc5.4.0で,書籍を参考に下記のプログラムを
コンパイル(gcc program.c -lalut -s -o program)したところ,
「'nullptr' was not declared in this scope」というエラーになりました
何が間違っているのか教えてください
---program---
#include<AL/al.h>
#include<AL/alc.h>
int main() {
//OpenAlの初期化
//デバイスを開く
ALCdevice* device = alcOpenDevice(nullptr);
//コンテキストを生成
ALCcontext* context = alcCreateContext(device, nullptr);
//生成したコンテキストを操作対象にする
alcMakeContextCurrent(context);
//OpenALの後始末
//操作対象のコンテキストを解除
alcMakeContextCurrent(nullptr);
//コンテキストを破棄
alcDestroyContext(context);
//デバイスを閉じる
alcCloseDevice(device);
}
コンパイル(gcc program.c -lalut -s -o program)したところ,
「'nullptr' was not declared in this scope」というエラーになりました
何が間違っているのか教えてください
---program---
#include<AL/al.h>
#include<AL/alc.h>
int main() {
//OpenAlの初期化
//デバイスを開く
ALCdevice* device = alcOpenDevice(nullptr);
//コンテキストを生成
ALCcontext* context = alcCreateContext(device, nullptr);
//生成したコンテキストを操作対象にする
alcMakeContextCurrent(context);
//OpenALの後始末
//操作対象のコンテキストを解除
alcMakeContextCurrent(nullptr);
//コンテキストを破棄
alcDestroyContext(context);
//デバイスを閉じる
alcCloseDevice(device);
}
326デフォルトの名無しさん
2017/02/03(金) 14:06:26.05ID:S9UE3yae nullptrはC++11からの機能だからですね
"gcc" -> "g++ --std=c++11"を使ってください
元のコンパイルは-lalutを指定していますが
そのプログラムならOpenALだけで大丈夫なので 下記で通ります
ライブラリをpkg-configに探させてるだけです
g++ --std=c++11 program.c `pkg-config openal --libs` -o program
"gcc" -> "g++ --std=c++11"を使ってください
元のコンパイルは-lalutを指定していますが
そのプログラムならOpenALだけで大丈夫なので 下記で通ります
ライブラリをpkg-configに探させてるだけです
g++ --std=c++11 program.c `pkg-config openal --libs` -o program
327デフォルトの名無しさん
2017/02/03(金) 14:55:43.86ID:xVLuMTde328デフォルトの名無しさん
2017/02/03(金) 15:42:48.87ID:3xPmzf3n >>327
使ってるのも使ってないのもある
libの追加方法は二通り試したけどどちらもビルドエラーはでないけど実行時NG
どちらもlibの追加を省略すると外部シンボルが見つからないエラーでビルドが通らない
プロジェクトのプロパティの「追加の依存ファイル」から→実行時NG
ソースファイル中に「#pragma comment(lib,"")」から→実行時NG
使ってるのも使ってないのもある
libの追加方法は二通り試したけどどちらもビルドエラーはでないけど実行時NG
どちらもlibの追加を省略すると外部シンボルが見つからないエラーでビルドが通らない
プロジェクトのプロパティの「追加の依存ファイル」から→実行時NG
ソースファイル中に「#pragma comment(lib,"")」から→実行時NG
329デフォルトの名無しさん
2017/02/04(土) 00:14:20.36ID:z/XsYQOx 何もしていない普通の一般人の自宅に隠しカメラを取り付け
それをネットでリアルタイム配信
仲間という人間に対する盗聴盗撮生ネット配信の会
しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる
そんなことが今この国では行われています
それをネットでリアルタイム配信
仲間という人間に対する盗聴盗撮生ネット配信の会
しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる
そんなことが今この国では行われています
330デフォルトの名無しさん
2017/02/04(土) 05:54:43.47ID:/r5Uxr2+ libでリンク解決してもダイナミックリンクにしてれば実行時にパス内に見つからずにエラー
スタティックリンクにしないと
スタティックリンクにしないと
331デフォルトの名無しさん
2017/02/04(土) 09:51:58.52ID:GdM1I4zb 久々にプログラミングしようと思うんですけど
USBカメラがあるからそれを使って監視カメラにしたいんだが
ピクセルデータが取れればあとは簡単だと思うんだけど、その前に
この適当に昔買ったバッファローのUSBからデータ取り出す事って可能なんですか?
USBカメラがあるからそれを使って監視カメラにしたいんだが
ピクセルデータが取れればあとは簡単だと思うんだけど、その前に
この適当に昔買ったバッファローのUSBからデータ取り出す事って可能なんですか?
332デフォルトの名無しさん
2017/02/04(土) 10:24:35.81ID:94H9RTyk333デフォルトの名無しさん
2017/02/04(土) 10:55:19.44ID:GdM1I4zb >>332
ありがとうございますだ
ありがとうございますだ
334デフォルトの名無しさん
2017/02/04(土) 21:25:32.55ID:uqEM2LY/ int a = 0;
int *b = &(1+a);
これが出来ないのはなぜですか?
1+aの計算結果というのはメモリ上のどこかにあると思うんですが
int *b = &(1+a);
これが出来ないのはなぜですか?
1+aの計算結果というのはメモリ上のどこかにあると思うんですが
336デフォルトの名無しさん
2017/02/04(土) 21:31:18.24ID:3pCbKNVT &1 を許すとややこしいことになりそうだ
337デフォルトの名無しさん
2017/02/04(土) 21:38:25.89ID:wIflvrKT >>334
計算結果はレジスタに入っててメモリには入ってないんじゃない?
計算結果はレジスタに入っててメモリには入ってないんじゃない?
338デフォルトの名無しさん
2017/02/04(土) 21:52:37.41ID:uqEM2LY/339デフォルトの名無しさん
2017/02/05(日) 19:35:43.24ID:ktep0Dpi340デフォルトの名無しさん
2017/02/05(日) 22:43:20.73ID:F2ePDpTS >337
レジスタがメモリじゃないかのようなアホレスだな
レジスタがメモリじゃないかのようなアホレスだな
341デフォルトの名無しさん
2017/02/05(日) 23:03:58.60ID:wagcFIA6 レジスタのアドレスって・・・
342デフォルトの名無しさん
2017/02/06(月) 01:31:32.48ID:DI3VdQ+9 アドレスのないレジスタはCでアクセスできないからな
アセンブリでしてねになるからね
アセンブリでしてねになるからね
343デフォルトの名無しさん
2017/02/06(月) 03:41:00.32ID:oG8S/cPb って言うかレジスタ関係なくね?
右辺値に対してアドレス取ろうとしてるから駄目なわけで。
右辺値に対してアドレス取ろうとしてるから駄目なわけで。
344デフォルトの名無しさん
2017/02/06(月) 05:58:55.21ID:GvVdGH4O >>334 の質問に対して「右辺値」を出すのは大げさじゃないかな。
もちろん正しいんだけど、詳細に踏み込みすぎというか、
その話はもっと理解が深まってから、というか。
「過去に自分がこの疑問を持ったときに、どんな説明をされたら
すっきり腑に落ちて先に進めただろうか」と思い返しながら回答してるんだろう。
もちろん正しいんだけど、詳細に踏み込みすぎというか、
その話はもっと理解が深まってから、というか。
「過去に自分がこの疑問を持ったときに、どんな説明をされたら
すっきり腑に落ちて先に進めただろうか」と思い返しながら回答してるんだろう。
345デフォルトの名無しさん
2017/02/06(月) 08:21:18.53ID:87jFG7WV346デフォルトの名無しさん
2017/02/06(月) 08:58:46.99ID:L0zP1ki7 間違った説明で相手を納得させておいて開き直りとはこれいかに
347デフォルトの名無しさん
2017/02/06(月) 13:17:28.90ID:WLH8uv6+348デフォルトの名無しさん
2017/02/06(月) 20:21:28.41ID:VJg+IRhi349デフォルトの名無しさん
2017/02/06(月) 20:22:09.67ID:VJg+IRhi350デフォルトの名無しさん
2017/02/06(月) 20:58:58.36ID:oG8S/cPb >>344
でもさ、レジスタって言語と関係ないじゃん?
でもさ、レジスタって言語と関係ないじゃん?
351デフォルトの名無しさん
2017/02/06(月) 21:52:01.05ID:w07g0Jpo registerは予約語なのに無関係は無いわ
352デフォルトの名無しさん
2017/02/06(月) 22:13:36.15ID:rtwfNknd >registerは予約語なのに無関係は無いわ
規格のどこを読んだら「register」キーワードと「レジスター」との関連が読みとれるんだか
規格のどこを読んだら「register」キーワードと「レジスター」との関連が読みとれるんだか
353デフォルトの名無しさん
2017/02/06(月) 23:29:15.59ID:w07g0Jpo 規格厨には理解しろと言っても無理だ
354デフォルトの名無しさん
2017/02/06(月) 23:45:37.66ID:+fmEnPzx >int a = 0;
>int *b = &(1+a);
っていうのが今intになってるからレジスタがどうとか言えるけど
intじゃなくて自分で定義したクラスとかだったらどうなんだって話だな
レジスタだからアドレスが取れないっていう説明はアレすぎないかい?
そもそもレジスタだけで済ませるかどうかはコンパイラの自由ってのもあるし
>int *b = &(1+a);
っていうのが今intになってるからレジスタがどうとか言えるけど
intじゃなくて自分で定義したクラスとかだったらどうなんだって話だな
レジスタだからアドレスが取れないっていう説明はアレすぎないかい?
そもそもレジスタだけで済ませるかどうかはコンパイラの自由ってのもあるし
355デフォルトの名無しさん
2017/02/06(月) 23:48:30.59ID:tIYhS76V 一生懸命だなあw
356デフォルトの名無しさん
2017/02/07(火) 00:11:08.64ID:STnejiJM 俺が思うにさ
最適化でレジスタに配置されてメモリに実体が確保されない変数ってのは
普通にありふれているわけじゃないですか
で、それらの変数のアドレスを取得するように
コードを書き換えたら、コンパイルエラーになるんですか?ってね
その場合ちゃんとコンパイラはメモリに実体を作るような動作になる
だからレジスタ云々はオプティマイズの話であって本質的に全く関係ないだろうと
レジスタに配置されているからアドレス取得できませんって意味不明で
だったらメモリに実体を作ればいくらでもアドレス取得できるだろって話なんだよ
どちらかというとこれは変数の寿命の関係でそうなっているんだよ
最適化でレジスタに配置されてメモリに実体が確保されない変数ってのは
普通にありふれているわけじゃないですか
で、それらの変数のアドレスを取得するように
コードを書き換えたら、コンパイルエラーになるんですか?ってね
その場合ちゃんとコンパイラはメモリに実体を作るような動作になる
だからレジスタ云々はオプティマイズの話であって本質的に全く関係ないだろうと
レジスタに配置されているからアドレス取得できませんって意味不明で
だったらメモリに実体を作ればいくらでもアドレス取得できるだろって話なんだよ
どちらかというとこれは変数の寿命の関係でそうなっているんだよ
357デフォルトの名無しさん
2017/02/07(火) 00:12:13.25ID:vsDAW+dO 初心者向けの簡易な説明に外野がつまらない茶々入れて大騒ぎするなよ。
358デフォルトの名無しさん
2017/02/07(火) 00:25:30.14ID:pfKer2X+ >最適化でレジスタに配置されてメモリに実体が確保されない変数ってのは
>普通にありふれているわけじゃないですか
本当にありふれてるのか?
>普通にありふれているわけじゃないですか
本当にありふれてるのか?
359デフォルトの名無しさん
2017/02/07(火) 00:48:05.62ID:PI0qtNzz winsock(UDP)を使ったプログラムを作っています。
ほぼできたのですが、数100回繰り返すと徐々に通信が
遅くなっていきます。
通信するたびに、オープンとクローズを繰り返しているのですが、
その辺に原因がありそうでしょうか・・・。
ほぼできたのですが、数100回繰り返すと徐々に通信が
遅くなっていきます。
通信するたびに、オープンとクローズを繰り返しているのですが、
その辺に原因がありそうでしょうか・・・。
360デフォルトの名無しさん
2017/02/07(火) 02:25:04.93ID:e2fTv1VF メモリを解放していないから、使用メモリがドンドン大きくなっていくとか?
プロセスの使用メモリを、チェックすれば?
プロセスの使用メモリを、チェックすれば?
361デフォルトの名無しさん
2017/02/07(火) 07:22:03.04ID:ff698yUf362デフォルトの名無しさん
2017/02/07(火) 07:23:26.33ID:ff698yUf >>359
再現性あるならどこが遅くなってるかを調べたら?
再現性あるならどこが遅くなってるかを調べたら?
363デフォルトの名無しさん
2017/02/07(火) 07:43:41.13ID:AbeSLyAt >その自由さのために言語仕様でできないようにしてるだけでしょ
根拠は俺の「こうだったらいいな」
この理屈で行くとアドレスをとれる変数は
レジスタに乗せてはいけないことになるな
根拠は俺の「こうだったらいいな」
この理屈で行くとアドレスをとれる変数は
レジスタに乗せてはいけないことになるな
364デフォルトの名無しさん
2017/02/07(火) 11:15:58.10ID:bjgueVwS register云々してるやつはCかC++か区別して書け
365デフォルトの名無しさん
2017/02/07(火) 11:47:58.10ID:+LdvU0fQ class A
{
public:
int xxx;
void yyy();
};
class B : protected A ←protectedのままにしたい
{
public:
void yyy() { __super::yyy(); }
};
B bbb;
bbb.xxx = 0; ←アクセスできない
bbb.yyy(); ←使える
xxxをclassBの内部を変えることでアクセスできるようにする方法ない?
{
public:
int xxx;
void yyy();
};
class B : protected A ←protectedのままにしたい
{
public:
void yyy() { __super::yyy(); }
};
B bbb;
bbb.xxx = 0; ←アクセスできない
bbb.yyy(); ←使える
xxxをclassBの内部を変えることでアクセスできるようにする方法ない?
366デフォルトの名無しさん
2017/02/07(火) 11:52:35.77ID:Ex9Qk6T0 public:
using A::xxx;
using A::xxx;
367デフォルトの名無しさん
2017/02/07(火) 11:57:42.37ID:+LdvU0fQ >>366
おお!yyy()もそれでいけるね。サンクス
おお!yyy()もそれでいけるね。サンクス
368デフォルトの名無しさん
2017/02/07(火) 19:45:06.55ID:R+lISOuU369デフォルトの名無しさん
2017/02/08(水) 19:54:01.02ID:zyGgo9zG 俺,register使ったことないが
register int a = 0;
int *b = &a;
とすると、b経由で割り当てられたCPUレジスタにアクセスできるのか?
register int a = 0;
int *b = &a;
とすると、b経由で割り当てられたCPUレジスタにアクセスできるのか?
370デフォルトの名無しさん
2017/02/08(水) 20:15:16.32ID:x9WXoVQQ cではregister指定された変数のアドレスは取れない
c++では取ってもいいが、取ると普通はレジスタではなくメモリ割り当てになる
そもそもregister指定しても必ずレジスタ割り当てになるわけではない
今のコンパイラの多くはregisterを無視してるらしい
c++では取ってもいいが、取ると普通はレジスタではなくメモリ割り当てになる
そもそもregister指定しても必ずレジスタ割り当てになるわけではない
今のコンパイラの多くはregisterを無視してるらしい
371デフォルトの名無しさん
2017/02/08(水) 20:21:15.44ID:6Dg3FALd >>369
それ面白いけど実装がめちゃくちゃ大変だし、そもそもメリットないだろ
それ面白いけど実装がめちゃくちゃ大変だし、そもそもメリットないだろ
372デフォルトの名無しさん
2017/02/08(水) 20:38:12.66ID:Z1e//95W C++では次のC++17(今年出る予定)から機能削除、かつ将来のためにキーワードは予約だよ
373デフォルトの名無しさん
2017/02/08(水) 20:41:11.49ID:039KZGQ+ register int a = 0;
int *b = &a;
これで b が a を格納してるCPUレジスタをポイントすると、
b++ とかした時に、どのレジスタを指すの? て話で困るんじゃないか。
int& b = a;
という具合に参照で受ければ何とか…。
int *b = &a;
これで b が a を格納してるCPUレジスタをポイントすると、
b++ とかした時に、どのレジスタを指すの? て話で困るんじゃないか。
int& b = a;
という具合に参照で受ければ何とか…。
374デフォルトの名無しさん
2017/02/08(水) 20:43:52.35ID:Z1e//95W >>373
そんなの普通の変数だって未定義動作じゃん
そんなの普通の変数だって未定義動作じゃん
375デフォルトの名無しさん
2017/02/08(水) 20:47:07.07ID:6Dg3FALd376デフォルトの名無しさん
2017/02/08(水) 21:02:48.15ID:x9WXoVQQ なんでx86前提なんだよ
実際出来ないんだから議論の意味ないが、出来たとしても実装依存だろ
実際出来ないんだから議論の意味ないが、出来たとしても実装依存だろ
377デフォルトの名無しさん
2017/02/08(水) 22:06:39.93ID:r8a3b7fC378デフォルトの名無しさん
2017/02/08(水) 22:23:33.67ID:t4XC3Oio p++ が動作未定儀か否かとは関係ない話だと思うが
ポインタの指し先を求めず、ポインタの演算と差分
int a;
int* p = &a;
int* q = p + 1;
q-p;
で 実体の要素数+1 までは正しく差分が取れることを保障している ってどっかであった記憶
ポインタの指し先を求めず、ポインタの演算と差分
int a;
int* p = &a;
int* q = p + 1;
q-p;
で 実体の要素数+1 までは正しく差分が取れることを保障している ってどっかであった記憶
379デフォルトの名無しさん
2017/02/09(木) 02:31:40.69ID:lnTHGhne380デフォルトの名無しさん
2017/02/09(木) 03:48:37.73ID:WRm++DjL int i;
int *ip=&i;
ip+1はほんとにあるんかい?
いやあるんだろうけどw
int *ip=&i;
ip+1はほんとにあるんかい?
いやあるんだろうけどw
381デフォルトの名無しさん
2017/02/09(木) 06:05:01.98ID:4sYnDBFk 同等なレジスタを32個とか内蔵してて番号で区別する
RISCチップだと不自然でもない気がしてきた。
RISCチップだと不自然でもない気がしてきた。
382デフォルトの名無しさん
2017/02/09(木) 06:22:52.94ID:ZHuRANtU■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★4 [樽悶★]
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと3カ月… [BFU★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★3 [Hitzeschleier★]
- 歩道で93歳男性が女子大学生の自転車にはねられ意識不明 坂を下った先「気付いたときには目の前に」 [七波羅探題★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★4 [お断り★]
- ネトウヨ諸君、言葉を慎みたまえ。中国側は俺がネトウヨに何言われたかも監視してる [805596214]
- 石破が首相のままで良かった件、高市に代わって滅茶苦茶なの分かってたのに、メディア(読売)裏金議員、ビジウヨの罪は大きいと思う [943688309]
- テレビ局各社が高市首相を一切批判せず中国批判を展開 安倍時代の報道完全復活 [633746646]
- 🍣にゃっはろ🌸~スシろ~🏡
- ドラクエ7プロデューサー「リメイク版でエピソードを大幅カットしたのは忙しい現代人に配慮した結果です」 [153736977]
- 海外大手メディア、高市が中国に宣戦布告したと次々報道し始める。どんどん外堀が埋められる [931948549]
