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


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

【初心者歓迎】C/C++室 Ver.59【環境依存OK】



1 名前:デフォルトの名無しさん [2008/09/06(土) 22:45:12 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.58【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1218023777/

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か に置換しておくことをお勧めします。

384 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 18:47:45 ]
うちのパソコンだと、AUXを名前に含めても、エラーが出ずに
エクスプローラーで書き換えられます。 問題出ますか?

385 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:04:12 ]
一意的な絶対パスに変換する方法教えてください。 
下のpはパスとして正常なんですけど・・・
これを変換する関数は無いですか?

char p[]="C:\\hoge_hoge\\..\\windows\\Notepad.exe";
system(p); //パスが有効か?
char q[300];

GetLongPathName(p, q, 300);
wcout<<p<<"\n->\n";
wcout<<q<<endl;


386 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:20:50 ]
自己解決しました

char p[]="C:\\////\\hoge_hoge\\..\\windows\\Notepad.exe";
char q[300];
GetFullPathName(p, 300, q, NULL);
printf("%s\n", q);


387 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:34:56 ]
すみません。 wchar_t型配列に、世界各国語と英字の大文字・小文字が入っているとき
大文字を小文字に変換するにはどうしたら良いでしょうか?

388 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 20:47:41 ]
towlower

389 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:00:05 ]
すみません。このようにしたいんです。

中国語・・・ABCDF・・・中国語 
→中国語・・・abcde・・・中国語

ロシア語・・・FUNCTION・・・ロシア語
→ロシア語・・・function・・・ロシア語

390 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:02:36 ]
何語でも出来ますか??


towlower() の動作は、現在のロケールの LC_CTYPE カテゴリに依存する。

この関数を Unicode 文字に対して使うのはあまり適切でない。なぜなら、
Unicode には大文字(upper case)・小文字(lower case)・タイトル文字(title
case) という 3 つの "case" が含まれているからである。
manpages.ubuntu.com/manpages/feisty/ja/man3/towlower.html

391 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:36:50 ]
こんな感じ?

wchar_t
us_tolower(wchar_t c)
{
if(c<='A' && c>='Z')
{
c=c-'A'+'a';
}
return c;
}



392 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:45:26 ]
unicodeて、どのOS、コンパイラでもアルファベットはASCIIと同じですか?



393 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:47:34 ]
何?

394 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:48:44 ]
>>391
なんか怪しいけど、せめてLを・・・

395 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:50:59 ]
たまにはEBCDICも思い出してね

396 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:52:47 ]
コンパイルした環境に依存しないで、たとえば日本のVC++でコンパイルして、
ロシアや中国でも小文字になりますか?

397 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:55:51 ]
BCCでコンパイル中に任意のメッセージ書き出せるマクロみたいのってないよね?

398 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 21:59:15 ]
GetUserDefaultLCID

LCMapString
でやってみます。

399 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:19:19 ]
intel c++はisostream入っていませんか?

400 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:38:34 ]
日本語体験版だと入ってないのかな?
なんかヘッダが足らないみたいです
インストールの失敗?
英語体験版をいれて日本語で上書きしたらいいかな?

401 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:50:42 ]
わかりました。VC++2008との統合が失敗してたのですがそれが原因みたいです。

wikiより。

実行に必要なライブラリやリンカなどは付属していないため、他のコンパイラの環境に寄生した形で実行される。
WindowsではMicrosoft Visual Studioが、LinuxではGCCが必要である。

402 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 02:52:46 ]
isostream?



403 名前:デフォルトの名無しさん [2008/09/20(土) 17:52:54 ]
あるところからC++のソースコードをダウンロードして、
そのフォルダの中のsample.vcprojというのを実行すると、
VisualStadioが起動しました。
サンプルコードのはずなので、F5を押して実行すると、

「シンボル情報がありません:firefox.exeのデバッグ情報が見つからないか、
または一致しません。シンボルが読み込まれていません」

というウィンドウが表示されました。どうすればよいでしょうか?

404 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 17:57:33 ]
あるところって、どこ?

405 名前:403 [2008/09/20(土) 18:10:55 ]
404さん

www.cs.umd.edu/~mount/ANN/
からann_1.1.1.zipをダウンロードして、
MS_Win32→sample→sample.vcprojを実行しました。

406 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 18:29:16 ]
プロジェクトの構成がReleaseになってるだけじゃないの?
Ctrl+F5とかで実行したら?

407 名前:403 [2008/09/20(土) 18:36:34 ]
406さん

プロジェクトの構成はDebugでした。
Ctrl+F5とすると、Firefoxが新しく起動しました。

プロジェクトの構成をReleaseにしてみて、
F5を押すと「デバッグセッションの実行可能ファイル」というウィンドウが出てきて、
「実行可能ファイル名」を選ばされました。
よく分からず、既定のWebブラウザを選んで実行しました。
それを過去にもやったため、Firefoxが動いているんだと思います。

「デバッグセッションの実行可能ファイル名」を何にすればよかったのでしょうか?

408 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 19:08:56 ]
1回かたの消しちまって、めんどくさくなった。

>>407
落としたけど、スタートアッププロジェクトがdllになってない?
samleをスタートアッププロジェクトに設定しないと、VSからは起動できない。

あと、sampleをビルドして出来るのは、コマンドラインアプリだったので、
F5実行だと、DOS窓が一瞬出てすぐ消えた。

デバッグセッションの実行可能ファイル名で解決したいなら、
「展開したフォルダ\ann_1.1.1\MS_Win32\bin\ann_sample.exe」
じゃないかね

409 名前:403 [2008/09/20(土) 19:54:14 ]
408さん

F5実行で、DOS窓が一瞬出てすぐ消えた、ところまではできました。
「引数無しで実行」したときはエラーになるようなので、
コマンド引数に「-df data.pts -qf query.pts」と設定して
実行してみました。すると「cannot open data file」と表示されました。
すこし前進したようです。
あとはどうやってファイルを開くのか試行錯誤しているところです。

query.ptsというのは点のデータだと思います。
Test dataフォルダには「data_pts」がありますがちょっと違う。
これを読めばいいのか、または別のところにデータがあるのか。。。


410 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:12:01 ]
test1-data.pts,test1-query.pts,test2-data.pts,test2-query.pts
ってのがあるみたいだけど

411 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:13:07 ]
俺が落としたヤツだと「ann_1.1.1\test\」の下に
test1-data.ptsとtest1-query.ptsってのが転がってたんで、
それを「ann_1.1.1\MS_Win32\bin\」の下にコピってからDOS窓で

ann_sample.exe -df test1-data.pts -qf test1-query.pts

って打ったら動いたけど。

VCからだとカレントフォルダ分かりづらいから
別にDOS窓起動した方が良いんじゃない?
引数の設定にフルパスで書いても良いと思うけど。

まぁそろそろ飽きたんで引っ込む。

412 名前:403 [2008/09/20(土) 20:16:28 ]
411さん

長いことありがとうございました。
後は自分で進んでみます。




413 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:41:25 ]
逆アセンブラしてCのソースに貼り付けたら、動かせますか?
コマンドラインの引数を、関数の引数に変換できますか

414 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:44:13 ]
>逆アセンブラしてCのソースに貼り付けたら、動かせますか?
そのまま貼り付けてコンパイルしたら動かないね
いやそも逆アセンブラするってなんだよって話だが

>コマンドラインの引数を、関数の引数に変換できますか
main関数の引数になります


415 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:50:17 ]
DOSプロンプトで動くツールで、ソースが無いものをパクリたいのですが・・
できないですか?

test.exe ファイル名 > 出力名
というツールを

char * test(char *ch){ アセンブラ }
という関数に出来ませんか

416 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 20:57:14 ]
無理?

417 名前:デフォルトの名無しさん [2008/09/20(土) 20:59:24 ]
普通に通信して連携すれば?

418 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:00:36 ]
速度はひとつにした方が速いと思うんですが

419 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 22:12:24 ]
>>415
関数が export されていて、インターフェイスが公開されているなら簡単にできるが、それ以外だと面倒
グローバル変数を使ってたりしたら「自作のほうが楽じゃね?」ってなるかもw

420 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 02:22:25 ]
すみません
こういうツールの作り方教えてください 
圧縮ファイルをすべてのアプリに対してフォルダと認識させる方法です
wINDOWSエクスプローラのみなら昔からできたのですが


Zipファイルをマウントする?「Pismo File Mount Audit Package」
www.moongift.jp/2008/07/pismo_file_mount_audit_package/

421 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 03:16:01 ]
#include <stdio.h>
#include<math.h>

double simpson(double, double, double, double);
double func(double);

int main(void){
/* 必要な変数の定義をする */

double h,xkisu,xguu,s0,s1,s2,ans,x1,x2,n,x0,i;

scanf("%lf", &x1);
scanf("%lf", &x2);

printf("x1 = %f\n",x1);
printf("x2 = %f\n",x2);

/* 偶数の分割数を入力するまで繰り返す */
do{
scanf("%lf", &n);
printf("n = %f\n",n);
if ((n%2) != 0){
printf("!! Bunkatsu su ha gu-su- desu !!\n");
} else break;
} while (n%2!=0);


422 名前:421 mailto:sage [2008/09/21(日) 03:17:12 ]
すみません、みすって投稿してしましました。
上のは途中までのプログラムなのですが
コンパイルすると
22: 浮動小数点の不正な使用(関数 main )
25: 浮動小数点の不正な使用(関数 main ) とでます。
なぜでしょうか?



423 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 03:33:07 ]
小数を整数で割った余りって何なんだよ。
nはintとかにしとけ。

424 名前:デフォルトの名無しさん [2008/09/21(日) 04:52:19 ]
Cでのメモリの取られ方についてご教授いただけませんでしょうか。

下記のようなコードを書いた場合、

static const char *teststr[6] = { "00000", "1111111111", "2", "3", "444", "555555" };

それぞれの文字列でピッタリ埋まるサイズでメモリが確保されて、
それらを指すポインタがteststrに格納されるのでしょうか?

VCで試したところ、確かにteststrの各配列に指定した文字列が格納されていたのですが、
ポインタのみを確保して、その位置のデータを破壊して、指定文字列を格納しているということはないでしょうか?
組み込み(ARM)での開発に使用しようかと思っています。

よろしくお願いします。

425 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:02:09 ]
そんなもの処理系によるとしか

426 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:12:15 ]
Cで@や$や`記号が使われなかった理由ってあるんですか。

427 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 05:16:12 ]
これ以上トリグラフ増やすのいやだったんじゃね

428 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 07:28:28 ]
>>424
破壊はしない。

429 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 13:51:14 ]
>>424
> それぞれの文字列でピッタリ埋まるサイズでメモリが確保されて、
> それらを指すポインタがteststrに格納されるのでしょうか?
そのとおり。
文字列はROM、ポインタはRAMに置かれる。

430 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:26:49 ]
>>429
ポインタが RAM にいっちゃうのは teststr に const が付いてないからだよね?

431 名前:デフォルトの名無しさん [2008/09/21(日) 15:27:21 ]
Cから最近C++に移行しました。
関数を

void foo(char* filename);

と宣言して使うときに

foo("data.dat");

とやると deprecated conversion string constant to char みたいな
警告が出ます。これは何が不味いのでしょうか?

432 名前:デフォルトの名無しさん [2008/09/21(日) 15:28:02 ]
>>431
const 付けたらいいんじゃね?



433 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:28:17 ]
>>431
文字列リテラルは書き換えできないから char const で受け取らないとあぶない。

434 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:34:55 ]
マクロの中で " をあらわすにはどうしたらいいですか?
エスケープを使うとエラーになり、そのまま使うと文字列リテラルとして解釈されてしまいます。。。

435 名前:デフォルトの名無しさん [2008/09/21(日) 15:35:43 ]
つまり
foo(const char* filename);
と宣言すればよいということでしょうか?

436 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:35:48 ]
>>434
状況が見えんな。エラーになるコードとエラーメッセージをどうぞ。

437 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:37:21 ]
現在二次元配列と2重ループを習っている超初心者です
質問なのですが列和と行和を求めるプログラムで、
列和も行和も同じループ内で処理できるのは何故なのでしょうか?

438 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:37:56 ]
>>435
foo の中で filename の指す先を書き換えないんなら、それでいいはず。
っていうか、試せよ。

439 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:39:09 ]
>>437
日本語でどうぞ

440 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:39:55 ]
>>437
それだけ言われてもわかんねーよw
二次元配列を一次元配列にキャストしてるとか?

441 名前:437 mailto:sage [2008/09/21(日) 15:47:42 ]
すみません・・・どう表現していいかわからず整理しないまま打ってしまいました
考察の一部なんですが、これ以外文章にしようがなくて困っています
プログラムをあげたほうがいいでしょうか?

442 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:49:34 ]
>>441
まだ相談したいならコード晒せ。あの文章じゃ無理だ。
コード晒せば答えが得られる保証はないけどな。



443 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:02:09 ]
簡単なことだ

二重ループは行列の全ての要素にアクセスするための手段でしかないから
その扱いについては制限されない

あとは各行和各列和を格納する配列を定義して要素に応じてそれぞれ適切に加算していくだけ

444 名前:441 mailto:sage [2008/09/21(日) 16:07:01 ]
初心者丸出しで長ったらしいプログラムなのでろだにあげてみました。
No.7729です。よろしくお願いします。

445 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:38:13 ]
for(j=0;j<4;j++)
 for(i=0;i<3;i++)
  table[3][j]+=table[i][j];
これ行和しか求めてないよ。ソース中には列和を求める部分は見当たらなかったけど。

446 名前:444 mailto:sage [2008/09/21(日) 18:52:32 ]
>>445
列和の計算を入れ忘れている事に気付きました。ありがとうございます

この行和と列和を求めるプログラムの考察で、
列和も行和も同じループ内で処理できるのは何故かと言う問いなのですが
理由は>>443でOKもらえますかね・・・?

447 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:11:38 ]
>>446
>>443は日本語がちょっとおかしいのでちゃんとした文章を自分で考えてくれろ
正解かどうかは知らないし

448 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 19:54:02 ]
すいません質問なのですが、とあるクラスのprotectedメンバはその派生クラスの派生クラスからはアクセスできないんでしょうか??
MinGWで色々やっているのですが、間接継承の関係にあるクラスのprotectedメンバにアクセスしているプロググラムを実行すると、フリーズしてしまいます。
アドバイス頂けると幸いです。

449 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:29:22 ]
>>448
フリーズするならそれはまったく別の問題。

450 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 20:40:54 ]
>>448
フリーズならどこかで無限ループしてるんじゃ

451 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:27:02 ]
VCの_COM_SMARTPTR_TYPEDEFなんですけど
これで作ったCOMのスマートポインタもAttachで入れないと
カウントがずれるですか?

452 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:02:33 ]
頻繁に使われる関数で常にメモリを100Kほど確保して置きたいのですが
どのようにしたら良いですか? マルチスレッド対応の方法教えてください

こういう警告と同じ箇所で英語のエラーがでます。

マルチスレッド アプリケーションのコンストラクタでローカル静的変数を使うことは危険



453 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:08:57 ]
>>452 クラスにしとけ。

454 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:59:27 ]
100K みたいに大きいバッファは
マルチスレッド関係なく動的に確保しる。

455 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 00:44:37 ]
頻繁に使うから、再確保はしないでそのままにしておきたいのですが。
2個以上同時に使われるとバッファが壊れますが、どうしたらいいでしょうか?

456 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 00:49:20 ]
確保してから、アプリケーションが終了する直前までずっと確保したままでいい。
とりあえずマルチスレッドプログラムを組む場合は同期オブジェクトを勉強してください。

457 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 01:34:08 ]
寝る前だけど質問させてもらいます
C++で横スクロールするアクションゲームっぽいもの
作ってるのですがキャラクターをクラスで扱っていて
場面ごとの関数1つ1つにクラスの変数やメソッドを使うから
インスタンス定義ってのをやらなきゃいけないようで
そうするとそのせいで場面の移り変わりのときに
それまで使っていた変数が初期化されてしまって
ttp://www.dotup.org/uploda/www.dotup.org0173.jpg
このようになってしまいますよね
キャラクターのクラスだけでなく他にも場面やステージを
隔てて初期値に戻ると困るものを保存したり引き継いだり
できればいいのですがどうすればいいのでしょうか・・・

458 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 01:38:03 ]
>>457
保存したり引き継いだりすればいいよ。
コンストラクタ含めて関数には引数が渡せるだろ。

その画像のプレゼン能力はすばらしい。

459 名前:424 mailto:sage [2008/09/22(月) 01:43:49 ]
>>428
>>429
回答ありがとうございました。
これから検討してみたいと思います。

460 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 01:45:46 ]
スコープが広めのリサイクルオブジェクトコンテナ見たいなのを作って、シーン終了時に必要なものを追加
次のシーン初期化時に、シーンのオブジェクトコンテナに移し変える

461 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 03:08:24 ]
質問です。
ファイルオープンで、ファイルから値を読込んでもう一つのファイルにその値を書込むプログラムで、
読込用はテキストファイル(.txt)、書込用はバイナリファイル(.bin)を用いました。
上記の2つのファイルサイズは少量ですけど違いました。
この違いは何によるものなんでしょうか。

462 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 03:13:07 ]
改行コードじゃない?



463 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 03:52:47 ]
読込ファイルの値はスペース区切りでした
テキストファイルから「1 2」という値を読み込みバイナリファイルに書き込んで
ファイルをエディタで開くと「01 00 00 00 02」と表示されますが、
つまりは書き込みがバイナリファイルだとスペースにもコードがあるから
ファイルサイズが大きくなる・・・ということでいいんでしょうか・・・?

464 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 04:06:47 ]
>>461,463
読み込んで形式変えて書き込んでるんだから、そもそも同じになるわけがないな。

465 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 04:30:31 ]
質問です。
他のプロセスのメモリを監視するプログラム作ろうとしています。
ReadProcessMemoryで値を取得することはできたのですが、
できればそのメモリアドレスの値が更新された時に取得を実行したいです。
この「メモリアドレスの値が更新された」というイベントを取得することは可能でしょうか?


466 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 04:54:21 ]
>>451
コンストラクタならfalseー緒に渡せば、AddRefしないよ。
operator=は無理だな。

467 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 07:22:34 ]
>>465
チートツールはほどほどにしとけよ

468 名前:448 mailto:sage [2008/09/22(月) 12:19:03 ]
>>449
>>450
おっしゃる通り別の問題でした汗
ありがとうございましたm(_ _)m

469 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:42:19 ]
327です。

>329
ありがとうございます。

u_char *ucharAdr;
ucharAdr = (u_char *)(gulngUpdataAddress & 0x0fffffff) + 0x0c800000;
memcpy( ucharAdr, gushtUpdataArea, gulngUpdataDataCount * sizeof(short));

で、いけました。

470 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:45:08 ]
CImageで(a,b)から(x,y)まで直線を引く方法はありませんか??
MoveTo、LineToを使用せずに描きたいです。


471 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:48:25 ]
なんでMoveTo、LineToを使用したくないの?

472 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 13:13:47 ]
>>470
おいらのCImageなら、メンバにLine(CPoint from, CPoint to)があるからそれを使えるよ。
でも、あんたの言っているCImageにそれがあるかどうかは知らんけどね。



473 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:04:58 ]
const char str1[] = "str";
const char * str2 = "str";
"str"が配置されるのは、前者の場合、配列に格納するコードのところ
後者では文字列を置いておくところだと思うのですが、どういうときに、どちらを選べばいいのでしょうか

自分で考えたところでは、
・上の場合は、コンパイル時に配列のサイズが決まるのでstrlenなどを使う必要がない
・下の場合は、自動変数の確保がポインタだけですむ(速い?)
というちがいだと思うのですが、ほかにも違いがあるのでしょうか


474 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:18:10 ]
>>473
後者は str2 = "another" のような代入が可能になってしまう。たぶん意図したものじゃないだろう。

static const char str3[] = "str";
↑これなら挙げられた前者と同じメリットを得つつ、後者のメリットを上回る(自動変数の確保はゼロ)。

475 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:46:37 ]
const char * const str2

476 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 20:16:33 ]
>>474-475
ありがとうございます。
475さんのはstr2が同じものをさし続けるようにするのですね。
474さんのは静的変数の初期化に、コストを預けてるわけですね。

477 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 20:31:51 ]
>>476
str3 の初期化にコストなんか要らないよ。どのケースでも必要になる文字列リテラルの
実体を直接割り付ければいいだけ。

478 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 22:16:49 ]
>>473
#define str4 "str"


479 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:01:02 ]
ここの場所でC2614のエラーが起きます。
クラスや構造体の初期化子リストに表示できるのは、メンバか基本クラスだけです。
規定クラスのメンバはどうやって初期化するですか?


class A
{
 public:
  A(int apple)
 protected:
  int m_banana;
}

class B : public B
{
  B(int apple)
   : A(apple), m_banana(8)  ←ここ
{
}
}

480 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:04:32 ]
基底クラスのコンストラクタで行う。
class A
{
public:
A(int apple)
protected:
A(int apple, int banana) : m_banana(banana) {}
int m_banana;
};
class B : public A
{
B(int apple)
: A(apple, 8)
{
}
};


481 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:05:16 ]
できました。
ども

482 名前:デフォルトの名無しさん [2008/09/24(水) 07:57:18 ]
VC++2005を利用しています
例外を勉強しているのですが、例外を発生させたときに、
catchで例外を処理しても、デバッガに例外があったことが出力されます

catchで例外を処理するときは、
デバッガの出力に例外が発生したことが出力されるのを防ぎたいですが、どのようにすればいいでしょうか



483 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 12:37:12 ]
>>482
出力って、例外時のデバッガのダイアログ?だったら、デバッグ->例外で設定できる
デバッグ出力の例外のレポートだったら気にするな。レポートが出すぎて困るのだったら例外の使い方が間違っている。

484 名前:482 [2008/09/24(水) 13:18:40 ]
>>483
れす、ありがとうございます。後者です。

例外のつかいかたについては勉強していくところです。
もし、テストケースとかを今後記述するような場合に、デバッグ出力でOFFにできないのか探しています。






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

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

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