[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/14 14:02 / Filesize : 217 KB / Number-of Response : 865
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part71



1 名前:デフォルトの名無しさん [2009/07/18(土) 02:54:58 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part70
pc12.2ch.net/test/read.cgi/tech/1244942050/l50

152 名前:デフォルトの名無しさん [2009/07/29(水) 08:51:51 ]
struct Point
{
int x;
int y;

Point(int x, int y) : x(x), y(y) {}
};

struct Size
{
int width;
int height;
};

Size Hoge()
{
Point point;
...
return *reinterpret_cast<Size *>(&point); …(1)
return *reinterpret_cast<Size *>(Point(0, 0)); …(2)
}

例が良くないかも知れないのですが、
この書き方ってC++におけるインスタンスの
生存期間的に問題はあるでしょうか?

153 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:10:29 ]
>>152
(1)はダメ
Hoge()を抜けた途端にpointのインスタンスが消滅してしまう

154 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:12:08 ]
あほくさ

155 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:29:33 ]
>>152
(1) はコピー返しなので問題ない
(2) は生存期間以前にポインタでないものをポインタにキャストしてるから滅茶苦茶なことが起きるだろう


156 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:00:03 ]
>>126
いやいや、一時オブジェクトを束縛して寿命を延ばす効果があるのはconst参照だけだろ。

157 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:44:20 ]
戻り値がconstである必要は無いというお話

158 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:19:06 ]
throwはreturnやbreakと同じようにスコープを抜ける
つまり自動変数のデストラクタ呼び出しが保障されてるんでしょうか?

159 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:58:37 ]
されます。例外が送出された時点でローカルスコープは「突然」終了し、
可能な限りスタックを巻き戻すことになってます。
なので、(一般に)デバッグ用途には使えません。
…メモリダンプを見ても変数の中身が消えちゃってるので。

160 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:15:28 ]
前にbcc5.5でboost::is_base_ofを使おうとしてた者です。あの後いろいろやってたらできました。(多分)
他にも使いたい人はいると思うんで一応載せときます。

struct yes_type{char t[100];};
struct no_type{char u[10];};

template<typename T,typename U>
struct test_helper{

  template<typename S>
  static no_type test(void const volatile * ,S );
  static yes_type test(T const volatile * const,int );
};

template<typename T,typename U>
class is_base_of{
  struct pointer_type{
    operator U const volatile *();
  };
  enum{
    delived = sizeof( test_helper<T,U>::test(pointer_type(),0) )
  };
public:
  enum{
    value = delived == sizeof(yes_type),
  };
};

使い方は
is_base_of< Hoge,Piyo >::value
とし、後のクラスが前のクラスの派生クラスの場合は1をそうでない場合は0を返します。
長文失礼しました。



161 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:29:38 ]
あー、これだと両方同じ型を指定した時は必ず成功してしまいますね…。
型の比較なんてないですよね?どうしよう…

162 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:42:04 ]
bcc5.5なんて糞コンパイラを窓から投げ捨てろ

163 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:48:00 ]
VCの複雑さが無くなれば捨ててもいいけど・・・

164 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:49:51 ]
コマンドラインで単なるC++コンパイラとして使うときに、
VCが特に複雑と言うほどBCCと何か違うことってあるか?

165 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:03:49 ]
さっきのis_base_ofですが、value = ...の条件式に以下を加えてください。
!is_void<T>::value && is_class<U>::value && type_equal == sizeof(no_type) &&
is_voidやis_classや自分で作るかなんかしてください。

次にtest_helperに以下の関数を追加
static yes_type type_equal(T*);
template<typename S>
static no_type type_equal(S*);

最後にis_base_ofの一個目のenumに以下を追加
type_equal = sizeof( test_helper<T,U>::type_equal((U*)NULL) ),

これで、抜けはありそうですが、とりあえず判定はできると思います。

166 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 05:36:55 ]
>>158
例外がmainでcatchされずに飛び出るとterminateが呼ばれて
破棄処理が実行されない可能性がある

167 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 15:28:35 ]
お勧めのC++用リファクタリングツールを教えてください。


168 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:23:19 ]
メモ帳

