- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:39:51 ]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 C++Builder使いが優しくコメントを返しますが、 お礼はC++Builderの布教と初心者の救済をお願いします。 Borland Home Page www.borland.co.jp/ <過去スレ> くだすれC++Builder(超初心者用) pc8.2ch.net/test/read.cgi/tech/1117225464/l50 くだすれC++Builder(超初心者用)その2 pc10.2ch.net/test/read.cgi/tech/1144308804/l50 <兄弟スレ> くだすれDelphi(超初心者用)その39 pc10.2ch.net/test/read.cgi/tech/1169386914/l50
- 2 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:40:19 ]
- <関連スレ>
【Turbo】Borland Developer Studio 2006 No.11 pc10.2ch.net/test/read.cgi/tech/1167186538/l50 C++Builder相談室 Part17 pc10.2ch.net/test/read.cgi/tech/1162918887/l50 【Delphi】 Indyコンポーネント 【C++Builder】 pc8.2ch.net/test/read.cgi/tech/1093654251/l50 タダで使えるBorland C++ Part5 pc10.2ch.net/test/read.cgi/tech/1135127048/l50 Boostを語れゴラァ part3 pc10.2ch.net/test/read.cgi/tech/1158991211/l50 スレを勃てるまでもないC/C++の質問はここで pc10.2ch.net/test/read.cgi/tech/1167476845/l50 【C++】STL(Standard Template Library)相談室 6 pc10.2ch.net/test/read.cgi/tech/1160821240/l50
- 3 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 11:53:41 ]
- 実行ファイル名ってプロジェクトの名前以外に変更できますか?
- 4 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 02:11:15 ]
- 去年までDelphiユーザだった。
DelphiではusesにMathとか追加していくけど、BCBではどこに(#include <Math.hpp> を)書けばいいですか。 .h に書くのか、.cppに書くのか。.cppなら、#pragma hdrstopの前か後に書くのか、定石を教えてください。
- 5 名前:デフォルトの名無しさん [2007/02/26(月) 13:25:58 ]
- age
- 6 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:27:44 ]
- >>3
ヒント:エクスプローラー、名前の変更
- 7 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 07:12:16 ]
- OutputDebugStringで、イベントログを
見る方法は検索できましたが、 GUIアプリで作ったとき、printfの標準出力を 見ることは、できないのでしょうか?
- 8 名前:デフォルトの名無しさん [2007/02/28(水) 17:05:31 ]
- C99には対応していますか?
- 9 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 17:51:47 ]
- 済みません、
フォーム上で画像ビュアの様なカタログ?形式のを 作ろうと思っているのですが TImage等をプログラム上で 自分で作って並べていく事は出来るのでしょうか? 宜しくお願いいたしますm(__)m
- 10 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 17:55:57 ]
- TImage *Image = new TImage(this);
Image->Parent = Panel1; //パネルの上に置く
- 11 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:07:15 ]
- 有り難う御座います
やってみますm(__)m
- 12 名前:デフォルトの名無しさん [2007/03/04(日) 22:42:03 ]
- かんたんプログラミングC++Builder」という本に載っているカードゲーム
のコードを本に倣って一から打ち込んでるんですが、メインフォームでカ ードの表示位置とかを決めるところまでは終って、次に敵というか、コン ピュータ側のクラスを定義する為にユニットを新規作成してそこに敵のク ラスを定義することになってるので、hファイルにデータメンバーを定義 とメソッドの宣言をして、最後にメソッドの定義をcppのほうに書いたんだ けど、実行しても該当するメソッドが未解決というエラーがでて実行でき ないんですが、どうすれば良いのでしょうか? いろいろ試したけど、敵のクラスを定義したユニットのcppのほうは一切チ ェックされてないのでメソッドの定義書こうが何書こうが一切関係ない状 態になってます。
- 13 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 02:13:26 ]
- >>12
*.cppがプロジェクトに登録されていない メソッドを呼出すソースファイルで*.hをインクルードしていない この二つを確認 遠い昔にその本で勉強したことがある たしか誤植が数箇所あった そのままだと動かないソースファイルが1つあったはず >>12氏が引っかかってるのがそこかどうかはわからないが
- 14 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 13:12:00 ]
- CreateProcessで、コマンド実行すると、Dos窓が一瞬表示されるんですが、
表示されない方法ってないでしょうか?
- 15 名前:12 mailto:sage [2007/03/05(月) 19:25:41 ]
- >>13
ご指摘のとおり、cppがプロジェクトに登録されていませんでした。 あと、やはりこの本は誤植が多くて、今回の部分で云えば件のcppで 定義したメソッドの為にあるヘッダーファイルが必要なのですが、そ の記述が抜け落ちてました。(一応、C++の入門書一冊読んでたので それはすぐにわかりましたが。) 的確なご指摘、ありがとうございました。
- 16 名前:デフォルトの名無しさん [2007/03/06(火) 19:10:51 ]
- OpenMPは使えますか?
- 17 名前:デフォルトの名無しさん [2007/03/10(土) 20:25:47 ]
- ほんとに初歩的な質問で申し訳ないのですが、C++builderXを使用していて、
printfを使用した次の行にscanfを書いたのですが、コンパイルして実行すると、なぜか最初に入力を求めて、入力した後でprintfの文字列が表示されてしまいます。 説明が下手ですみません。ソースと実行結果を書きます 1 #include <stdio.h> 2 3 main(){ 4 int a; 5 printf("先に表示したい\n"); //プログラムを実行したら普通は最初に表示され、次に入力待ちになるはず 6 scanf("%d", &a); 7 printf("入力した値は%d",a); 8 return 0; 9} ▼実行結果 1 (最初に入力待ちになる。仮に1と入力) 先に表示したい 入力した値は1 と、なぜか6行目のscanfが最初に実行され、入力した後で5行目の文字列が表示されてしまいます。どうすれば5行目のprintf関数が最初に実行されるのでしょうか? また何が原因でscanfが最初に実行されるのでしょうか?稚拙な文章ですみませんが回答よろしくお願いします。
- 18 名前:デフォルトの名無しさん [2007/03/10(土) 22:45:33 ]
- >>7
AllocConsole()で検索 俺は開発環境の入ってない環境でのテストに良く使うな。
- 19 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 15:49:36 ]
- >>17
setvbufとか fflushとか
- 20 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:17:45 ]
- 済みません
2006Turbo C++で表示で開いた ツールパレットなどを現在位置で覚えておけないでしょうか? 再度立ち上げると前に出した物が消えて 初期状態に戻ってしまいます........orz
- 21 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 11:42:53 ]
- cppやhのファイルを自分でつくって
それを他のcppから参照?呼び出しさせるような簡単なサンプルや 解説をしているhpは無いでしょうか? 宜しくお願いいたします
- 22 名前:デフォルトの名無しさん [2007/03/27(火) 11:17:35 ]
- 質問です
先日BCB6からBDS2006に乗り換えようと、よく判らずも、色々といじっていたのですが、 doubleをintへキャストする部分があるのですが、そこで 例外クラス EInvalidOp 不正な浮動小数点数演算命令の例外を発生するようになりました。 BCB6のときにはそのようなことはなかったのですが・・・ double d = 1e+300; int a = (int)d; //ここで発生 1e+300というのはお恥ずかしながら無謀な数字ですが、とりあえずBCB6ではa=0という結果で問題なかったもので・・・ こういうものということで、あらかじめ条件わけをしてあげる必要があるということでしょうか? Xp pro + BDS2006 proです。
- 23 名前:22 [2007/03/28(水) 22:28:55 ]
- まだハマッています;;
VCで同じようなことをして見ましたが、VCでは例外のエラーは発生せず、 結果として上記のソースで言えばa=0が返ってきました。 で、やっている事はよろしくない事なんだろうと思って、少し勉強をして、例外を捉えたら無視してやろうという考えで try catchというのを使ってみることにしました。 double d; int a; d=1e+300; try { a=(int)d; } catch (Exception &e) { Memo1->Lines->Add("例外発生"+e.Message); a=0;} こんな感じで・・・でも動作が変なんです。BDS2006でコンパイルした方だけ。 ボタンを押すごとに上記を呼び出します。 1回目はエラー発生せず(注) 2回目エラー⇒catchで捕る。あと1回目から繰り返し (注)ここでマウスカーソルをタイトルバー上へ持ってくるとcatchで捕まらないエラー発生、ダイアログが現れます。 比較として0で割った場合の例外の実験もして見ましたが、こちらは毎回catchで捕まるみたいです。いったい何が問題なのでしょう? BCB6とBDS2006の実行ファイルとソースをアップします。よろしくお願いします。 ttp://puka-world.com/php/upload/large/img-box/1175087636206.zip
- 24 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 10:40:58 ]
- どっかで浮動小数点例外をつけたり外したりしてるんだろう
Set8087CW(0x133f); のようにすれば浮動小数点演算からの例外は出なくなるよ
- 25 名前:23 [2007/03/29(木) 11:22:50 ]
- おおっ!早速有難うございます。とりあえず例外の発生はなくなりました。
BCB6の出方とはちょっと違うみたいですけど、それはおいといてとりあえず 進めてみます。ぐぐって見ると計算精度に関係しそうなのでちょっと心配。 その辺はぱっと見なのでまた調べてみます。 ちなみに1e+300とかそんな結果を無理矢理intにキャストするなんてのが そもそも間違えだということでいいんですかね? ・・・にしては挙動がおかしいので・・ちょっと気になりました。
- 26 名前:デフォルトの名無しさん [2007/03/29(木) 11:41:39 ]
- >>25
a = static_cast <int> (d); でいいと思うんだけど・・・どーなんでしょ
- 27 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 11:51:54 ]
- 1e+300は当然整数には入らないので例外が設定されてたら例外が出るというだけでしょ
除算とは独立に 例外を出す出さないを設定出来るから
- 28 名前:23 mailto:sage [2007/03/29(木) 13:16:12 ]
- >>26
やってみましたが、>>23と同じ結果でした。 >>27 >例外が設定されてたら例外が出るというだけでしょ それが挙動不審で、例外キャッチできなかったりするので、どうなのかなと思ったのです。 あと、発生するのがBDS2006だけなので・・・ >除算とは独立に 例外を出す出さないを設定出来るから 設定とは何処にあるのでしょう?なんだかいっぱい設定があって・・・ Set8087CW(0x133f)では除算の例外もマスク?されてしまうみたいなので 出来ればそちらで対処できるならそうしたいです。
- 29 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 13:32:50 ]
- CWを読み出してみればいいじゃない
var CWtemp:WORD; function Get8087CW: WORD; asm FSTCW CWtemp; mov AX,CWtemp; end; どのビットが何なのかは、intelのマニュアル読めば判るんだし
- 30 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 05:11:46 ]
- BCB6勉強してます。
表示->デバックのCPU、FPUっていうウィンドウ の見方がわかると、エラーの発見はやくなりますか? コンパイルして、エラーが出てきたとき、 たまにエラー出ますが、そもそも何のために表示されるのでしょうか。 どんなキーワードで、ググればいいのかもわかりません。 よろしくお願いします。
- 31 名前:23 mailto:sage [2007/03/30(金) 10:24:00 ]
- その後、BCB6とBDS2006でFPUのコントロールワードをみながら追いかけてみたところ、
BCB6では計算の前後で0x1273に設定しているのに対してBDS2006では前後で0x1372に なっていました。そこで、Set8087CW(0x1273)を最初に追加してBDSで実行したところ、 BCB6と同じ動作になったように見えました・・・・・・が、 他の浮動小数点エラーを起こすと何らかの拍子で戻ったりしてしまいます。 ちょっと待つとまた意図した動作に戻るんですけどね。 浮動小数点関連が呼ばれるたびにFPU_CWを読み書きしているみたいなので その辺で引きずられてエラーが出てしまうのか? いずれにせよ、意図している動作に近づいてきた感じです。 ところで質問ですが、この現象っておいらだけでしょうか? 大分はまったので別の環境で試してみたのですが、こちらも同じでした。 結論としてはそういう使い方しちゃダメよってことなんでしょうけど;; 例外処理で補足出来ないとかって、よくあることなんでしょうか? そもそも例外処理なんかイリーガルな使い方ということなのかなぁ・・・ 何万本?も出ているソフトということを考えるとおいらの考えがおかしいんだろうな。 ・・きっと。うん、そうだ。 ちょっとしたコントローラだけにしか使わないおいらにとってはハードルが 高そうです。
- 32 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 15:36:51 ]
- ちょっと説明しにくいのですが
TForm *a[10]; a[0] = new TForm(this);〜9まで の様な感じで制御するフォームを作ったのですが 一つの(たとえばa[0])内部処理で数値を代入すると他の フォームまで同じ数値が入ってしまいます これを干渉しないようにするにはどうしたら良いのでしょうか? 一つのフォームを雛形にして 同じ形式の独立したフォームを幾つも作りたいのですが 宜しくお願いいたしますm(__)m
- 33 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 15:38:50 ]
- 訂正です
TFormだとややこしいですね TOrgFormは自分でフォームを追加した物です TOrgForm *a[10]; a[0] = new TOrgForm(this);〜9まで
- 34 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:23:12 ]
- >>33
質問内容からして超々初心者みたいだけど そんだけの情報ではどこがバグっているのかなんてわからんよ。 ちゃんと別々にnewして作成して、かつ別々に参照しているなら干渉するなんてことは基本的にはありえん。
- 35 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 00:23:40 ]
- >>34
有り難う御座います 本当にこれだけなんですよ(^^; 何故か a[0]->Show(); a[1]->Show(); でフォームを出して たとえばフォームの中に int aint;と言うが有るとして a[0]の方に任意の数値を入れると a[1]の方にも同じ数字が入ってるというような感じで...orz もうちょっと色々試してみます
- 36 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 00:44:03 ]
- あれ今さっきやったら読み込んでこない.....
何だったんだろ....orz お騒がせしました有り難う御座います
- 37 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 09:21:45 ]
- たぶん、dfmを読み込ませて、全部同じになると思ってたんじゃないのかな
- 38 名前:デフォルトの名無しさん [2007/04/14(土) 07:53:01 ]
- フォントの設定は
xxx->Font->Style=TFontStyles()<<fsBold<<fsUnderline; // 太字下線付き ようにして出来ることはわかったのですが フォントが太字下線付きに設定されているかを調べる(値を読み出す)方法がわかりません。 どうすればいいのでしょうか。
- 39 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 11:26:56 ]
- >38
if(xxx->Font->Style.Contains(fsBold) == true) ShowMessage("太字です"); else ShowMessage("太字ではありません"); だったかな?
- 40 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:24:28 ]
- >>39
さんくすです。 Contains()というのがあったんですね。
- 41 名前:デフォルトの名無しさん [2007/04/16(月) 21:40:34 ]
- button1を押すと別のFormを表示させるにはどうすればいいんですか?
- 42 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 21:49:55 ]
- Show()
- 43 名前:デフォルトの名無しさん [2007/04/16(月) 22:16:41 ]
- >>35
単にa[0]と思ったらa[1]に値入れてたってだけじゃねーの?
- 44 名前:名無し@沢村 [2007/04/16(月) 23:55:55 ]
- おみゃーらー♪
C++Builderを開発環境としてどう思うわけ? おりはC++Builderは開発環境としてつまらんと思うな。 おみゃーたー、『肥桶』つー開発環境があるの知ってる? おりは知ってるよ。 おりがつくった言語よ。これからh『肥えた語』の時代よ。 URLはここよ↓ www.geocities.jp/hontamagod/ 感想を頼むなー♪
- 45 名前:デフォルトの名無しさん [2007/04/19(木) 12:27:02 ]
- コード補完が反応しないんですがなぜですか?
- 46 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 12:40:28 ]
- コンパイルしても直らない?
なら、不要ファイルを一度削除してみたら?
- 47 名前:45 mailto:sage [2007/04/19(木) 13:19:54 ]
- コンパイルしたら直りました。
ありがとうございましたm(__)m
- 48 名前:デフォルトの名無しさん [2007/05/06(日) 21:30:21 ]
- BDS2006を使っています。
自作のマウスカーソルを実現したいのですが やり方がわかりません。 ぐぐったら、ここを発見しました。 202.33.253.145/tips/cbuilder/cb011/index.html >イメージエディタなどのツールで、カーソルを作成し、リソースファイル(.res)に保管します。 これはできました。 >プロジェクトに作成したリソースファイルを追加します。 このリソースファイルを追加というのがやり方がわかりません。 リソース識別子をどこで指定するのかも、やり方がわかりません。 プロジェクトマネージャに追加してみたのですが、追加したCursor1.resがリンクエラーになりました。 よろしくお願いします。
- 49 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:43:04 ]
- {$R Cursor1,res}
をコード上のどこかに記述、だったかな?
- 50 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:44:49 ]
- × {$R Cursor1,res}
○ {$R Cursor1.res}
- 51 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:59:45 ]
- pascal unitにね
- 52 名前:デフォルトの名無しさん [2007/05/06(日) 22:58:00 ]
- #include<stdio.h>
void main(void) { int i = 1; int *p1; int *p2; p1=&i; p2=&i; *p1++; *p2++; i++; printf("ド○ゴンクエストは%dが一番おもしろい\n", i); } 3と表示させたいのですが、どうも *p1++; *p2++; が評価されていないようです。 どこがおかしいのか教えてください。
- 53 名前:48 mailto:sage [2007/05/06(日) 22:58:03 ]
- >>49-51
解答ありがとうございます。 パスカルユニットを作成してUnit1.pasをプロジェクトに加えました。 しかし [リンカ エラー] Error: 不明な RLINK32 エラーです というのが出てしまいます。 それと、リソースIDはどこで指定するのでしょうか。 うーん、難しいですね。
- 54 名前:48 mailto:sage [2007/05/06(日) 23:03:08 ]
- >>52
p1++; p2++; i++ ですね。 *p1++はポインタのインクリメントですね。
- 55 名前:デフォルトの名無しさん [2007/05/06(日) 23:06:19 ]
- >>54
int *p1; int *p2; ですので、 *p1++; *p2++; で値の増加のはずですので、そこではないと思うのですが・・・
- 56 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:15:03 ]
- >>55
(*p1)++ のように
- 57 名前:デフォルトの名無しさん [2007/05/06(日) 23:20:18 ]
- >>56
できました! ひょっとして1++が先に評価されてしまって、結果p2という意味の無い式文になっていたのでしょうか?
- 58 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:28:50 ]
- >>53
とりあえず、俺達は出来てるんだから、何か間違ってるんだろ。 後は自分で調べてくれよ。 パスカルユニット使わない方法もあったように思うぞ。
- 59 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:29:53 ]
- >>57
いや違う *p1++ は *(p1++) の事。 つまりアドレスが先にinc されて 1つ次のメモリを壊してる
- 60 名前:デフォルトの名無しさん [2007/05/06(日) 23:31:47 ]
- >>59
なるほど。 しっかり理解できました。 ありがとうございます。
- 61 名前:デフォルトの名無しさん [2007/05/07(月) 00:18:57 ]
- #include <stdio.h>
int main(void) { char str[4][20]; str[0][20] = 'こんばんわ'; printf("%s\n", str[0]); return (0); } str[0] に こんばんわ と入れたいのですが、できません。 表示もなんだかおかしいです。 間違いの指摘をお願いします。
- 62 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:32:50 ]
- 先にDelphiをやってたの?
'こんばんわ' は文字列じゃなく文字 "こんばんわ"が文字列だけど C 言語ではそのポインタになる。 だから、ポインタから文字列を自前でコピーしてやらないといけない
- 63 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 01:25:20 ]
- >>61
つCの標準ライブラリ関数string.hに含まれるstrcpy() string.hをインクルードし以下のように書き換えればOK strcpy(str[0],"こんばんわ"); あと、'は文字定数を指定する物だから、文字列の時には"を使え ついでに誘導 ttp://pc11.2ch.net/test/read.cgi/tech/1176800483/ ttp://pc11.2ch.net/test/read.cgi/tech/1172099763/
- 64 名前:デフォルトの名無しさん [2007/05/07(月) 01:36:28 ]
- >>62-63
すいません。難しいです。 誘導先行って聞いて見ます。
- 65 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 01:44:06 ]
- おのれCypress
- 66 名前:デフォルトの名無しさん [2007/05/07(月) 10:10:46 ]
- ジェーブイルダーはLinux版出るようだが、
今後シー加算加算ブイルダーはLinux対応しないのか????
- 67 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 19:22:16 ]
- つ C++BuilderX
- 68 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 22:03:04 ]
- C++Builderで10個程度の数字を打ち込んで並べ替えるってやりたいんだけどどんな感じでやれば出来るでしょうか?
普通のCならscanfで取り込んでってやればいいんだけどビルダーだと出来ないからどうやればいいかわからないです;;
- 69 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 07:25:03 ]
- scanfを使いたいなら、コンソールアプリで作ればいいのでは?
- 70 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:07:45 ]
- for文内部でEditのついた入力ダイアログを10回表示させればいいじゃん。
間違えたら戻れるとかの機能をつけて。
- 71 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:17:41 ]
- ソレをやるなら TMemoに10個打ち込んで、ボタン押したらソートする仕様の方が
- 72 名前:デフォルトの名無しさん [2007/05/16(水) 15:37:48 ]
- if(CppWebBrowser1->Document != NULL){
IHTMLElement * element; std::wstring html; { IHTMLDocument2 * html_docment2; CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (void **)&html_docment2); html_docment2->get_activeElement(&element); wchar_t * temp; element->get_innerHTML(&temp); --> html = temp; } // ここでいじくる element->put_innerHTML(const_cast<wchar_t *>(html.c_str())); } 矢印の位置でエラーが出ます。 stdio.hじゃだめ?何をインクルードすればいいかさっぱりわからんです。
- 73 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 16:45:21 ]
- >CodeGear?、Windows Vista?対応のC++ RADツールの新バージョンC++BuilderR 2007を発表
>ttp://www.codegear.com/jp/article/36469 BCB6が超安定してるんだが、Vi$ta用には逝行しなきゃならない?
- 74 名前:68 mailto:sage [2007/05/24(木) 10:42:47 ]
- >>69-71
返答が遅れてすみません。解答頂きありがとうございます。 いろいろ考えた結果Editを10個作りそこに数字を入力させボタンを押したら、 下のフォームに並び替え前と後の結果を出力する事にしました。 そこで質問なのですが、まずヘッダの方に入力と出力ようの配列a[10],b[10]を用意してやりボタンの方に void __fastcall TForm1::sortClick(TObject *Sender) { Bubble(int a[],&nyuryoku,&syuturyoku); } void TForm1::Bubble(int a[],int num* , int print*) int data, tmp; for (data = 0; data > 9; ++data) { for (nyuryoku = 0; nyuryoku < data - 1; ++nyuryoku) { if (a[nyuryoku] > a[nyuryoku+1]) { tmp = a[nyuryoku]; a[nyuryoku] = a[nyuryoku+1]; a[nyuryoku+1] = tmp; } } } としたのですがエラー出まくりです;; 後10個に分けたeditに打たせた数字を配列に格納しそれを出力させる方法がわからないです;; どうかご教授お願いいたします。
- 75 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 15:08:26 ]
- >>74
Edit10個でなくて、TMemo1個にした方がいいんじゃないのか?
- 76 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 16:07:32 ]
- まずは1個からやってみるべ
- 77 名前:68 mailto:sage [2007/05/28(月) 09:29:38 ]
- >>75-76
アドバイスありがとうございます。ですが今回はEdit10個でやってみることにします。 入出力に関して質問なのですが int work[10]; int output[10]; というのをヘッダのpublicで宣言してメインの方で void TForm1::input(int *Input) { int i; for (i=0;i<10;++i){ *pWork = StrToInt(data1->Text) ; } 出力の方で void TForm1::print(int *Input) { /*並び替え前と並び替え後の結果を画面に出力*/ int i; for(i=0;i<10;++i) { syuturyoku->Lines->Add(IntToStr(*Input)) ; } } とやっているのですがうまく行きません;; どのような方法を使えばうまく格納し出力できるのでしょうか? くだらない質問で申し訳ありませんがどうかよろしくお願い致します
- 78 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 10:08:44 ]
- >とやっているのですがうまく行きません;;
何がうまくいかないのか不明瞭 >どのような方法を使えばうまく格納し出力できるのでしょうか? 仕様不明瞭
- 79 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 10:27:16 ]
- >>77
アドバイスをチャント聞いてよ。 フォームにメモ2つ、ボタン1つを貼り付けて、ボタンをダブルクリック DynamicArray<int> work; void sort(DynamicArray<int> &dt) { for(int i=0;i<dt.Length-1;i++) for(int j=i;j<dt.Length;j++) if(dt[i]>dt[j]) {int w=dt[j];dt[j]=dt[i];dt[i]=w;}; } void __fastcall TForm1::Button1Click(TObject *Sender) { work.Length =Memo1->Lines->Count; int siz=0; for(int i=0;i<Memo1->Lines->Count;i++) if(Memo1->Lines->Strings[i]!="") work[siz++]=Memo1->Lines->Strings[i].ToInt(); work.Length = siz; sort(work); AnsiString s; Memo2->Lines->Clear(); for(int i=0;i<work.Length;i++) Memo2->Lines->Add(s.sprintf("%5d",work[i])); }
- 80 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 10:44:08 ]
- data1 ってなに?
pWork ってなに? syuturyoku ってなに? つーか、ポインタってわかる?
- 81 名前:デフォルトの名無しさん [2007/05/28(月) 14:11:00 ]
- プログラムの特定箇所、たとえばプログラムのおしりとかに
特定のバイナリデータを付加する方法があれば教えてください。
- 82 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:24:46 ]
- 普通のファイルとして追加すればいいと思うが?
ただ実行ファイルは実行されると排他処理されて書換えが出来ない。
- 83 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:36:00 ]
- >>82
意味がわかりません。 バイナリを埋め込む疑似命令みたいなものがあれば教えて欲しいという意味です。
- 84 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 15:45:50 ]
- リソースで埋め込んだら? pascalユニットなら比較的簡単だったように思うぞ
- 85 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:15:41 ]
- >>77
まずC++勉強しないとどうにもならないな CとC++は別の言語だよ
- 86 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:34:30 ]
- >>83
プログラム側から読み込むため? それとも、「特定箇所」と指定するからには、別の意図で? 前者であれば、バイナリデータ hogehoge.bin をリソースとして 埋め込む手順は以下のとおり。 res.rc を作って追加する。内容は下の一行。 hogehoge RCDATA hogehoge.bin 読み込みは以下の方法で TResourceStream *RS = new TResourceStream((int)HInstance,"hogehoge", RT_RCDATA); RS->Read();
- 87 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 16:41:15 ]
- その後、
.pas なら確か {$R res.res res.rc } の1行を入れるだけ C++だけでやりたい場合はどうやったっけ?
- 88 名前:デフォルトの名無しさん mailto:sage [2007/05/28(月) 21:50:18 ]
- プロジェクトに.rcを追加 または #pragma resource で.resを指定
- 89 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 09:54:01 ]
- 1個もできないのにいきなり10個なんてやるのは無理
- 90 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 14:54:35 ]
- C99は使えますか?
- 91 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:22:09 ]
- 一個ボタンを作ってそれを押したら10秒後にプログラムが終了するようにするにはどのようにすればいいでしょうか?
- 92 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 19:23:30 ]
- Sleep(10000);
Application->Terminate(); ?
- 93 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 23:43:14 ]
- >>91
VCLのデモンストレーション的コード Form上にTTimerを1つポトリ Timer1とする オブジェクトインスペクタでTimer1のIntervalを10000に設定 おなじくEnabledをfalseに設定 Timer1のOnTimerイベント内で Close(); ボタンのOnClickイベントで Timer->Enabled = true;
- 94 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 13:28:03 ]
- くだらない質問ですがどうかお願いします。
int ng=0 , i=0; while(i<20){ if(条件){ 処理 ng = ERROR; break; } i++; } それでreturn ng;で戻り値で返して、という関数を作ってメインの方に if(monaa(unko) == ERROR){ 処理 } else{ 処理 } としてエラー処理を行っているのですがビルダーでコンパイルすると一度while文を抜けてif(monaa)の部分までいくのですが その後またwhile文に戻ってしまいます。何か改善方法わかる方いらっしゃいませんでしょうか?
- 95 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 13:32:42 ]
- 普通はそんな事はありえないので
再現する最小のコードを作ってみてくれないかな?
- 96 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 14:35:46 ]
- >>94
デバッグすればいいだけだろ 200%バグだから
- 97 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 16:53:54 ]
- ソースレベルデバックを知らないに100ペソ。
- 98 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 17:28:36 ]
- なにが起きててなにがわからないのか、全く不明なのであてずっぽうで。
コードエディタ上でF5を押すとその行にブレークポイントを設定できる (行が赤くなる)ので、処理の流れを確認したい最初の部分にブレークポイントを 設定する。ただし最適化などで実行内容が存在しないとみなされる行には 設定できず、緑色になるので、コンパイルオプションで最適化を解除するなり 違う行に設定するなりすること。で実行するとブレークポイントを設定した行を 実行する*直前*にプログラムが停止してIDEに制御が戻り、対象行が青く ハイライトされる。あとは1行実行のF8(ステップオーバ)、F7(ステップイン)や F9(実行継続)を使って処理の流れを見る、変数の上にマウスをホバーすると 変数の値が表示される、Ctrl-F7で変数や式の値を評価、変更するなどの… 書いてて疲れた。まぁそういうことだ。がんがれ。
- 99 名前:デフォルトの名無しさん mailto:sage [2007/06/04(月) 21:05:28 ]
- >>95->>98
みなさんいろいろありがとうございました デバックしながら原因探ってみたいと思います。
- 100 名前:デフォルトの名無しさん mailto:sega [2007/06/05(火) 17:02:47 ]
- プログラム初めて2週間くらいです。
複数のクラス間で変数を共有する方法を教えてください 具体的には弾や敵でクラス分けされたシューティングゲームで 自弾と敵の判定を敵の動きを処理するループの中でしたいです。
|

|