トップページ⇒tech
1001コメント292KB

C++Builder相談室 Part17

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/08(水) 02:01:27
C++Builderに関する質問・回答や議論等を行う相談室スレッド。

【前スレ】
C++Builder相談室 Part16
http://pc8.2ch.net/test/read.cgi/tech/1138766165/l50

過去スレ・関連サイトは>>2-7あたり。


※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part4
http://pc8.2ch.net/test/read.cgi/tech/1091066805/l50
※BDS(Borland Developer Studio)の総合スレはこちら
Borland Developer Studio 2006 No.10
http://pc8.2ch.net/test/read.cgi/tech/1162262669/l50
0437デフォルトの名無しさん2007/05/15(火) 11:01:04
>普通はこういう使い方はしないもんですか?

しません。
何をthrowしたのか受けられないからです。
で、catchってswitch文みたく書けるので、エラーオブジェクトを受ける書き方をして、
該当するところが無かった場合のためにcatch(...)も入れときますがそれはswtich文のdefaultみたいな扱い。
04384072007/05/15(火) 11:10:39
なるほど・・
switch使ってるくせにdefaultのみって感じでしたか・・・
そういう風に言われると確かに意味ないしそんな使い方はしないですよね
はぁ、この辺勉強不足だなあ
気分的には
if (...){
OK
}
else{
ERROR
}
みたいな感じで例外が発生したらオブジェクトが何であろうと全て一括中止処理をと・・・
0439デフォルトの名無しさん2007/05/15(火) 11:16:40
>例外が発生したらオブジェクトが何であろうと全て一括中止処理をと・・・

いや、それは正しいんだけど、エラーオブジェクトをキャッチしなきゃ。
catch(...)だとキャッチしてないじゃん。
0440気まぐれアナスイ2007/05/15(火) 11:17:19
此処ではerror.の出力を教えないのですね?
0441デフォルトの名無しさん2007/05/15(火) 11:18:58
ttp://www5c.biglobe.ne.jp/~ecb/cpp/03_07.html

こういう風に、catch(...)は最後の砦。
0442デフォルトの名無しさん2007/05/15(火) 11:20:49
で、VCLが投げてくるエラーは先ず、
> } catch (Exception &exception) {
で受けなきゃ。

DB系ライブラリとかIndyとかはExceptionクラスを派生したものを投げてくるので、
派生クラスでcatchすれば、もっとエラー情報を取れるお。
0443気まぐれアナスイ2007/05/15(火) 11:21:24
>>440『続』
error.出力を提示して貰った方が分かり易そうです、ね?
04444072007/05/15(火) 11:22:44
>>439
あ、catchに入ればそれでいいとおもっておりました・・・

>>441
参考にさせていただきます。
04454072007/05/15(火) 11:25:18
>>442
なるほど、それで故意に例外を発生させたい場合は>>426でやるってことですね?
0446デフォルトの名無しさん2007/05/15(火) 11:26:16
> } catch (Exception &exception) {

で受けとけば、
exception.Message
にエラーの内容が入ってるんだよ。

VCLがセットした論理的なエラーメッセージの場合もあるし、
Win32APIのエラーコードからエラー文字列を設定している場合もあるし。

だから、exception.Messageを書かずに、BCBスレで質問すること自体反則!
0447デフォルトの名無しさん2007/05/15(火) 11:27:22
>>445
>throw Exception("わざと");
を
> } catch (Exception &exception) {
で受けると、
>exception.Message
の中身は、"わざと"。
0448デフォルトの名無しさん2007/05/15(火) 11:28:51
で、
> } catch (Exception &exception) {
の中で、throw; と書くと、exceptionを投げることになるが、
> } catch (...) {
て書いたって投げるもん無いやん。
あえて言えば、throw NULL; になってるかも。
0449気まぐれアナスイ2007/05/15(火) 11:32:07
>>446
なるほど?
つまり、
>}catch(exception&exception){
取り除く訳ですか?
04504072007/05/15(火) 11:35:27
>>446-447
今Exceptionのヘルプみました。
Messageプロパティにメッセージ入ってました。

>>448
えっと根本が間違ってるかもしれませんが
catch (...)と記述すると投げるものがなくてもcatchに入るので(catch内ではオブジェクトの評価はしない)
とにかくエラーはreturnで返して処理を中止って発想でした
0451デフォルトの名無しさん2007/05/15(火) 17:52:06
誰か…>>388に答えて…
0452デフォルトの名無しさん2007/05/15(火) 18:37:12
>>451
サイズを変更できないウィンドウにしておいて、
プログラムでサイズを変更するようにすればいんじゃね?
0453デフォルトの名無しさん2007/05/15(火) 20:30:06
>>451
どういう状況なのかイマイチ分からんのだが
サイズ変更を抑制してたらどれくらい変更するのか決められないじゃないか
0454デフォルトの名無しさん2007/05/15(火) 21:00:09
WM_ENTERSIZEMOVE, WM_ENTERSIZEMOVEあたりが思い浮かんだ
0455本田2007/05/15(火) 23:36:27
>New C++ IDE from CodeGear^(TM) Brings Rapid Application Development to Windows Vista^(TM)
http://www.codegear.com/article/36464/
>SCOTTS VALLEY, Calif. - May 14, 2007 - CodeGear, a leader in developer tools,
> today announced C++Builder? 2007 -
>the world's only native C++ rapid application development (RAD) integrated development environment (IDE) for Microsoft? Windows.
>C++Builder 2007 provides support for Microsoft Windows Vista,
>enabling developers to seamlessly upgrade existing C++ applications to support Vista
> and rapidly build new Windows applications that take advantage of the new Vista Aero user interfaces.
0456388=4512007/05/16(水) 10:18:39
>>454
SplThx!
0457デフォルトの名無しさん2007/05/17(木) 16:00:47
動的に領域を再確保とかできるあれなんでしたっけ?
なんとかarray?
ヘルプ見たくてもスペルがわからないからおしえてください
0458デフォルトの名無しさん2007/05/17(木) 16:51:30
std::vector
0459デフォルトの名無しさん2007/05/17(木) 19:32:00
TDatabaseを使っているのですが
XPだとちゃんとログインプロンプトがでるのですが
2003サーバーで行うとログインプロンプトがでてきてくれません。
なにか特別なことをするのでしょうか?
0460デフォルトの名無しさん2007/05/17(木) 20:27:19
マルチですいません。こっちの方が素早い解答を頂けそうなので引っ越してきました。
初心者です。教えてください。
visualbasic c++を用いて、デスクトップ上にあるエクセルファイルをオープンして、
中に書いてあるデータをreadwriteしてプログラムで解析かけたいんですけど、
デスクトップ上(あるいはパス指定)にあるファイルをopenする方法を教えてください。
よろしくお願いします。
0461デフォルトの名無しさん2007/05/18(金) 00:56:07
>>460
デスクトップの取得はこれな。Desktopに書き換える。
http://www2u.biglobe.ne.jp/~shinta/cbuilder/_BT_Tips_Ctt.htm#SystemfolderwoSyutokusuru

あとはコンポーネントのOffice2kパネルのやつ使えばできるんじゃね?
0462デフォルトの名無しさん2007/05/18(金) 10:48:13
floatを文字にする時に長さを統一する方法を教えてください。
例えば
1.5、20.9とあったばあいに" 1.5"みたいに1.5の前に1つスペースを入れたいのですが
%2.1fとしたときにxx.x形式みたいな、足らないところにスペースを
0463デフォルトの名無しさん2007/05/18(金) 10:52:38
AnsiString::sprintf()
0464デフォルトの名無しさん2007/05/18(金) 14:01:43
>>463
それ知ってたんですがフォーマットのとこは何てかけばいいですか?
少数無しなら"%3.3d"とかしたらスペースはいるんですが
少数がある場合のそこの記述を教えてください
0465デフォルトの名無しさん2007/05/18(金) 14:03:49
今、昔をふっとおもいだした・・・
そういや"%3.1f"ってかいたら最初の3って全部の長さなんだよね・・・
だから普通に"%5.1f"ってかけばいいだけだった・・・

>>463
ありがとう、サックリとできました
0466デフォルトの名無しさん2007/05/18(金) 15:00:47
>>465
std::stringを使うなら面倒だがマニピュレータを使う方法もある。

#include <iostream>
#include <string>
#include <iomanip>

int main()
{
float f1 = 1.5f, f2 = 20.9f;

std::cout << '\'' << std::setw(4) << std::setprecision(3) <<std::setfill(' ') << f1 << "\'\n";
std::cout << '\'' << std::setw(4) << f2 << '\'';
}
0467デフォルトの名無しさん2007/05/19(土) 15:10:15
プロジェクト名ってハイフンついた名前ってダメだよね?
なんで?
0468デフォルトの名無しさん2007/05/19(土) 15:14:07
コマンドラインオプションと間違えるからじゃね
0469デフォルトの名無しさん2007/05/20(日) 07:26:36
NULとかも使えないっすお
0470デフォルトの名無しさん2007/05/22(火) 16:52:34
データベースなんですけどTQueryでEditしてフィールドに値を書いて
Postの際に「ほかのユーザーがレコードを変更したため編集を実行できませんでした.」
ってエラーが出るのですが、どうしたら書き込む事ができますか?
0471デフォルトの名無しさん2007/05/23(水) 11:03:57
UpdateSQLのModifySQで質問ですが
例えばSTATEというフィールドがあってSTATEの値が1なら0にするSQLにしたばあいにエラーになります。
エラーはUpdateエラーとしかでません・・
しかし条件通りSTATEが1のだけちゃんと0になっています。
これを1レコードしかヒットしない条件にするとエラーがでなくなるのですが
Updateでフィールドの値を変更する時は複数レコードだと何故エラーになるのでしょうか?
0472デフォルトの名無しさん2007/05/24(木) 02:09:12
TIFFファイルをImageに読み込みたいのだけどどうするのがいちばん簡単?
BCB5or6orBDS2006の環境のどれかで・・・
プラグイン?
0473デフォルトの名無しさん2007/05/24(木) 08:42:58
つ ttp://www.logicnet.dk/lib/
0474デフォルトの名無しさん2007/05/24(木) 21:53:39
C++Builderで一番使いやすいと思われるXMLパーサ教えれ。
0475デフォルトの名無しさん2007/05/24(木) 23:12:02
C++BuilderでSQLiteを使用するのに
sqlite3.hをincludeしてsqlite3.dllをDLLloadしようと思うんだが
コンパイルするとヘッダー部でエラーが出てコンパイルできないんだが
この回避方法ってありませんか?
0476デフォルトの名無しさん2007/05/24(木) 23:52:20
>>473
ありがと
いいやつだな

でも、試してみたらコレ目的のフォーマット対応してなかった
モノクロTIFFのG4が使いたかったんよ
0477デフォルトの名無しさん2007/05/25(金) 00:05:12
C++Compiler 5.5
ダウンしたらフォルダの中にexeがなかったのですが
どうすればいいでしょうか?・・・
0478デフォルトの名無しさん2007/05/25(金) 00:08:30
>>477
どのURLからなにをダウンロードしたのか正確に教えてもらえないのに
何と答えればいいでしょうか?・・・
0479デフォルトの名無しさん2007/05/25(金) 00:12:53
>>478
http://72.14.235.104/search?q=cache:95Q74q8y9IIJ:www.borland.co.jp/cppbuilder/freecompiler/+Borland+C%2B%2BCompiler+5.5&hl=ja&ct=clnk&cd=1&gl=jp&lr=lang_ja&client=firefox
からBorland C++Compiler 5.5 ダウソしました
0480デフォルトの名無しさん2007/05/25(金) 00:36:44
どっからダウンロードしてんねんw
しかも俺が嫌いなfirefoxユーザかよ。そんな糞ブラウザ使ってるからダメなんだよ、バーカ。


http://www.codegear.com/jp/downloads/free/cppbuilder
こっちからダウンロードしれ。
0481デフォルトの名無しさん2007/05/25(金) 02:21:50
>>480
IE派ですか
0482デフォルトの名無しさん2007/05/25(金) 08:03:01
IE6 のころは opera をメインにしてたけど、IE7がでてからIE7をメインにしてる。
0483デフォルトの名無しさん2007/05/25(金) 09:55:33
>>475
つ http://members.jcom.home.ne.jp/komina/wiki/4243422F53514C69746533A4F2BBEEA4B9.html#i6
これでいいのか分からんが。
0484デフォルトの名無しさん2007/05/25(金) 15:26:26
すみません、教えてください。
メールサーバーを経由せずにメールを送信する方法を教えてください><
0485デフォルトの名無しさん2007/05/25(金) 16:07:08
>>484
印刷してポストに投函しろ
0486デフォルトの名無しさん2007/05/25(金) 16:26:46
><b
0487デフォルトの名無しさん2007/05/25(金) 17:13:20
馬鹿しかいない時間帯でしたね><
0488デフォルトの名無しさん2007/05/25(金) 17:16:31
うんうんそうだね
おやすみぼうや
0489デフォルトの名無しさん2007/05/25(金) 17:30:44
ほら、馬鹿はすぐ釣れる><
0490デフォルトの名無しさん2007/05/25(金) 17:33:33
>>484
郵便局を経由せずに手紙を出す方法を教えてください

と言うことでしょうか?
0491デフォルトの名無しさん2007/05/25(金) 18:20:07
郵便局のポストじゃなくて家のポストに投函すればいいじゃん。
家のポストは郵政公社の占有物ではないから。
0492デフォルトの名無しさん2007/05/25(金) 18:21:14
意味すら理解できない馬鹿共はレスしないで下さい><
0493デフォルトの名無しさん2007/05/25(金) 18:29:02
釣りでないならメールのしくみから勉強してこい
0494デフォルトの名無しさん2007/05/25(金) 18:38:58
送信にしろ受信にしろメールサーバを使うからな
ローカルに鯖を設置するにしろさ
0495デフォルトの名無しさん2007/05/25(金) 18:42:49
どうやらここはとてもレベルが低いところみたいです><

メールサーバーを使わないと絶対送受信ができないと思い込んでる馬鹿か
それしか知らない馬鹿しかいない場所・・・><

ごめんなさい釣りじゃないんだけどお前ら馬鹿がただ知らないだけなんです><
お前らは悪くないよ!無知なだけなんだから><

もっとレベルが高いところで聞いてきます><
0496デフォルトの名無しさん2007/05/25(金) 18:52:56
RFC読んでから罵倒しろよなw
0497デフォルトの名無しさん2007/05/25(金) 18:54:03
明らかに、解ってる連中にからかわれてるだけなんだが
これだからゆとりは
0498デフォルトの名無しさん2007/05/25(金) 18:57:01
全然わかってないとおもうよw><
0499デフォルトの名無しさん2007/05/25(金) 19:04:51
がんばってプロトコルを手打ちしてくれ
0500デフォルトの名無しさん2007/05/25(金) 19:08:38
500><
0501デフォルトの名無しさん2007/05/25(金) 19:11:08
本日一番の馬鹿がいるスレはここで決まりだな
0502デフォルトの名無しさん2007/05/25(金) 19:38:43
これはあれだ、P2Pメッセンジャーの話をしていたんだ
ということでスカイプでも使えば?BCB製だし。
0503k2007/05/25(金) 21:15:14
設定はちゃんとできているはずなのに、コンパイラできません。

Borland C++ 5.5.1 for Win32 Copyright (c) 1993,2000 Borland
hello.c:
Turbo Incremental Link 5.00 Copyright (c) 1997,2000 Borland

と出ます。
私はTepa Editorというテキストソフトを使いたいのですが、
何故かファイルを開くと、秀丸で開かれてしまいます。
秀丸は最初から入っていたのですが、お金を払っていないためどうしていいのか
わかりません。

どなたか助けてください。・゚・(ノД`)・゚・。 うえええん
0504デフォルトの名無しさん2007/05/25(金) 21:18:38
ネタはネタスレでやれ
0505k2007/05/25(金) 21:21:10
すみませんでした(__;
他で聞いてみます
0506デフォルトの名無しさん2007/05/25(金) 23:10:52
本当にここがプログラム板なのかと疑いたくなるようなスレだな
0507デフォルトの名無しさん2007/05/26(土) 00:26:03
>>480
遅くなってすいません。ありがとうございました
0508デフォルトの名無しさん2007/05/26(土) 00:55:44
VS2005を友達にコピーしてもらいましたが・・・並みのレスだな
0509デフォルトの名無しさん2007/05/26(土) 08:21:50
ビンに入れて海に流しましたが翌日には砂浜に打ち上げられていました
0510デフォルトの名無しさん2007/05/26(土) 09:02:21
なんつーか、SMTPサーバーくらい自分で作れない人が何騒いでるんでしょうねぇ・・・


作り終わってからOB25BLOCKが発覚して泣く泣くボツにしたけどな。。。orz
0511デフォルトの名無しさん2007/05/26(土) 11:31:08
つまり >>495 は本物のリアル馬鹿だったという結論が出たようですね。
0512デフォルトの名無しさん2007/05/26(土) 12:10:58
釣れなくて釣り宣言しちゃう釣り師は無様だな
0513デフォルトの名無しさん2007/05/26(土) 15:45:43

   , -‐−-、  ヽ∧∧∧ //  |
.  /////_ハ ヽ< 釣れた!> ハ
  レ//j け ,fjlリ / ∨∨V ヽ  h. ゚l;
 ハイイト、"ヮノハ     //   |::: j  。
  /⌒ヽヾ'リ、     //     ヾ、≦ '
. {   j`ー' ハ      // ヽ∧∧∧∧∧∧∨/
  k〜'l   レヘ.   ,r'ス < 初めてなのに >
  | ヽ \ ト、 ヽ-kヾソ < 釣れちゃった!>
.  l  \ `ー‐ゝ-〈/´   / ∨∨∨∨∨∨ヽ
  l     `ー-、___ノ
  ハ   ´ ̄` 〈/‐-、
0514デフォルトの名無しさん2007/05/28(月) 15:41:55
DelphiとBCB 2007のバージョンアップの案内が来た・・・
もう出すのか と まだ出すのか って気分だ・・・
0515デフォルトの名無しさん2007/05/28(月) 16:01:26
ウチにも来た。これって2006でDelphiとBCBを統合パッケージにしたのに
また別々に戻すってことみたいね
0516デフォルトの名無しさん2007/05/28(月) 18:17:20
バージョンアップするか迷ってる
0517デフォルトの名無しさん2007/05/28(月) 18:19:40
今回の目玉はVista対応だけでしょ?
0518デフォルトの名無しさん2007/05/28(月) 18:32:06
ユニコード対応とかどうなってるんだろ?
どこかに詳細情報ないかな?

↓オフィシャル情報だけだと詳細が分からん
http://www.codegear.com/jp/article/36469
05195162007/05/28(月) 18:51:44
Ver.5で止まっているから
0520デフォルトの名無しさん2007/05/28(月) 18:55:24
お布施するか・・・・・どうせ無駄金になりそうだが
0521デフォルトの名無しさん2007/05/28(月) 19:37:16
>>520
俺も製品を使うことが目的じゃなくてお布施目的で購入しようと思ってる。
0522デフォルトの名無しさん2007/05/28(月) 19:49:01
おい豚共よ2007ってどうなのよ?
0523デフォルトの名無しさん2007/05/28(月) 20:58:57
Vista当分使う予定のない俺はまだまだBCB6で十分でしょうか
0524デフォルトの名無しさん2007/05/28(月) 21:02:29
>>523
個人使用のプログラム開発オンリーならおk
0525デフォルトの名無しさん2007/05/28(月) 21:14:50
BCCの少しでも新しいバージョンが欲しいからお布施します。
本体の方は多分ほとんど使わないだろうなあ・・・馬鹿な俺
0526デフォルトの名無しさん2007/05/28(月) 22:33:05
結局BDSが失敗だったつう判断かね


とりあえず、ヘルプがまともに使えるようになっていることキボン
0527デフォルトの名無しさん2007/05/28(月) 23:07:27
C++Builder6からBDSにアップデートしてC++Builderとしてしか使ってないから、
C++Builderに戻ろうかな…悩む…。
BDSも継続してアップデートされるのなら、別にBDSでも構わないんだけど…
0528デフォルトの名無しさん2007/05/29(火) 02:03:22
なんでBDS2006からのバージョンアップで
Delphi+Builder==63000円なんだ
0529デフォルトの名無しさん2007/05/29(火) 06:57:49
うちにもハガキが届いた。

Delphi7,C++Builder6以降は、方向性が揺れて、社員、開発担当も四散していったようだし
商品の品質もどんどんグレードダウンって感じだから、パス!

もし使う機会があるなら、手元にあるDelphi7かBCB6。でも、さしあたりVS2005を使っちゃいそう。
0530デフォルトの名無しさん2007/05/30(水) 07:58:53
31500円...お布施しようかどうか迷うな
0531デフォルトの名無しさん2007/05/30(水) 13:30:35
格段に機能アップしてれば買いだけどBDSからの時間を考えてもやっぱりVistaに対応させただけだろうね
今回はパスかなあ
0532デフォルトの名無しさん2007/05/30(水) 15:46:27
最新に準拠ということはC99もつかえるのかな?
それと64ビットプログラムの開発はできるのだろうか?
0533デフォルトの名無しさん2007/05/30(水) 15:48:42
>>532
両方とも無理に決まっとる
0534デフォルトの名無しさん2007/05/30(水) 16:43:24
長文失礼。MPEG4のAVIファイルをポーズ中、任意時刻の静止画を表示したい。エラーは関数CreateDIBitmap()で発生しているようです。 だれか助けてくれです。たまには家に帰して欲しいし。
Graphics::TBitmap* bmpCap; IMediaDet *pMdaDet; IMediaSeeking *pMdaSeek;
GetImageFromMPG(Image1->Picture->Bitmap,"d:\\file.avi");

void __fastcall TForm1::GetImageFromMPG(Graphics::TBitmap* bmp,AnsiString FileName) {
wchar_t* pwcFileName; wchar_t pcFileName[50];
pwcFileName = FileName.WideChar(pcFileName, sizeof(pcFileName));
pMdaDet->put_CurrentStream(0); pMdaDet->put_Filename(pwcFileName);
long Size;hRslt = pMdaDet->GetBitmapBits(0, &Size, 0, 640, 480);
if (SUCCEEDED(hRslt)) {
char *pBuffer = new char[Size];
pMdaSeek-> SetTimeFormat(&(TIME_FORMAT_MEDIA_TIME));
LONGLONG pStillCurrent,pStillStop;pMdaSeek->GetPositions(&pStillCurrent,&pStillStop);
double StreamTime = double(pStillCurrent)/10000000.0;
pMdaDet->GetBitmapBits(StreamTime, 0, pBuffer, bmpWidth, bmpHeight);
HDC hdcDest = GetDC(bmp->Handle); //ここから表示処理
if(hdcDest != NULL) {
HBITMAP hBitmap;
BITMAPINFOHEADER *bmih = (BITMAPINFOHEADER*)pBuffer;
void *pData = pBuffer + sizeof(BITMAPINFOHEADER);
BITMAPINFO bmi; ZeroMemory(&bmi, sizeof(BITMAPINFO));
CopyMemory(&(bmi.bmiHeader), bmih, sizeof(BITMAPINFOHEADER));
hBitmap = CreateDIBitmap(hdcDest, bmih, CBM_INIT,pData, &bmi, DIB_RGB_COLORS);
if(hBitmap!=NULL) { //ここからが一番あやしい
bmpCap->Handle = hBitmap;
bmp->Assign(bmpCap); }
ReleaseDC(bmp->Handle,hdcDest);
DeleteObject(hBitmap);
delete[] pBuffer;
}}
0535デフォルトの名無しさん2007/05/31(木) 08:15:20
せめて全角スペースでインデントくらいしようよ
0536デフォルトの名無しさん2007/05/31(木) 08:19:00
で、とりあえずIMediaDet::GetBitmapBitsはS_OK返してるのかい?
戻り値見てないようだけど。
■ このスレッドは過去ログ倉庫に格納されています