1 名前:デフォルトの名無しさん [2017/11/04(土) 16:33:35.07 ID:NYxCuvMY.net] エスケープシーケンスやWin32APIなどの環境依存なものもOK そのような質問は必ず環境を書きましょう 半角空白やタブでのインデントはスレに貼ると無くなります コードを貼れる所 codepad.org/ https://ideone.com/ 前スレ 【初心者歓迎】C/C++室 Ver.101【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1500329247/
985 名前:デフォルトの名無しさん [2018/06/24(日) 23:08:30.10 ID:8StK2ZXu.net] >>966 もらい受けたいところだけども、意味が理解できるかどうか? あなたは意味が わかりますか? clsA() : clsA((const char* const []){"mike","tetu",nullptr}) {}; (const char* const []){"mike","tetu",nullptr} これは何を意味してるの?
986 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 23:09:16.86 ID:chBT6m1a.net] 「c++ constexpr 文字列」で検索すれば?
987 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 00:15:08.68 ID:RQXh1ivn.net] void func1(int a) { printf("%d\n", a); } void func2(int a, int b) { printf("%d,%d\n", a, b);} template<?????> class Test { public: void method(void) { (templateの引数で func1(int a) か func2(int a, in b)を呼ぶ) } private: int a; in b; }; のような事をしたいのですが、引数が1つか2つの関数をそれぞれ名前でtemplate引数にして 記述したいのですが、うまくいきません。どうすれば良いでしょうか? 例えば template < void F(int)> とすると Test<func1>() でいけるのですが、func2の場合が 表現出来ません。
988 名前:デフォルトの名無しさん [2018/06/25(月) 01:49:02.18 ID:Gwlgg6/B.net] class class1 { private: int m_a; public: class1(int a) : m_a(a) {} class1(class1 const& rhs) { m_a = rhs.m_a; } void method(void) { printf("%d\n", m_a); } }; class class2 { private: int m_a; int m_b; public: class2(int a, int b) : m_a(a), m_b(b) {} class2(class2 const& rhs) { m_a = rhs.m_a; m_b = rhs.m_b; } void method(void) { printf("%d,%d\n", m_a, m_b); } }; template<class _Myclass> class Test { private: _Myclass m_myClass; public: Test(_Myclass myClass) : m_myClass(myClass) {} void method(void) { m_myClass.method(); } }; int main() { Test<class1> x(class1(1)); Test<class2> y(class2(2, 3)); x.method(); y.method(); } 意味があるのか分からないがとりあえずコレで もしくはTest::methodを可変引数にしてprintfにその可変引数を渡すしかない まずなにがやりたいのか分からないからテキトーに書いてやったぞ
989 名前:デフォルトの名無しさん [2018/06/25(月) 03:37:15.06 ID:3f3crQyZ.net] const char *[]の初期化だけれども clsA(const char* const name[]) : m_name(name) {}; これはまあ何となく意味が解る。m_name <−−nameってことだよね。 clsA() : clsA((const char* const []){"mike","tetu",nullptr}) {}; しかしこれはどういう意味だろうか? clsA <−− (const char* const []){"mike","tetu",nullptr} ラムダ関数?かとおもったが、前半はcastだろうか? m_name <−−name clsA <−− {"mike","tetu",nullptr} この二つがセットで意味を持つんだろうな。 const char *[] の初期化が3つくらいあったらどうするんだろうね。 まるでクイズを解いてるみたいだよ。 いくらなんでも言語仕様としてやはり不味いよね。
990 名前:デフォルトの名無しさん [2018/06/25(月) 04:00:03.54 ID:3f3crQyZ.net] わかった。コンストラクタに引数がないディフォールトでは clsA <−− {"mike","tetu",nullptr} そしてm_nameは一つしかないから、m_name= {"mike","tetu",nullptr}となる。 引数を持つ場合は clsA(const char* const name[]) : m_name(name) {}; m_name <-- name; になる。 じゃあconstのメンバ変数が二つある場合はどうするんだろうか? clsA:clsA( {"xxx"}),clsA({"yyy"}) {} とは書けない。変数を明示しないといけないから、、、 clsA:m_name1( {"xxx","abc"}), m_name2({"yyy","def"}){} 必然的にとなる。 じゃあ最初から clsA:m_name1( {"xxx","abc"}){} こう書いていた方が分かりやすいし、これが成り立たないと論理破綻する。
991 名前:デフォルトの名無しさん [2018/06/25(月) 04:04:26.64 ID:3f3crQyZ.net] class clsA{ private: const char* const* m_name1; const char* const* m_name2; public: clsA() : m_name1((const char* const []){"mike","tetu",nullptr}), m_name2((const char* const []){"mike2","tetu2",nullptr}) {}; clsA(const char* const name[]) : m_name1(name) {}; void put(){ for(const char* const * p=m_name1; *p!=nullptr ;++p ) { printf(*p); } }; virtual ~clsA() {}; }; 実験したみたが、コンパイルは通った。
992 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 05:56:57.36 ID:MAmRCfEQ.net] >>964 のソースをclangでビルドしたら最初の結果が文字化けする。 環境依存で動作が変わるようなソースコードを参考にしてはいけない。
993 名前:デフォルトの名無しさん [2018/06/26(火) 09:01:37.25 ID:6tjGTw22.net] >>969 template<class ... args> class clsTest { public: void func1(int dt) {} void func1(int dt1, int dt2) {} void func2(args...) { } }; int main() { clsTest<int, int, int> a; clsTest<int, int, char *> b; a.func2(2, 3, 4); b.func2(5, 6, (char *)"test"); a.func1(2); a.func1(2, 3); return 0; }
994 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 10:37:33.14 ID:dRU/pr3A.net] c++です LNK2005 DllMain は既に vstplugmain.obj で定義されています 1>vstplugmain.obj : error LNK2005: DllMain は既に vstplugmain.obj で定義されています。 左と右が違うファイルだったら順序を入れ替えるだけでよかったのですが 両方vstplugmain.objで困ってます どのようにすれば解決できるでしょうか?
995 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 11:09:44.92 ID:9ql/FcZD.net] 自動でリンクしてるライブラリと明示的にリンカに渡
996 名前:してるパス違いの同じライブラリで衝突してんんじゃないの? 知らんけど [] [ここ壊れてます]
997 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 11:44:03.03 ID:dRU/pr3A.net] 検索してみたのですが vstplugmain.objは一つしか無いようです
998 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 12:06:53.39 ID:dRU/pr3A.net] もしかしたら関係あるのかもしれないので参考までに記述します 以下のようなエラーも同時に発生しています vstplugmain.obj : error LNK2001: 外部シンボル ""class AudioEffect * __cdecl createEffectInstance(__int64 (__cdecl*)(struct AEffect *,int,int,__int64,void *,float))" (?createEffectInstance@@YAPEAVAudioEffect@@P6A_JPEAUAEffect@@HH_JPEAXM@Z@Z)" は未解決です。 LNK2001 外部シンボル ""class AudioEffect * __cdecl createEffectInstance(__int64 (__cdecl*)(struct AEffect *,int,int,__int64,void *,float))" (?createEffectInstance@@YAPEAVAudioEffect@@P6A_JPEAUAEffect@@HH_JPEAXM@Z@Z)" は未解決です。 Dll6 source\repos\Dll6\Dll6\vstplugmain.obj 1 よろしくおねがいします
999 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 17:14:50.29 ID:hh115pnF.net] エラーログの上から順番に解決するようにしたらいい
1000 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 09:50:56.72 ID:8ZX2E7EU.net] 無事解決しました ありがとうございました
1001 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 10:22:32.55 ID:h8zo0ENm.net] >>981 そういう場合は、経緯を説明するのが、考えようとしてくれた人への礼儀。
1002 名前:デフォルトの名無しさん [2018/06/29(金) 10:53:16.69 ID:OiiVA+37.net] ロベールのC++の本の typedef の説明ですが、よく分かりません。 typedef int* IntPtr; int n = 0; const IntPtr p = &n; IntPtr const q = &n; はどちらも、 int* const p; int* const q; の意味になるそうです。 分からないのは、ロベールさんの解釈の部分です。 const int* p; → 「const の右側にあるものが const になる」 int* const q; → 「const の右側にあるものが const になる」 と解釈すればよいと説明してます。 この解釈が const IntPtr IntPtr const の場合にも通用するというのです。
1003 名前:デフォルトの名無しさん [2018/06/29(金) 10:53:56.86 ID:OiiVA+37.net] const IntPtr = const int* IntPtr const = int* const ではないのでしょうか?
1004 名前:デフォルトの名無しさん [2018/06/29(金) 10:55:12.72 ID:OiiVA+37.net] const IntPtr p = &n; IntPtr const q = &n; ↑「const の右にあるのは p や q なので、 p や q が const になるのです。」 と説明していますが、これが意味不明です。
1005 名前:デフォルトの名無しさん [2018/06/29(金) 10:56:58.22 ID:OiiVA+37.net] >>985 の論法を↓に適用すれば、 const の右にあるのは p や q なので、 p や q が const になるのです。 となってしまいますが、 p は const ではないですよね。 q は const ですが。 const int* p; int* const q;
1006 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 11:34:56.01 ID:rwm1MJ+D.net] >>983 マクロで IntPtr を int * と定義した場合は >>984 のように展開されるけど typedef はマクロじゃないので int * 型のシノニムとして IntPtr 型を作る const int と int const もどちらも const の int であるのと同じように int を IntPtr 型に置き換えて考えれば どちらも int * const と同じ意味になると思うよ
1007 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:00:29.81 ID:nFp4wdEK.net] i.csvには1行に名前と整数値で点数3つ書かれているのが10行あり、読み込んで点数の和を加えて表示しようとしましたが和が出てきません。また¥nを打っているのに改行されないです。理由を教えてください。配列にしたのはこの後にも操作をするためです。 #include <stdio.h> #include <stdlib.h> int main(void) { const char ifname[] ="i.csv"; int a,b,c; char name[30][100]; int sum[30]; int i; FILE *ifp; ifp=fopen(ifname,"r"); /*読み込み込みモードでopen*/ if(ifp==NULL){ printf("ファイルが開けない"); exit(1); } for(i=0;i<=29;i++){ if(fscanf(ifp,"%s%d%d%d",name[i],&a,&b,&c)==EOF) break; else sum[i]=a+b+c; printf("%s %d %d %d %d\n",name[i],a,b,c,sum[i]); } fclose(ifp); }
1008 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:06:09.83 ID:nFp4wdEK.net] 10行ではなく30行でした、すみません
1009 名前:デフォルトの名無しさん [2018/06/29(金) 12:10:17.92 ID:OiiVA+37.net] >>987 ありがとうございました。
1010 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:40:26.79 ID:nFp4wdEK.net] 988ですが自力で解決出来たので大丈夫です
1011 名前:デフォルトの名無しさん [2018/06/29(金) 14:45:38.42 ID:+YHimQiw.net] Windows10で、デスクトップのアイコンと壁紙の間のレイヤーに描画したいです。 どのように設定すればいいでしょうか? VisualStudio2017/C++
1012 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 14:50:24.25 ID:+YHimQiw.net] 何がしたいかというと、カレンダーを表示させたいです。
1013 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 14:52:35.06 ID:+YHimQiw.net] 小出しですみません。カレンダー機能はMFCで作成済みです。
1014 名前:デフォルトの名無しさん [2018/06/29(金) 22:49:34.96 ID:DjTQOr6S.net] 無理でしょうか?
1015 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 23:03:37.60 ID:DjTQOr6S.net] C#ですが、方法が見つかったので自力でやってみます。 https://www.codeproject.com/Articles/856020/Draw-Behind-Desktop-Icons-in-Windows-plus
1016 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 01:14:10.80 ID:UA/DrxK6.net] t
1017 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 01:14:30.62 ID:UA/DrxK6.net] v
1018 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 01:14:47.85 ID:UA/DrxK6.net] g
1019 名前:小倉優子 mailto:sage [2018/07/01(日) 01:15:06.26 ID:UA/DrxK6.net] ∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1020 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 238日 8時間 41分 31秒
1021 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています