1 名前:デフォルトの名無しさん (ワッチョイ 7fc9-G+K4) mailto:sage [2016/04/03(日) 00:22:24.07 ID:ZT/2NYWz0.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part123 echo.2ch.net/test/read.cgi/tech/1456040187/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1439849418/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
321 名前:デフォルトの名無しさん (ワッチョイ 6f3c-1woS) [2016/04/30(土) 14:23:05.68 ID:uVz81x780.net] アスぺは関係ないw
322 名前:デフォルトの名無しさん (ワッチョイ 27bf-ZWIR) mailto:sage [2016/04/30(土) 15:24:25.97 ID:EkpjLvdA0.net] じゃあ荒らしは去れになっちゃうなww
323 名前:デフォルトの名無しさん (アウアウ Sa27-7WOp) mailto:sage [2016/04/30(土) 16:32:02.70 ID:dTOuLsNga.net] 暗号通信は犯罪に使われるので政府用バックドアが必要になる。 しかしそうすると職権乱用が懸念される。 そこで、次善の策として、国際的に承認が必要にするというのはどうか? 復号には常任理事国全ての政府の承認が必要不可欠とするというものだ アメリカがYesと言っても中国(或いはロシア)がNoというかもしれないので安易に覗き見はできなくなるだろう
324 名前:デフォルトの名無しさん (スプー Sd2f-hBSK) mailto:sage [2016/04/30(土) 18:16:59.09 ID:OJjCBDMXd.net] なるほどC++らしい
325 名前:デフォルトの名無しさん (ワッチョイ cb7b-olYR) [2016/04/30(土) 20:20:59.06 ID:mxQluw9J0.net] >>307 C言語でポインタ使うのが同じくらい書くのが楽なら使うよ それにC言語でも環境やコンパイラによってこう書いた方が効率いいとか、冗長な記述減らせるけど実行コストそれほど変わらないという議論あるよね?
326 名前:デフォルトの名無しさん (ワッチョイ 6f3c-1woS) [2016/04/30(土) 20:35:53.60 ID:uVz81x780.net] >>317 Covenantの目的はインターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
327 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/04/30(土) 23:13:30.56 ID:+bg/IZ99H.net] - stdafx.h - #pragma once #include <iostream> #include <random> ------------------------------- #include "stdafx.h" using namespace std; int main() { random_device rnd; // メルセンヌ・ツイスター法による乱数発生 // mt19937 engine; // 32bitパソコン用 uniform_int_distribution<int> distribution( 0, 9 ) ; // 整数 // uniform_real_distribution<double> distribution (0.0, 9.9); // 実数 for(int i = 0 ; i!= 10 ; ++i) cout<<distribution(engine)<<endl ; cout << endl<< "Press Enter!"; cin.get(); return 0; } VC++2015では毎回違う乱数が出るのに,TDM GCC(gcc5.1.0)では 同じ乱数しか出ない. gccのオプションSWの問題?
328 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/04/30(土) 23:15:38.21 ID:+bg/IZ99H.net] // mt19937 engine; // 32bitパソコン用 ↓ mt19937_64 engine(rnd());
329 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/04/30(土) 23:22:10.38 ID:olAQ2y8z0.net] 何か以前、同じ悩みのレスを見たような
330 名前:デフォルトの名無しさん (ワッチョイ 3fa6-OoOA) mailto:sage [2016/05/01(日) 00:54:26.52 ID:pgSGezQj0.net] >random_device rnd; これを何にも使っていないからだな >>322 のように使え
331 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/01(日) 00:58:35.24 ID:fsqM/cei0.net] 疑似乱数なんて、とある初期値を元に決まった数列を生成するだけだからな。 初期値が変わらないと数列も変わらん。
332 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/05/01(日) 01:08:56.51 ID:JjM58K48H.net] >>324 だから訂正した上で乱数が同じ値になってしまうと言ってる。 頭悪いな
333 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/01(日) 01:15:39.33 ID:fsqM/cei0.net] うんじゃー、ランダムデバイスは環境定義だから、ランダムデバイスもMTなんじゃね? 普通はCPUのランダム取ってくるんだけど。
334 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/01(日) 01:27:29.62 ID:fsqM/cei0.net] ideone.com/fEKyXv ideone.com/VbkxpO イデオンってGCCだよな。たしか。
335 名前:デフォルトの名無しさん (アウアウ Sa27-ohpd) mailto:sage [2016/05/01(日) 08:19:16.64 ID:4ccqRarua.net] random_deviceの実装見ろ
336 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/05/01(日) 09:02:25.15 ID:JjM58K48H.net] >>329 あほか。 ひょっとしたらgccをbuildする時のTDM-GCC(MinGW)の問題かもしれん。 https://github.com/bitcoin/bitcoin/issues/2290 しかし、英文が微妙なニュアンスでわからん。 -frandom-seedのオプションを指定しないといけないとあるようだが。 obj/%.o: %.cpp $(HEADERS) $(CXX) -c -frandom-seed=$@ $(CFLAGS) -o $@ $< しかし、後の方には We don't use frandom-seed at all anymore after #4724, closing this. とある.うーん、わからん。
337 名前:デフォルトの名無しさん (ワッチョイ 3fa6-OoOA) mailto:sage [2016/05/01(日) 09:11:05.64 ID:pgSGezQj0.net] >>326 ああ >>321 ==>>322 だったかごめんごめん
338 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/05/01(日) 09:11:57.94 ID:JjM58K48H.net] qiita.com/nanashi/items/f94b78398a6c79d939e1 もあるな。しかし、もうこの話題はやめた
339 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/05/01(日) 09:48:18.92 ID:p2YCnIW80.net] >>330 『It is used to generate certain symbol names that have to be different in every compiled file. It is also used to place unique stamps in coverage data files and the object files that produce them.』 「アホか。」はお前のことだろう
340 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/05/01(日) 09:53:17.94 ID:JjM58K48H.net] いいからお前はひっこんでろ
341 名前:デフォルトの名無しさん (ワッチョイ cb7b-1+8h) mailto:sage [2016/05/01(日) 10:40:34.11 ID:8qUfiok/0.net] random_deviceは規格通りに実装されてないケースがあるから std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count()); とかにしておいたほうが無難だよ以下参照 peace.2ch.net/test/read.cgi/tech/1433514467/782
342 名前:デフォルトの名無しさん (ワッチョイ 37d9-0GMy) mailto:sage [2016/05/01(日) 10:50:50.22 ID:tY30d3V60.net] random_deviceが毎回異なる擬似乱数を返すかどうかは random_device::entropy()の値をチェックする これが 0 なら毎回同じ数列を返すので>>335 みたいにするといい
343 名前:デフォルトの名無しさん (ワッチョイ cb7b-1+8h) mailto:sage [2016/05/01(日) 11:01:18.00 ID:8qUfiok/0.net] entropy()==0じゃチェックできないよ 規格通りならentropy()==0でもoperator()は「非決定性」の値を返さなきゃいけない 何度起動しても同じ数列が返るならそれは実装のバグ
344 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/05/01(日) 11:02:50.07 ID:p2YCnIW80.net] >>336 それだと >>335 の先の>>828 に書いてある規格の要求を満たしていないだろう ちなみに>>335 の先のID:theP84i7は俺のようだ思い出した
345 名前:デフォルトの名無しさん (JP 0H07-89Kw) [2016/05/01(日) 11:04:15.55 ID:JjM58K48H.net] >>335 ありがとうございます。助かります。
346 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/05/01(日) 23:34:15.98 ID:p2YCnIW80.net] >>227 具体的にはどのような場合? 静的変数の参照を返すとか?
347 名前:デフォルトの名無しさん (ワッチョイ 3b64-nlgT) [2016/05/02(月) 00:24:24.91 ID:rK2U+l6Y0.net] グローバルでない変数って色々あるからなあ
348 名前:デフォルトの名無しさん (ワッチョイ 2f94-Huko) mailto:sage [2016/05/02(月) 01:15:48.64 ID:lijKCiQb0.net] 入門者です。初心者用スレがない様なのでこちらで質問します min()の戻り値が「マイナス」max......という風になっているのですがこれはどういった意味があるのでしょうか n1 = 2,n2 = 3,n3 = 4で、max()の戻り値は4、minの戻り値は2となっています。大小逆の数を返すのですが マイナスに具体的にどういった役割があるのか、何と検索すればいいのか教えていただきたいです #include "minmax.h" // 最大値を返す int MinMax::max(int n1, int n2, int n3) { if (n1 > n2 && n1 > n3) { return n1; } else if (n2 > n3 && n2 > n1){ return n2; } else if (n1 > n3 && n1 > n2){ return n1; } return n3; } // 最小値を返す int MinMax::min(int n1, int n2, int n3) { return -max(-n1, -n2, -n3); } 初めて見るのでうまく説明できませんが、必要な情報は随時追加しますのでエスパーできる人 教えてください
349 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 01:22:22.63 ID:GdZkeqisK.net] >>342 正の数は絶対値が大きいなら大きい数になる。 逆に負の数は絶対値が小さいなら大きい数になる。 絶対値だけを見るなら正の数の大小関係は負の数の大小関係の逆になる。
350 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/02(月) 01:27:04.99 ID:LofVFQLs0.net] 検索手法だと思うが、 普通MinMaxって最小値と最大値をウエイトにするもんだと思うので、カスタムロジックなんじゃないか? 実装したやつに聞いてみろー。 発展としてアルファベータカットっていうものもあるよ。 MINMAX検索の一番のキモは、 最大値が最適解とは限らない。かつ、最小値が最適解とは限らない。という条件で最適な解を探す。 というもの。 それと、C++11で可変引数版、std::minとmax入ったからそっち使ったほうが読みやすい。
351 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/02(月) 01:30:07.03 ID:LofVFQLs0.net] あれ?俺勘違いしてるか?
352 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 01:33:46.98 ID:GdZkeqisK.net] 数学で考えよう。簡単のためにまずは二項について -min(-x,-y)=max(x,y) を証明したい。左辺は -(-x<-y?-x:-y)=-(x>y?-x:-y) …(1) =(x>y?x:y) …(2) =右辺 となる。 ※(1):不等号にマイナス1を掛ける。 ※(2):マイナスをカッコの中に作用させる。 証明終わり。三項についても同様。
353 名前:デフォルトの名無しさん (ワッチョイ ef9f-qtmS) mailto:sage [2016/05/02(月) 01:37:24.80 ID:dUwljW2j0.net] >>342 本題と関係ないかもしれないが そのMinMax::max関数の実装オカシイだろ
354 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/02(月) 01:38:07.25 ID:LofVFQLs0.net] 解説サンクス。 あら。元に戻っちゃった。 MINの条件はあってるのか。 そーりー。
355 名前:デフォルトの名無しさん (アウアウ Sa27-7WOp) mailto:sage [2016/05/02(月) 01:49:33.84 ID:87lwCP4Ca.net] >>342 数直線書いてみれば一発だろ n3 n1 n2 ────── -n2 -n1 -n3 上方向が正、──が0ラインな。 負にして最大を取れば、最小を負にした値(-n2)が返る。あとはこれを負にすれば元の値に戻る。確かにn2は最小だ。 工学の理念、一つ!『車輪の再発明はするな』 工学の理念、一つ!『使える車輪は使い倒せ』 maxができたのにminも同じように構築するのでは理念に反する maxを使ってminを表現できるならそうするべき。別々に作れば、もしかするとmaxにバグがあるかも知れない、minにバグがあるかも知れない。 しかしminをmaxで実装すれば、minは事実上書いていないのでバグは存在しない。maxにバグがあるかどうかだけ心配だけすればいい。 バグを防ぐコツはコードを書かないことだ。
356 名前:デフォルトの名無しさん (アウアウ Sa27-7WOp) mailto:sage [2016/05/02(月) 01:51:28.06 ID:87lwCP4Ca.net] 『使える車輪は(使い)回せ』に訂正するぅっ!
357 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/02(月) 01:59:45.92 ID:LofVFQLs0.net] 解説ありがと。 数学ダメなんだよね〜。Orz バグを防ぐコツは同意だ。 まぁ、車輪は使い方はマスターするべき。 そのためにも泥臭いことを否定してはいけない。(戒め)
358 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 02:12:35.32 ID:GdZkeqisK.net] 次のような等式が成り立つことが知られている。 max(x,y,z)=max(max(x,y),z)=max(x,max(y,z)). min(x,y,z)=min(min(x,y),z)=min(x,min(y,z)).
359 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 02:15:13.64 ID:GdZkeqisK.net] なお、>>342 のmin,max関数は最適化されておらず、無駄な比較を 行っているので、教育上あまり好ましくない。
360 名前:デフォルトの名無しさん (ワッチョイ 0b75-lQqR) mailto:sage [2016/05/02(月) 02:43:59.63 ID:5VxisSG80.net] >>349 >maxを使ってminを表現できるならそうするべき。別々に作れば、もしかするとmaxにバグがあるかも知れない、minにバグがあるかも知れない。 >しかしminをmaxで実装すれば、minは事実上書いていないのでバグは存在しない。maxにバグがあるかどうかだけ心配だけすればいい。 いやいや 341のminはバグってるし。minにINT_MINを渡したらどうなるか考えてみ。
361 名前:デフォルトの名無しさん (ワッチョイ ef9f-qtmS) mailto:sage [2016/05/02(月) 02:45:04.65 ID:dUwljW2j0.net] maxも思いっきりバグってるが
362 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/02(月) 02:48:14.57 ID:LofVFQLs0.net] std::max<int>({1,2,3}); を使おう。(キリッ
363 名前:デフォルトの名無しさん (ワッチョイ 0bdc-VEo+) mailto:sage [2016/05/02(月) 05:44:22.58 ID:8/8nC51l0.net] >>342 の MinMax:: に乗せてくれ(車輪の話だけに)。 >>347 >>355 max()は、引数に同じ値が2つ与えられるとダメなのね。 n1 = 2, n2 = 2, n3 = 1 といった場合。 比較演算子を > でなく >= にすればいいのかな。 (小手先で修正してまで使うとも思えないけど一応) >>354 の INT_MIN の符号反転の問題はいつも見逃すなぁ。 intが32bitもあると「億なんてデカい値は使わないし…」で 境界条件を考慮し忘れる。 おかげで俺の部屋は悪魔ハーレム状態。
364 名前:デフォルトの名無しさん (ワッチョイ ab51-JnPK) mailto:sage [2016/05/02(月) 06:18:00.27 ID:zu7MqjLX0.net] 仕様で「入力がINT_MINの場合は正しい値を返さない」とするだけでプログラムがすっきり。
365 名前:デフォルトの名無しさん (ワッチョイ 2f94-Huko) mailto:sage [2016/05/02(月) 10:03:31.77 ID:lijKCiQb0.net] 342です 皆さんありがとうございます.一応参考サイトは以下です(若干プログラムが違いますが) ttp://cpp-lang.sevendays-study.com/problem2.html
366 名前:デフォルトの名無しさん (ワッチョイ 13e7-11Ad) mailto:sage [2016/05/02(月) 10:30:56.03 ID:LofVFQLs0.net] ぶー。検索関係なかった。Orz
367 名前:デフォルトの名無しさん (ワッチョイ 3bb4-OoOA) mailto:sage [2016/05/02(月) 16:31:01.42 ID:1reykZlZ0.net] std::unordered_set の要素をイテレータで取ろうとしたら自動で const 修飾されます 多分オブジェクトの内部状態が変わることでハッシュ値が変わることを考えてのことだと思うんですが、 いまの場合ハッシュ関数を自分で定義していて、操作の前後でハッシュ値が変化しないことは (自分には)わかっています。 これをコンパイラに教えてあげるにはどうすればいいんでしょうか?
368 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/05/02(月) 16:56:44.90 ID:IsbB/noh0.net] 諦める そしてconst_castを使う
369 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 17:29:08.43 ID:V/Rz0lGL6.net] カレントディレクトリの設定が上手くいかないです。 test1の下にtest.exeとディレクトリtest2
370 名前:があるとして、 test1.exeで SetCurrentDirectly(”test2”) ofstream fout1(”test.dat”) fout1 << ”test” << endl; としても、test.datがtest2の下ではなく、test1の下に出来てしまいます。どうすればtest2の下に出来ますか? [] [ここ壊れてます]
371 名前:360 (ワッチョイ 3bb4-OoOA) mailto:sage [2016/05/02(月) 17:48:25.88 ID:1reykZlZ0.net] >>362 ありがとうございます 結局 mutable にして切り抜けました
372 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 17:50:59.68 ID:GdZkeqisK.net] >>363 "test2"は相対パスだから、現在のディレクトリを確認しろ。 また、戻り値とエラーコードもチェックしろ。
373 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 18:04:07.30 ID:V/Rz0lGL6.net] >>365 ありがとうございます。 確認してみたところ、falseが帰ってきていました。 そして、getcurrentdirectlyして表示してみたところ C とだけ表示されました。 Cドライブの直下ということですか? それだと、C:\と出そうなものですが…
374 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 18:18:14.94 ID:GdZkeqisK.net] >>366 おそらくUnicode文字列とANSI文字列の指定が間違っている。 型に関する警告が出ていないか確認せよ。
375 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 18:29:59.21 ID:GdZkeqisK.net] Unicode文字列(いわゆるワイド文字列)のリテラルは先頭にLを付ける。WCHAR型の配列またはポインタになる。 例) L"Unicode" Unicode APIは関数名の最後にWが付く。ANSI APIはAが付く。 例) GetCurrentDirectoryW Unicode文字列とANSI文字列を自動的に切り替えるにはリテラルを TEXT( )で囲む。TCHAR型の配列またはポインタになる。
376 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 18:40:56.68 ID:GdZkeqisK.net] ANSI文字列を指定すべきところにUnicode文字列を指定することはできない。逆も同様。 例えば、printfの%sにワイド文字列を指定することはできない。 警告が出るか、分かりにくい論理エラーの原因になる。
377 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 18:44:54.84 ID:V/Rz0lGL6.net] >>367 ありがとうございます。 確認してみると、確かに警告が出ていました。 なので、 SetCurrentDirectly(”test2”) の部分を SetCurrentDirectly((LPCWSTR)”test2”) としてみると警告が消えましたが、結果は変わりませんでした。
378 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 18:47:42.10 ID:GdZkeqisK.net] SetCurrentDirectoryA("test2"); SetCurrentDirectoryW(L"test2"); SetCurrentDirectory(TEXT("test2"));
379 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 18:57:39.76 ID:GdZkeqisK.net] 配列や文字列リテラルを型キャストしても、型が変わるだけで、 中身のデータレイアウトが変わる訳ではない。 文字列を柔軟に扱いたいならATLとかMFCなどの外部ライブラリを使うことになる。
380 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 19:04:58.94 ID:V/Rz0lGL6.net] >>372 ご指摘の通りで、無事に解決しました。 何度もありがとうこざいました。大変参考になりました。
381 名前:デフォルトの名無しさん (ワッチョイ a77b-1+8h) mailto:sage [2016/05/02(月) 19:07:51.78 ID:btgv3pKW0.net] >>363 test2ディレクトリをどこに作りたいのか知らないけど 絶対パスで指定しなきゃダメ 起動時のカレントディレクトリがどこになってるかについて仮定しちゃいけない
382 名前:デフォルトの名無しさん (ササクッテロ Spe7-ZWIR) mailto:sage [2016/05/02(月) 19:19:38.69 ID:eom7L+e5p.net] .dllの配置場所ですが、 通常だと.exeと同じ階層に置いておかないと呼んでくれませんよね? しかし、.exeのショートカットを作成してプロパティから作業フォルダーを指定すればそこから読んでくれるようです。 この作業フォルダーの指定をプログラム中で行う方法はありませんか? vc14で、デバックモードで作業ディレクトリを指定の設定ならあるのですが、リリースした時の設定方法が分かりませんでした。
383 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 19:21:00.96 ID:V/Rz0lGL6.net] ちなみにdllは環境変数Pathに入っていないものを指定する場合です。(配布するときなど)
384 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 19:25:12.54 ID:V/Rz0lGL6.net] >>374 test2は最初からtest1の下に用意されているものです。 絶対パスは、配布する場合などに使えないので相対パスで指定の方法を考えていました。 今は教えてもらった通りで動いていますが、動かなくこともありますか?
385 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 19:29:01.28 ID:GdZkeqisK.net] 【ディレクトリ・パス関連のAPI(テストに出るかも)】 GetCurrentDirectory SetCurrentDirectory GetModuleFileName GetWindowsDirectory GetSystemDirectory GetTempPath GetTempFileName GetFullPathName SHGetSpecialFolderLocation SHGetSpecialFolderPath SHGetPathFromIDList
386 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 19:31:57.84 ID:GdZkeqisK.net] このGetModuleFileName を使えば、読み込んだDLLのフルパスや現在実行中のEXEのフルパスが得られる。
387 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 19:41:24.27 ID:V/Rz0lGL6.net] >>379 何度もすみません。 exeの方の使い方は分かりましたが、 .dllのフルパスを取得してもどうすればいいのか分かりません。 調べると、.dllもカレントディレクトリから呼ばれる、とあったので、プログラムでsetcurrentdirectlyをしたついでに、.dllも読み込んでくれるかと新しいディレクトリの方に.dllを全部移してみたのですが、dllがないというエラーが吐かれました。
388 名前:デフォルトの名無しさん (ワッチョイ ef9f-qtmS) mailto:sage [2016/05/02(月) 19:49:22.82 ID:rwpIh2xK0.net] >>375 遅延読み込みするDLLを除いて通常の方法ではmain/WinMain関数に 制御が渡った時点でDLLのロードは終わって居るのでプログラムから制御するには かなり特殊な手段を用いることになる ⇒ だから一般的にはやらないし、無理って言う人も居る あと、スレ違いだから
389 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 19:57:48.05 ID:V/Rz0lGL6.net] >>381 ショートカット作成のプロパティから簡単に出来るので、プログラムでも簡単に出来るかと思ったのですが、難しいのですか… スレ違いなのは分からずすみませんでした。 よければ、どこのスレに行けばいいのか分かりませんので教えて貰えますでしょうか?
390 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 19:58:23.64 ID:GdZkeqisK.net] スレチなのでスレ誘導します↓ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/
391 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/02(月) 19:58:58.17 ID:3YV7E0Ft0.net] >>377 >>374 はアホだから気にしなくていい
392 名前:デフォルトの名無しさん (ガックシ 068f-ZWIR) mailto:sage [2016/05/02(月) 19:59:04.30 ID:V/Rz0lGL6.net] >>383 ありがとうございます、移動します。 お騒がせしましたどうもすみません。
393 名前:デフォルトの名無しさん (ワッチョイ a77b-1+8h) mailto:sage [2016/05/02(月) 20:31:02.13 ID:btgv3pKW0.net] >>384 別に決め打ちの絶対パスで指定しろとは言ってないからね そう解釈したならアホはお前 実行ファイルからの相対パスを指定したいならGetModuleFileNameで実行ファイルのパスを取って 目的とするファイルの絶対パスを作るのが定石
394 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/02(月) 20:59:05.00 ID:3YV7E0Ft0.net] >>386 > 起動時のカレントディレクトリがどこになってるかについて仮定しちゃいけない がバカって言われていることも理解できてないのかよ...
395 名前:デフォルトの名無しさん (ワッチョイ 2f57-Huko) mailto:sage [2016/05/02(月) 20:59:28.28 ID:B7fwjF4l0.net] コロン二つはstd::cinのように名前空間で区別するために使いますが、これはクラスで区別するときにも使うのですか? クラスtestで、void test::sample(){...}の様に、です。
396 名前:デフォルトの名無しさん (ガラプー KKb7-09nV) mailto:sage [2016/05/02(月) 21:01:18.03 ID:GdZkeqisK.net] >>388 Yes.
397 名前:デフォルトの名無しさん (ワッチョイ a77b-1+8h) mailto:sage [2016/05/02(月) 21:06:07.95 ID:btgv3pKW0.net] >>387 で?仮定していいとでも思ってるの? 「バカって言われてる」ってそんなバカなこと言ってるのはお前しか見えないけどなw
398 名前:片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV) mailto:sage [2016/05/02(月) 21:11:40.51 ID:GdZkeqisK.net] CreateProcessやショートカットの設定でexe起動時のカレント ディレクトリーを変更できることは、知っておいても損しないだろう。
399 名前:デフォルトの名無しさん (ワッチョイ 2f57-Huko) mailto:sage [2016/05/02(月) 21:15:09.99 ID:B7fwjF4l0.net] >>389 ありがとうございます
400 名前:デフォルトの名無しさん (ワッチョイ 3f56-hBSK) mailto:sage [2016/05/02(月) 21:26:05.14 ID:14Ao2YKq0.net] >>388 一応、呼び方は「スコープ解決演算子」な https://msdn.microsoft.com/ja-jp/library/b451xz31.aspx
401 名前:デフォルトの名無しさん (ワッチョイ 2f57-Huko) mailto:sage [2016/05/02(月) 21:32:28.67 ID:B7fwjF4l0.net] おお、ありがとうございます
402 名前:デフォルトの名無しさん (ワッチョイ 2742-OoOA) mailto:sage [2016/05/02(月) 21:32:59.60 ID:IfsZ2QOP0.net] このやりとりって、Windows限定なのか、それともOSを限定せずにプログラム一般での話なのか どっちなの?
403 名前:デフォルトの名無しさん (オッペケ Sre7-hBSK) mailto:sage [2016/05/02(月) 21:35:36.19 ID:zmzMdNqXr.net] Windowsとそれ以外で何か事情がかわるのだろうか
404 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/02(月) 21:35:54.15 ID:3YV7E0Ft0.net] >>390 誰も仮定してないんだが... マジでバカなの?
405 名前:デフォルトの名無しさん (ワッチョイ a77b-1+8h) mailto:sage [2016/05/02(月) 22:14:34.12 ID:btgv3pKW0.net] >>397 少なくとも質問者の>>363 は仮定してるだろ もうお前はいいよ
406 名前:デフォルトの名無しさん (ワッチョイ 2742-OoOA) mailto:sage [2016/05/02(月) 22:33:31.86 ID:IfsZ2QOP0.net] 何か知らないOS環境でもあってさ、そこでの動きが標準的な物と違っていて それを根拠に、仮定するのは誤りだと結論を出してくるとか、ありそうだし
407 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/05/02(月) 22:45:30.28 ID:IsbB/noh0.net] >質問者の>>363 は仮定してるだろ >>397 の意図は不明だが、これは言葉のすり替えだな 「誰も」とは「俺は言ってない」ぐらいの意味だろう
408 名前:デフォルトの名無しさん (ワッチョイ a77b-1+8h) mailto:sage [2016/05/02(月) 23:25:56.25 ID:btgv3pKW0.net] いやいや「誰も」=「俺は」こそ言葉のすり替えだな >>397 みたいな何を言いたいのかすら分からないイチャモンつけるような 明白なバカ・ドジ・マヌケが何考えてようがもうどうでもいいよ
409 名前:デフォルトの名無しさん (ワッチョイ cb7b-olYR) [2016/05/03(火) 00:46:50.12 ID:yoJxNR5i0.net] カレントディレクトリがどこになってるか仮定しちゃいけないってどういう事?
410 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/03(火) 06:11:23.04 ID:m0WSkRh/0.net] >>402 > カレントディレクトリがどこになってるか仮定しちゃいけないってどういう事? 絶対にダメと言うわけじゃない ただ必要もないのにカレントディレクトリがどこかにあることを仮定して作ると当然その場所にないとうまく動かないから使い辛いってこと ちなみに >>363 はカレントディレクトリの設定についての質問で「起動時の」カレントディレクトリについてはなんの仮定もおいてない
411 名前:デフォルトの名無しさん (ワッチョイ cb7b-olYR) [2016/05/03(火) 06:32:35.85 ID:yoJxNR5i0.net] それって仮定しちゃいけないとかいう話じゃなくて、カレントディレクトリがシステムによってどう設定されてるか理解すべきって話じゃないの?
412 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/03(火) 07:08:25.20 ID:m0WSkRh/0.net] >>404 何を言ってるのかさっぱりわからん カレントディレクトリなんて >>391 の言うようにショートカット等でも変更できる 一時的に特定のカレントディレクトリで起動するためにコマンドプロンプトから実行したりもできる
413 名前:デフォルトの名無しさん (ワッチョイ cb7b-olYR) [2016/05/03(火) 09:06:38.37 ID:yoJxNR5i0.net] 理解出来ないならいいですわ
414 名前:デフォルトの名無しさん (ワッチョイ 3763-hBSK) mailto:sage [2016/05/03(火) 09:44:09.25 ID:WLZfBkZE0.net] >>405 >>404 は>>403 の後半が読めていなくて「仮定」の単語に反応したようだ
415 名前:デフォルトの名無しさん (ワッチョイ cb7b-olYR) [2016/05/03(火) 09:59:16.67 ID:yoJxNR5i0.net] >>407 そりゃ質問がそうだからな、返答にそれを期待するのが当たり前
416 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/03(火) 11:14:03.25 ID:m0WSkRh/0.net] >>407 >>403 の後半は >>402 に関係しないから読み飛ばしてもらっていいよ ただ前半読んで >>404 の質問出るのが意味不明 >>405 に書いたように起動時のカレントディレクトリはどうとでも設定できるから > カレントディレクトリがシステムによってどう設定されてるか って言われても、はあ? としか返せんし、そもそも元の話は起動されたプログラムの話だし
417 名前:デフォルトの名無しさん (ワッチョイ 6f3c-1woS) [2016/05/03(火) 19:39:34.60 ID:G9XEXQGe0.net] 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中) 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)> https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネ
418 名前:クションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません 6 [] [ここ壊れてます]
419 名前:デフォルトの名無しさん (ワッチョイ cb7b-olYR) [2016/05/03(火) 20:03:21.71 ID:yoJxNR5i0.net] >>409 起動時のカレントディレクトリがどうとでも設定できるのと仮定しちゃいけないが繋がらないのよ ユーザーが作業中のディレクトリと仮定しないとrmとかlsとか基本的なコマンドすら実装出来んぞ
420 名前:デフォルトの名無しさん (ワッチョイ cfe5-6p9G) mailto:sage [2016/05/03(火) 20:15:22.49 ID:Ga2JkeKt0.net] このところずっとカレントディレクトリの話題ばかりだな。飽きた
421 名前:デフォルトの名無しさん (ワッチョイ 6f3c-hBSK) mailto:sage [2016/05/03(火) 20:34:36.80 ID:m0WSkRh/0.net] >>411 > 起動時のカレントディレクトリがどうとでも設定できるのと仮定しちゃいけないが繋がらないのよ えっ? ユーザーがどうとでも設定できるからどこかに固定的に設定してるって思っちゃダメ ってだけの話なんだが理解できないの? > ユーザーが作業中のディレクトリと仮定しないとrmとかlsとか基本的なコマンドすら実装出来んぞ はあ、そうですね...