169 名前:デフォルトの名無しさん [2009/08/01(土) 00:05:34 ]
mapとかsetをデフォルト引数にする場合ってどの様に書けば良いでしょうか?
下記のように、vectorっぽくやりたいのですが。

void func( set<int> s = set<int>(0) )
{
 if( s.size() == 0 ){ ... }
 else{ ... }
}

int main()
{
 set<int> s; s.insert(100);

 func( s );
 func( );
}

170 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:09:03 ]
>>169
setやmapには、vectorのような要素数を指定するコンストラクタがないから、
単にデフォルトコンストラクタで初期化すればいい。
void func( set<int> s = set<int>() )




171 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:19:28 ]
質問なんですが、
#include<stdio.h>
main()
{int suuji[10],i,x,s,n;
float r;
i=0;
s=0;
while(x!=0){
if(i==50);
printf("数字=");
scanf("%d",&x);
suuji[i]=x;
n=i;
i=i+1;
s=s+y;
}
r=s/n;
printf("平均=%d\n",&r);
}
の形を使って数字を幾つか入れてその平均点をfloatを使った状態でだしたいのですが数字が何も出てきません。
上のプログラムの修正をよろしくお願いします。

172 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:38:18 ]
r=(float)s/n;
printf("平均=%f\n",&r);
あたりでうごく?

173 名前:169 mailto:sage [2009/08/01(土) 01:25:54 ]
>>170
ありがとうございます。m(_ _)m

174 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:26:36 ]
>>172 r=(float)s/n;
を習ってないので使ってはいけないんですよ…
なんででないのかわからない…
%d→%fは直します。ありがとうございます!

175 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:41:41 ]
ならこう。
#include<stdio.h>
main()
{
  float suuji[10];
  float x, s, r;
  int i, n;
  i = 0;
  s = 0;
  while(x != 0) {
    if (i == 10) break;
    printf("数字=");
    scanf("%f", &x);
    suuji[i] = x;
    n = i;
    i = i + 1;
    s = s + y;
  }
  r = s / n;
  printf("平均=%f\n", r);
}


176 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:50:14 ]
よくみたらx初期化してないし、sに加算してないし
そもそもC++のプログラムじゃないし
レスした自分が恥ずかしい
s+=x;な

177 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:55:47 ]
宿題スレでやれよ

178 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:56:32 ]
まあC++コンパイラで通るからいいかなと思った。今は反省している。

179 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:57:53 ]
>>177
そこはお客に丸投げしていただいたありがたい課題を解いて楽しむという反教育な場ですから。

180 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 04:01:34 ]
>>177 すいません…
>>178 C++じゃなかったんですか!自分はずっとC++と思い込んでました。
ありがとうございます。




181 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 04:46:33 ]
>>180
なんていうか、先が思いやられるな。未来のこの人の先輩がんばってください。

182 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 11:53:51 ]
>>180
いや、間違いなくC++だよ
Cコンパイラでも通るかもしれないというだけで

183 名前:デフォルトの名無しさん [2009/08/02(日) 01:21:46 ]
コンストラクタで例外投げてもいいですか?

184 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:22:50 ]
shared_ptrとかauto_ptrとかの類をきちんと使っていれば、全然問題ないですよ。

185 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:22:54 ]
いいですよ。

186 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:24:40 ]
デストラクタで例外投げてもいいですか?

187 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:27:23 ]
恐いお兄さん達にリンチされるのでやめた方がいいです

188 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:28:37 ]
わかりました やめておきますね

