[過去ログ] 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (996レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(3): デフォルトの名無しさん [] 2017/11/04(土) 16:33:35 ID:NYxCuvMY(1) AAS
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
外部リンク:codepad.org
外部リンク:ideone.com

前スレ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
2chスレ:tech
972: デフォルトの名無しさん [] 2018/06/25(月) 04:00:03 ID:3f3crQyZ(2/3) AAS
わかった。コンストラクタに引数がないディフォールトでは
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"}){}
こう書いていた方が分かりやすいし、これが成り立たないと論理破綻する。
973: デフォルトの名無しさん [] 2018/06/25(月) 04:04:26 ID:3f3crQyZ(3/3) AAS
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() {};
};
実験したみたが、コンパイルは通った。
974: デフォルトの名無しさん [sage] 2018/06/25(月) 05:56:57 ID:MAmRCfEQ(1) AAS
>>964
964(2): デフォルトの名無しさん [sage] 2018/06/24(日) 19:43:42 ID:G0tizpK6(1) AAS
勘違いしてたらすまないけど↓みたいな事がしたいの?
外部リンク:ideone.com
のソースをclangでビルドしたら最初の結果が文字化けする。
環境依存で動作が変わるようなソースコードを参考にしてはいけない。
975: デフォルトの名無しさん [] 2018/06/26(火) 09:01:37 ID:6tjGTw22(1) AAS
>>969
969(1): デフォルトの名無しさん [sage] 2018/06/25(月) 00:15:08 ID:RQXh1ivn(1) AAS
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の場合が
表現出来ません。
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;
}
976: デフォルトの名無しさん [sage] 2018/06/28(木) 10:37:33 ID:dRU/pr3A(1/3) AAS
c++です
LNK2005 DllMain は既に vstplugmain.obj で定義されています
1>vstplugmain.obj : error LNK2005: DllMain は既に vstplugmain.obj で定義されています。

左と右が違うファイルだったら順序を入れ替えるだけでよかったのですが
両方vstplugmain.objで困ってます
どのようにすれば解決できるでしょうか?
977: デフォルトの名無しさん [sage] 2018/06/28(木) 11:09:44 ID:9ql/FcZD(1) AAS
自動でリンクしてるライブラリと明示的にリンカに渡してるパス違いの同じライブラリで衝突してんんじゃないの?
知らんけど
978: デフォルトの名無しさん [sage] 2018/06/28(木) 11:44:03 ID:dRU/pr3A(2/3) AAS
検索してみたのですが
vstplugmain.objは一つしか無いようです
979: デフォルトの名無しさん [sage] 2018/06/28(木) 12:06:53 ID:dRU/pr3A(3/3) AAS
もしかしたら関係あるのかもしれないので参考までに記述します
以下のようなエラーも同時に発生しています

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

よろしくおねがいします
980: デフォルトの名無しさん [sage] 2018/06/28(木) 17:14:50 ID:hh115pnF(1) AAS
エラーログの上から順番に解決するようにしたらいい
981
(1): デフォルトの名無しさん [sage] 2018/06/29(金) 09:50:56 ID:8ZX2E7EU(1) AAS
無事解決しました
ありがとうございました
982: デフォルトの名無しさん [sage] 2018/06/29(金) 10:22:32 ID:h8zo0ENm(1) AAS
>>981
そういう場合は、経緯を説明するのが、考えようとしてくれた人への礼儀。
983
(1): デフォルトの名無しさん [] 2018/06/29(金) 10:53:16 ID:OiiVA+37(1/5) AAS
ロベールの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

の場合にも通用するというのです。
984
(1): デフォルトの名無しさん [] 2018/06/29(金) 10:53:56 ID:OiiVA+37(2/5) AAS
const IntPtr = const int*
IntPtr const = int* const

ではないのでしょうか?
985
(1): デフォルトの名無しさん [] 2018/06/29(金) 10:55:12 ID:OiiVA+37(3/5) AAS
const IntPtr p = &n;
IntPtr const q = &n;

↑「const の右にあるのは p や q なので、 p や q が const になるのです。」

と説明していますが、これが意味不明です。
986: デフォルトの名無しさん [] 2018/06/29(金) 10:56:58 ID:OiiVA+37(4/5) AAS
>>985
の論法を↓に適用すれば、

const の右にあるのは p や q なので、 p や q が const になるのです。

となってしまいますが、 p は const ではないですよね。
q は const ですが。

const int* p;
int* const q;
987
(1): デフォルトの名無しさん [sage] 2018/06/29(金) 11:34:56 ID:rwm1MJ+D(1) AAS
>>983
マクロで IntPtr を int * と定義した場合は >>984 のように展開されるけど
typedef はマクロじゃないので int * 型のシノニムとして IntPtr 型を作る
const int と int const もどちらも const の int であるのと同じように
int を IntPtr 型に置き換えて考えれば どちらも int * const と同じ意味になると思うよ
988: デフォルトの名無しさん [sage] 2018/06/29(金) 12:00:29 ID:nFp4wdEK(1/3) AAS
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);
}
989: デフォルトの名無しさん [sage] 2018/06/29(金) 12:06:09 ID:nFp4wdEK(2/3) AAS
10行ではなく30行でした、すみません
990: デフォルトの名無しさん [] 2018/06/29(金) 12:10:17 ID:OiiVA+37(5/5) AAS
>>987
ありがとうございました。
991: デフォルトの名無しさん [sage] 2018/06/29(金) 12:40:26 ID:nFp4wdEK(3/3) AAS
988ですが自力で解決出来たので大丈夫です
992: デフォルトの名無しさん [] 2018/06/29(金) 14:45:38 ID:+YHimQiw(1/3) AAS
Windows10で、デスクトップのアイコンと壁紙の間のレイヤーに描画したいです。
どのように設定すればいいでしょうか?
VisualStudio2017/C++
993: デフォルトの名無しさん [sage] 2018/06/29(金) 14:50:24 ID:+YHimQiw(2/3) AAS
何がしたいかというと、カレンダーを表示させたいです。
994: デフォルトの名無しさん [sage] 2018/06/29(金) 14:52:35 ID:+YHimQiw(3/3) AAS
小出しですみません。カレンダー機能はMFCで作成済みです。
995
(1): デフォルトの名無しさん [] 2018/06/29(金) 22:49:34 ID:DjTQOr6S(1/2) AAS
無理でしょうか?
996: デフォルトの名無しさん [sage] 2018/06/29(金) 23:03:37 ID:DjTQOr6S(2/2) AAS
C#ですが、方法が見つかったので自力でやってみます。
外部リンク:www.codeproject.com
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.135s*