189 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:33:52 ]
                       __
    |                 /   /     
 __|__              .__/__
 |   |   |             . |   |    |
 |   |   |   ー――――   ..|   |    | 
  ̄ ̄| ̄ ̄              | ̄ ̄ ̄ ̄        ∧ ∧
    |                 \____ノ      / V ヽ
                                 /┏╋┓ \    
                                /  ┗╋┛  \ < 2chでせいぜいほざいてろ。フフン
    (.`ヽ(`> 、                    /_______ \
     `'<`ゝr'フ\                 +.  彡 ⌒   ⌒ ミ;;;!
  ⊂コ二Lフ^´  ノ, /⌒)                , +ゞi" ̄ フ‐! ̄~~|-ゞ+
  ⊂l二L7_ / -ゝ-')´                .+ ヾi `ー‐'、 ,ゝ--、' 〉;r'
       \_  、__,.イ\           +     `,|  / "ii" ヽ |ノ 
        (T__ノ   Tヽ        , -r'⌒! ̄ `":::7't ト‐=‐ァ ./
         ヽ¬.   / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、ヽ `ー‐'",/ 、
          \l__,./       i l.ヽ! |   .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、
  ___________________________  ___
 |  |  |  |  |  |  |  |  |  |  |  |  |  ||  |
 |中|中|中|中|中|中|中|中|中|中|中|中|中||中|

190 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:14:40 ]
>>186
デストラクタ内でキャッチするならいいよ



191 名前:デフォルトの名無しさん [2009/08/03(月) 07:57:09 ]
ヤフーメッセンジャーのチャットのログを記録したいと思っています。
ブラウザのチャットのログの取得はわかるのですが、メッセンジャーなどのアプリからどのようにしてログを取得できるものなのでしょうか?
サイトを探しましたが、どのサイトもHTMLソースの取得方法しか書いてありませんでした。

どうか教えてください。

192 名前:191 [2009/08/03(月) 08:19:38 ]
libyahoo2というものがありまして自分で調べます。
ご迷惑おかけしました。

193 名前:デフォルトの名無しさん [2009/08/03(月) 18:24:02 ]
教えてください.
変数sに振幅値を入れておいて,
サンプリング周波数fでsを再生したいのですが
以下のプログラムで再生することができません….

よろしくお願いします.

#include <iostream>
#include<windows.h>
#include <math.h>
#pragma comment(lib,"winmm")

#define FILENAME "white-3dB.WAV"
using namespace std;

int test(){
int i;
int f=1000;
double s[48000];
for(i=1;i<48000;i++){
s[i] = sin(2*3.14*f*(i/48000));
}

bool PlaySound (s,f,SND_MEMORY | SND_LOOP | SND_ASYNC);

return 0;
}

194 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:38:07 ]
>>193
PlaySoundの前のboolは何?
それと、PlaySoundにはちゃんと.wavファイルの形をしたデータを与えてやらないとだめだ
波形だけ与えても鳴らない
あと、fって何さ、そこはHMODULEを渡すところでは?
最後に、スレ違い
Win32APIの質問はWin32APIスレへどうぞ

195 名前:デフォルトの名無しさん [2009/08/04(火) 08:52:09 ]
static const int MAP_X = 64;


class A
{
int[ MAP_X ];
}


以上が定数式エラー出る
defineではエラーでない。
C++風にconst使ってみたんだが配列確保には使えない認識でおk?

196 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:55:01 ]
変数名が無え…。

197 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 10:23:25 ]
>>195
ちゃんと書けば、ちゃんと使える。

そうそう、古いコンパイラでは使えないかも知れない。

198 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:12:34 ]
それが最新のVC2008EEなんだな
無料だから制限つけてるのか

199 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:15:31 ]
>>195
実際のコードとコンパイルエラーを「そのまま」貼り付けてみて。

200 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:26:31 ]
原因がわかりました

×static const float MAP_X = 64;
○static const int  MAP_X = 64;

floatにしてたのが原因でした
intに変更したら成功。





201 名前:デフォルトの名無しさん [2009/08/04(火) 11:38:22 ]
アホか

202 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:39:20 ]
static const intしかclass内での定数は定義できないと
規格票に書いてある

規格票はintではなく整数と書いてあるが

203 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 12:19:41 ]
>>202
なら「static const 整数しか〜と規格票に書いてある」って最初っから言えよ。

どうせそんな書き方もしてないんだろうけどな。

204 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 14:52:11 ]
最初からもなにも
>>195
みたいな不完全で実際のものと違うコード提示されたところで
的確な指摘なんて出来るわけないよな

205 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:16:36 ]
enumで妥協

206 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:21:21 ]
このあたり、いいかげんなんとかして

207 名前:デフォルトの名無しさん [2009/08/04(火) 20:39:31 ]
PODデータでの値渡しとconst参照渡しの
一般的な速度の分岐点は何バイトくらい?


208 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:44:17 ]
環境も書かずに何聞いてんだ

209 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:06:47 ]
>>203
エラーの出る最低限のサイズのコードを上げろ

210 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:13:00 ]
>>207
エスパーして代表的な環境について述べます。
Linux + gccはどちらの場合も最高速を叩き出します。
Windows + vcはどちらも低速でした。
つまり、プログラムでチマチマ最適化を図るよりLinuxを導入するほうが
良いと思われます。



211 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:03:58 ]
x86なら特に指定がなければVCもgccも同じl呼び出し規約を
使うのだからそんな速度の違いが出るわけない。

212 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:20:54 ]
レジストリにのってるかどうか調べればいいんじゃねぇの

213 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:31:35 ]
sjis→utf8の変換処理を自作したいのですが、
サンプルになるようなサイトてありますか?
CとかVC++はみかけるんですがC++は見つからなくて…
環境はlinux+gccです

214 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:38:47 ]
>>213
お前がほしいのはサンプルじゃなくてコピペ元だろ

たぶんCのやつそのまま使えるから問題なし

215 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:42:54 ]
ああ、レジスタか。
何言い出してんのかと思った

216 名前:212 mailto:sage [2009/08/04(火) 23:46:41 ]
>>215
ふっ
素で間違えたぜ

ごめんなさい

217 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:56:38 ]
Releaseコンパイル後のexeファイルにクラス名とかがアスキーで残るんですけど(typeid用?)
これを無くしたい場合はどうすればいいとですか…?



218 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:01:25 ]
邪道な方法ではUPXを使うとか?

219 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:14:23 ]
邪道臭いけど、名前丸見えではないようですし(zipのヘッダが見えた気はするけど・・・)
これでも大丈夫そうです。ありがとうございました。

220 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:39:21 ]
>>207
boost::call_traits あたりを見ると参考になるかもしれない。



221 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 08:11:38 ]
>>217
コンパイルオプションの /GR を取ればいいってことかな?
VS2005 だと、プロジェクトのプロパティの 「ランタイム型情報を有効にする」 → 「いいえ」

typeid の他に dynamic_cast がつかえなくなるっぽい。
そのあたりはややこしい話になるので割愛。

222 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 11:49:00 ]
>>212
なんの疑問もなく読んでしまった。
だめだ今日は。。。

223 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:17:49 ]
localeをjapaneseにするとlexical_castで整数を文字列に変換したときに
3桁ごとにコンマがついてしまうのですが、これを防止するにはどうしたら
よいのでしょうか?

224 名前:デフォルトの名無しさん [2009/08/05(水) 15:21:44 ]
c++でネットワーク上のファイル(天気予報XMLファイル)を取得したいのですが、
方法がわかりません。
ググってみるとVC++ではできるようなのですが、
Linux + gcc環境ですので参考になりません。
最悪 system() + wgetコマンド という手がありますが、
もっとスマートな方法(ライブラリとか)があったら教えて下さい。

225 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:24:05 ]
>>223
localeを"C"に戻す
いちいち面倒ならLC_NUMERICだけjapaneseに変えないでおく

226 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:41:08 ]
>>224
>最悪 system() + wgetコマンド という手がありますが、
の方がスマートだよ.


227 名前:デフォルトの名無しさん [2009/08/06(木) 01:36:46 ]
Boost.Asioを使ってゴリゴリ書くとか。

228 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:59:42 ]
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>

class A :public boost::enable_shared_from_this< A >
{
 public:
  A(){ /*shared_from_this();*/ }
  void F(){shared_from_this(); }
};

int main()
{
boost::shared_ptr< A > a( new A() );
a->F();
return 0;
}

c-torで、shared_from_this()すると例外が飛ぶんだけど、何で?

229 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 07:20:09 ]
>>228
まだ生成が済んでないオブジェクトへの shared_ptr は存在しない、と考えれば
わりと自然な気がする。

仮にそこで shared_ptr が得られたとして、その後に例外が発生してコンストラクタが
中断したらどうなるの?とか。

230 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 07:31:35 ]
>>228
コンストラクタの中では
 A a;
した状態と同じ、ってのもあるな。


www.boost.org/libs/smart_ptr/enable_shared_from_this.html
仕様を確認すると、事前条件 "Requires" に以下の記述がある。
> There must exist at least one shared_ptr instance p that owns t



231 名前:デフォルトの名無しさん [2009/08/06(木) 13:08:19 ]
「このクラスを継承してサブクラスを作ることはない」っていうクラスを記述するとき、デストラクタにvirtual付けますか?
自分は「このクラスを継承しちゃダメ」という意思表示の意味でvirtual付けてないんだけど、
そういうやり方って一般的なのかな?
一応どっかでそういう意見を見て、ふーんって思ってやってたことなんだけど、正しいことなのか今になって不安になってきた。


232 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:09:29 ]
コンストラクタをprivateに封じて代わりにstaticファクトリを提供すれば誰も継承できないクラスの完成

233 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:11:42 ]
>>231
付けない。
継承される予定のクラスでも、アップキャストして使う予定のない物は、非virtualのprotectedデストラクタにする。

ここから先は個人的な好みなので参考程度に聞いて欲しいが、
「データメンバを持たない仮想関数のみで構成されたクラス」しか継承する事は考えない。
データメンバを持つクラスを継承したいと思った時は、コンポジションにする。

234 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:11:55 ]
普通は書かないかな

つーか継承をコンパイルエラーにする記述とか無いもんかな
インターフェイスとファクトリだけ提供して実装は隠す、位しか実装の継承を禁止する方法が思い浮かばない

235 名前:デフォルトの名無しさん [2009/08/06(木) 14:32:23 ]
final宣言ほしいよね。

236 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:34:41 ]
finalって0xで入るんじゃなかったかな

237 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:46:36 ]
>>231
付けない。例えばstring(basic_string<char>)なんかも継承を前提としていので
仮想デストラクタではなかったと思う。

238 名前:237 mailto:sage [2009/08/06(木) 14:47:23 ]
>>237
継承を前提としていので×
継承を前提としていないので○

239 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:13:51 ]
boostのvaultとかsandboxにnon derivableとかいうのがあったと思う

240 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 18:01:01 ]
[[final]]



241 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 21:35:36 ]
何度見てもキモいシンタックスだ。

242 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 21:51:58 ]
#define final [[final]]

ってするだけだろ。

243 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 03:46:33 ]
いいかげん define を捨てたい俺には、
それはもっと悪い。

244 名前:デフォルトの名無しさん [2009/08/07(金) 09:12:02 ]
基本的にはC++に関することではなく、Windowsプログラミングに関することですが、
開発環境がC++のため、質問させていただきます。

例えばIE7のようなWebブラウザがあるとします。
そのWebブラウザと連携させるようなツールを使うにはどうすればいいのでしょうか?

具体的には毎回同じ文字でログイン名などを入力するのが面倒なときに、自動で入力して
そのあとにログインボタンをクリックし、勝手にログインしてくれるようなツールを作成したいと思ってます。

一部ではAmazonの激安祭りなどでスクリプトとか呼ばれているものです。
使用用途はそういったものではなく、単純にプログラムの勉強としてそういったものを作る方法が
勉強したいだけです。(これは本当です。)

わかる方がもしいらっしゃれば回答よろしくお願いいたします。

245 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:38:50 ]
じゃ俺は開発環境がC++なんで、RPGの作り方教えてください

246 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:39:36 ]
ついでに開発環境がC++なんで、エロゲの作り方教えてください

247 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:44:38 ]
>>244
鼬害。WebProg板へ。

>>245
鼬害。ゲ製板へ。

>>246
鼬害。Pinkのどっかへ。

248 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:51:38 ]
Pinkのどっか行ってきます

249 名前:272 mailto:sage [2009/08/07(金) 11:29:26 ]
どうしても参照を付け替えたいのですが、何か良いアイディアはないでしょうか?
int a = 1;
int b = 2;
int& r;
のときに動的にrをaかbを指すように付け替えたいです。
無理は承知でお願いします。

250 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 11:35:05 ]
>>249
int& r = boolean ? a : b;
ではだめかいな?



251 名前:250 mailto:sage [2009/08/07(金) 11:36:36 ]
後は
int * p;
if(xxx)
{p = &a;}
else
{p = &b;}
int& r = *p;

252 名前:272 mailto:sage [2009/08/07(金) 11:42:15 ]
>>251
その方法でいけました! まさかこんな方法があろうとは。
本当に有難うございました。
一回途中にポインターをかませば良かったんですね。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<217KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef