トップページtech
985コメント281KB

くだすれC++Builder(超初心者用)その4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/10/23(金) 09:06:16
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。

Embarcadero Home Page
http://www.codegear.com/jp/

<過去スレ>
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/l50

くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/l50

くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/

<兄妹スレ>
くだすれDelphi(超初心者用)その50
http://pc12.2ch.net/test/read.cgi/tech/1246340765/l50
0002デフォルトの名無しさん2009/10/24(土) 04:05:23
C++Builderは64ビットWindows7に対応していますか?
0003デフォルトの名無しさん2009/10/24(土) 11:17:02
2010ならOK。2007/2009はIDEのデバッガ周りにバイナリパッチが必要。
0004デフォルトの名無しさん2009/10/25(日) 11:26:23
TurboC++6.0で使えるDirectXって7版?
0005デフォルトの名無しさん2009/10/26(月) 14:07:46
TChartのTPointSeriesで各々のポイントのマーカーの値を任意の文字で表示したいのですが
どうやってやればいいのですか?
0006デフォルトの名無しさん2009/10/26(月) 22:58:46
完全に任意に、ってのはできなさそうに見えるけど。それらしいイベントもプロパティもないんで。
0007デフォルトの名無しさん2009/10/27(火) 09:41:01
64ビットプログラムが作れるようになるのは次のバージョンからですか?
0008デフォルトの名無しさん2009/10/27(火) 10:00:53
>>6
そうなんですよね、プロパティ等がみつからなかったので
ちなみにAddXYする時にラベルを指定できるんですが
これ指定しちゃうと確かにマーカーは指定したのになるんですが
軸もしれになっちゃうんですよね・・・
そこさえなんとかできればいいんですが・・・
0009デフォルトの名無しさん2009/10/28(水) 17:05:39
0010デフォルトの名無しさん2009/10/31(土) 00:04:03
c++builder6のstdoutはどういう扱いなのでしょうか?
配布されているライブラリ内で結果をstdoutに出力する関数があり、
その結果をc++builder側で受け取りたいのですが方法がわかりません。
(stdoutへの出力を横取りしたい。)
どなたかアドバイスお願いします。
0011デフォルトの名無しさん2009/10/31(土) 00:13:33
パイプかなんかを使うんじゃなかったっけ?delphi stdoutかなんかでぐぐれ。
0012デフォルトの名無しさん2009/11/03(火) 00:09:05
int a[100]という配列を用意して、実際に使っているのは20個だとします。
この場合何個使ってるか調べる方法はありますか?
0013デフォルトの名無しさん2009/11/03(火) 00:13:40
調べるも何も20個だろ
0014デフォルトの名無しさん2009/11/03(火) 00:15:31
あ、書き方が変でした。。
int a[100]という配列があってその内何個使っているか調べたいときです。
20個とかはわからないと仮定してです。。
0015デフォルトの名無しさん2009/11/03(火) 00:19:21
立て続けで申し訳ないのですが、
sizeof(a)だと100個になってしまうのでしょうか?
0016デフォルトの名無しさん2009/11/03(火) 00:20:18
何個使うかはプログラム次第だろ
カウンタで使用している数を記録させるか、別にフラグ用の配列を用意するかだろ
0017デフォルトの名無しさん2009/11/03(火) 00:25:21
vector
0018デフォルトの名無しさん2009/11/04(水) 09:53:40
v
0019デフォルトの名無しさん2009/11/04(水) 09:55:42
>>15
それだとintはOSに依存すっし
個数だけなら
count = sizeof(a) / sizeof(int);
まあこうだろうな
何個使ってるとかっつーのをカウントするのは不可
0020デフォルトの名無しさん2009/11/04(水) 10:37:57
使用している使用していないの基準て何なの?
0021デフォルトの名無しさん2009/11/04(水) 17:39:40
「プロジェクトオプション」の「バージョン番号を含める」ってとこで
「ビルド番号の自動更新」て項目にチェックを入れたところ、
ブレークポイントで止めたとき「ソースが変更されました。再構築しますか?」
って必ず一回聞かれるようになっちゃうんだけど、同じ症状出てる人いない?
バージョンは RAD Studio 2010で。
0022デフォルトの名無しさん2009/11/04(水) 17:43:58
TChartで印刷するときPrintPartialCanvasを使ってるんですが
これ背景が黒でもラインによってはちゃんと背景を白で印刷してくれる時があるんですが
強制的に白にするにはどうしたらいいですか?
さすがに真っ黒だとインクがエロい事になるので・・・
0023デフォルトの名無しさん2009/11/05(木) 15:08:16
>>21
ああ、そうなるな。これ、ウゼェ。
0024デフォルトの名無しさん2009/11/05(木) 15:24:49
無限ループwww
0025デフォルトの名無しさん2009/11/05(木) 15:33:20
>>21
QCに書いとけ
そうじゃないと次のUpdateに反映されんぞ
0026212009/11/06(金) 14:42:16
みんな再現するようだね、サンクス。
>>25
QC…、おぅこんな機能用意されてんだな、ありがとう。
英語の復習から始めるとして…
つかメニューの箇所を説明すんのに日本語版のメニュー名じゃダメだよな?
投稿までに何日掛かるかわからんが空いた時間に調べてみるか…(汗)
0027デフォルトの名無しさん2009/11/08(日) 21:28:15
ちょっと前に無料で配られていたTurboC++BuilderExplorerでは
Windows7 64bitでデバッガを使うのはもはや無理ですか?
0028デフォルトの名無しさん2009/11/14(土) 20:53:58
BDS2006にて
フォームにTWebBrowserを貼り付けただけの、ごくごく単純なプログラム
http://contents.shopping.yahoo.co.jp/points/campaign/pointlot01/
上記をNavigateして開いて
「ポイントくじに今すぐチャレンジ」をクリックすると
画面表示が99%くらいで、必ずプログラムが終了してしまう。
これって、どうにかならないでしょうか
0029デフォルトの名無しさん2009/11/14(土) 22:11:27
デバッガでデバッグ。
0030282009/11/14(土) 22:20:48
IEコンポの内部で何かが発生して
プログラムが強制終了になってしまうので
デバッグしょうがないのです。
0031デフォルトの名無しさん2009/11/15(日) 00:09:39
なんか根本的なところが間違ってる、とまではいわないまでも、考え違いをしているような気がする。
もういちどスタートラインに戻って考え直してみてはいかが?
0032282009/11/15(日) 00:25:49
プログラムは
フォームにTWebBrowserを貼り付けて
WebBrowser1->Navigate(ぱらーめーた);しているだけです。
ただこれだけなのですよ
何を考え直すのでしょうか???BDS2006を使うなとかですか?
「ポイントくじに今すぐチャレンジ」をクリックすると落ちてしまい
それ以外だと、無問題です。
IEでブラウズすると問題なく動きます。
0033デフォルトの名無しさん2009/11/15(日) 00:33:15
>32
コピペにマジレス
0034デフォルトの名無しさん2009/11/15(日) 01:22:05
それだけではなんなので。
つ ttp://www33.ocn.ne.jp/~takoyakusi/delphi/InternetProg.html
0035デフォルトの名無しさん2009/11/17(火) 17:46:38
おい、質問するぞ、誰かいねーのか!!
0036デフォルトの名無しさん2009/11/17(火) 19:02:49
<>
0037デフォルトの名無しさん2009/11/17(火) 23:08:04
質問どうぞ
0038デフォルトの名無しさん2009/11/19(木) 22:07:33
自作コンポーネントを使うと #pragma link が必要になるんだけど
通常のコンポーネントのように #pragma link なしでいいようにパッケージを作るにはどうしたら良いんですか?
0039デフォルトの名無しさん2009/11/22(日) 21:16:45
BCBのメーリングリストってもうなくなっちゃったんですか?

↓は登録したけど全然投稿がないみたいだし...
http://ns8.sfdata.ne.jp/cgi-bin/mailman/listinfo/cbuilder
0040デフォルトの名無しさん2009/11/24(火) 08:48:45
unicode対応のプログラムはどのようにして作ればよいのでしょうか?
0041デフォルトの名無しさん2009/11/24(火) 09:06:36
もっと具体的に質問してください
0042デフォルトの名無しさん2009/11/24(火) 09:16:51
日本語版C++Builderでコンパイルした場合、
そのソフトを英語版Windowsで実行すると、エラーメッセージダイアログなどが
文字化けします。どのWindowsで実行しても文字化けしないようunicode対応で
プログラムを組みたいのですが、その方法を教えてください。
0043デフォルトの名無しさん2009/11/24(火) 09:31:53
ttp://journal.mycom.co.jp/articles/2009/06/05/Windowsapi/index.html
0044デフォルトの名無しさん2009/11/24(火) 18:45:43
TBitmapをDIB(ヘッダ無しで色データ配列のみ)に変換する方法を教えてください。。
0045デフォルトの名無しさん2009/11/25(水) 01:40:37
C++Builder 2007で作ったexeをWindows7で実行していますが問題が発生しています。

処理内容は、TCustomControlから派生したコントロールをTScrollBox内に設置して、上下左右に
スクロールさせています。

XP,Vistaでは、コントロールのHeightに65536以上の値を設定しても問題ない
のですが、Windows 7では65536以上を指定しても65535になってしまいます。

これはWindows7の非互換の問題でしょうかね。それとも65536以上を指定して
動いていた今までの動作が例外的だったのでしょうか。

悩んでます。よろしくです。
0046デフォルトの名無しさん2009/11/25(水) 03:45:02
C++Builderを始めようと思いますが、未来はありますか?
0047デフォルトの名無しさん2009/11/25(水) 06:44:12
あるんじゃない?
2009じゃなくて2010にしたほうが良いよ
0048デフォルトの名無しさん2009/11/25(水) 07:10:18
>45
互換モードで動作させたらどうなるの?とはいえ
> これはWindows7の非互換の問題でしょうかね。
だろうね。
0049デフォルトの名無しさん2009/11/25(水) 15:41:52
TGA形式の画像をTBitmapに変換する方法を教えてください
0050デフォルトの名無しさん2009/11/25(水) 15:51:58
つ ttp://www.efg2.com/Lab/Library/Delphi/Graphics/FileFormatsAndConversion.htm
0051デフォルトの名無しさん2009/11/25(水) 16:15:57
何この糞見づらいページは

怪しいライブラリを使わないで変換する方法を教えてください
0052デフォルトの名無しさん2009/11/25(水) 18:18:07
自分で作れ
0053デフォルトの名無しさん2009/11/25(水) 20:01:24
Susie pluginって手もある。
0054デフォルトの名無しさん2009/11/25(水) 23:31:03
>>48
 XP互換モードでもダメでした。

スクロールビューの中にコントロールを置いて、上下左右スクロールをさせる作りのアプリは
多そうだけど、非互換でいいのだろうか・・

Vistaからの最適化の中で切られたんだろなぁ。Windows7 SP1で直ればいいけど。
0055デフォルトの名無しさん2009/12/05(土) 11:30:08
>>28
カメだがBCB6でもTurboCでもXPなら落ちる
2000なら落ちない
Silverlightとの相性が悪いとおもっているが原因不明
0056デフォルトの名無しさん2009/12/07(月) 19:22:33
すいません、素人くさい質問ですが

TStringList *plist[100] ;

for ( int i = 0 ; i < 100 ; i ++ )
plist[i] = new TStringList ;

とやった場合は、delete [] を使うの?
それとも delete plist[i] のループを回すべき?

plist 配列はその時々に応じて確保される配列数が 50 だったり、20 だったりするのですが、どっちで delete すべきでしょうか?
0057デフォルトの名無しさん2009/12/07(月) 20:53:21
boost::shared_ptrで包んでstd::vectorにでも放り込んでおけ

もしくは普通にnewしてboost::ptr_vectorな
0058デフォルトの名無しさん2009/12/07(月) 21:31:41
>>56
delete plist[i] のループを回す
0059デフォルトの名無しさん2009/12/08(火) 03:12:34
ここはくだすれ...

>plist 配列はその時々に応じて確保される配列数が 50 だったり、20 だったりするのですが、どっちで delete すべきでしょうか?
ならば、plist 自体を動的に確保したら?

olist = new TStringList[50];

そうすれば

delete [] plist;

で、plist のメモリ解放を行う直前に、個々の TStringList のデストラクタも呼ばれる。

ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1317759688
ttp://www.sist.ac.jp/~suganuma/learn/2-bu/6-sho/6-4/6-4.htm
0060デフォルトの名無しさん2009/12/08(火) 11:24:25
C++ Builder 2009 Pro (Electronic Software Delivery)
$98.98 安いよー
http://www.journeyed.com/item/Embarcadero/C%2B%2B+Builder/100964379
0061デフォルトの名無しさん2009/12/08(火) 12:22:03
>>60
>Academic Proof Required

安くない
0062デフォルトの名無しさん2009/12/08(火) 18:06:56
BCB6から2010へプロジェクトを移行したのですが、
↓文字を扱っている箇所でエラー(const char*はconst wchar_t*に変換できない)が発生します。

Application->MessageBox("AAA");

試した事は
1,プロジェクトオプションの「_TCHARマップ先」をwchar_tに変更
2,#define USTRING_AS_WCHART としてみた。

他に何か必要なのでしょうか?
アドバイスお願いします。
0063デフォルトの名無しさん2009/12/08(火) 18:50:24
L"AAA"
0064622009/12/08(火) 20:23:03
>>63

アドバイス有り難うございます。
L"AAA"で修正できましたが、個別に該当する箇所を修正する方法では無く、
プロジェクト全体にまとめて適用できる様な方法はないでしょうか?
0065デフォルトの名無しさん2009/12/09(水) 03:25:38
>プロジェクト全体にまとめて適用できる様な方法はないでしょうか?
ありません。

C / C++ 言語では文字型リテラルには型が付いています。
コード上で明示的に char か wchar_t (最近のだと wchar16_t と wchar32_t もあります) で有ることを指定する必要が有ります。
文字列リテラルがメモリの初期化の簡便記法でしかなかったころの歴史的名残です。

対するに Delphi の文字リテラルは評価するときに型が決まるので記法上は一種類しか有りません。
0066デフォルトの名無しさん2009/12/09(水) 05:04:03
文字列置換ツールで置換してしまえば、いいじゃん。

0067デフォルトの名無しさん2009/12/09(水) 06:42:05
無条件に全置換すると、char* を必要としているところでエラーとなるよ。
2010 になってもデフォルトでは UNICODE マクロが付かないので(過去との互換性の問題かな)
_T マクロは役に立たないし。

このコンパイルエラーが出るところが、BCB6 からの一番の変更点なので、
手を抜かずに全部確認した方が、後でバグが出て泣くより正しい道だと思います。

0068622009/12/09(水) 10:10:02
アドバイス有り難うございます。
手を抜かずに個別に修正したいと思います。
0069622009/12/10(木) 16:45:46
またまた教えてください。

外部DLLの関数を呼び出す時にchar*を渡すのですが、
2010ではエラー(const char*はconst wchar_t*に変換できない)が出ます。
2番目の引数にこれはcharだよと明示しないといけないと思うのですがどうすれば良いのでしょうか?

//BCB6で動作している記述
Tcl_CreateCommand( interp, "ABC", ( Tcl_CmdProc * )ABC_Proc, ( ClientData )NULL, ( void (*)())NULL );

//関数宣言
Tcl_Command Tcl_CreateCommand( Tcl_Interp interp,
char *cmdName,
Tcl_CmdProc proc,
ClientData clientData,
Tcl_CmdDeleteProc deleteProc);
0070デフォルトの名無しさん2009/12/10(木) 18:57:08
つうか、第3引数の型は、[ Tcl_CmdProc ] ? それとも [ Tcl_CmdProc* ] ?
0071デフォルトの名無しさん2009/12/10(木) 22:02:24
Visual c++でプログラムを書いて、コンパイルしました。
Unixでいうscriptで実行結果を出力したいのですが、どうしたらいいでしょうか?
0072デフォルトの名無しさん2009/12/10(木) 22:18:11
頑張ってください。
0073デフォルトの名無しさん2009/12/11(金) 05:42:43
C/C++ コンパイラとしての機能は 6 も 2010 も同じなので、
VCL が絡まなければ、違いは出てこないはずです。
少なくとも char と wchar_t に関しては変更は有りません。

提示されているコードではエラーは出るはずが無いので、何とも解説/回答できませぬ。

エディタ上で Tcl_CreateCommand と打った後コード支援で出てくる引数のプロトタイプを
確認することを勧めます。
もしそこで表示される第二引数 cmdName の型が char * ではなく wchar_t * だとしたら、
ヘッダファイルや関数定義を見直してください。
0074デフォルトの名無しさん2009/12/11(金) 06:07:05
>C/C++ コンパイラとしての機能は 6 も 2010 も同じ
これはウソでしょう
0075デフォルトの名無しさん2009/12/11(金) 07:44:09
くだすれだから勘弁してくれな > 74

バグ修正や C++0X 規格の一部先取り以外で
C/C++ コンパイラとしてどこら辺が変わったのかまとめてくれるとありがたいぞ > 74
0076622009/12/11(金) 10:16:16
>>73

御指摘頂いたように宣言を見直したら第2引数ではなく第5引数に誤りがありました。
思い込みで作業していたようで大変助かりました。
有り難うございました。
0077デフォルトの名無しさん2009/12/11(金) 15:51:15
いえいえ。お礼はいりませんよ。
0078デフォルトの名無しさん2009/12/16(水) 14:10:13
TBitmapにOutTextで文字を書いた時に
この文字に指定ドット数で輪郭をつけたいのですがどうやったらいいですか?
元の文字はそのままで文字の外側につけたいので文字が指定ドット分大きくなるイメージなのですが。。
0079デフォルトの名無しさん2009/12/18(金) 21:54:01
ウインドウの大きさが可変なダイアログを作ろうとして
BorderStyle=bsSizeable; にしました。
これで、大きさは変更できるようになったのですが
ウインドウの右下の角に、サイズ変更可の印が出てくれません。
印を出すには、どうすれば良いでしょうか。
0080デフォルトの名無しさん2009/12/19(土) 08:44:20
>>79
TStatusBarを配置する
0081デフォルトの名無しさん2009/12/19(土) 12:31:51
TStatusBarを配置しました。
マークが出ましたが
とても間抜けなダイアログボックスになりました。
0082デフォルトの名無しさん2009/12/22(火) 04:00:09
できたのだからよいではないか
0083デフォルトの名無しさん2010/01/07(木) 20:51:36
getlineでファイルから
商品名,2009/11/2
にのようになってる行を読み取り、商品名、西暦、月、日をそれぞれ別の変数に格納したいです。
getlineでどのように書けばできるのでしょうか?
0084デフォルトの名無しさん2010/01/07(木) 22:21:41
俺なら','をstrchrで探して前半を切り出し
後半はsscanfでまとめて取得するかな。
0085デフォルトの名無しさん2010/01/08(金) 08:20:45
>>83
俺ならstd::tr1::regexで取得するかな。
0086デフォルトの名無しさん2010/01/08(金) 18:50:47
例外の発生したアドレスをExceptionクラスから受け取ることってできないんですか?
そのような情報を取得する方法ってないのでしょうか?
0087デフォルトの名無しさん2010/01/13(水) 14:43:58
C++builder2010って64ビットに対応してる?
0088デフォルトの名無しさん2010/01/13(水) 16:07:54
してない。
2011年夏の予定
0089デフォルトの名無しさん2010/01/13(水) 16:19:10
そんなあ><
0090デフォルトの名無しさん2010/01/13(水) 19:26:30
 ま た お ま え か 
0091デフォルトの名無しさん2010/01/19(火) 02:01:43
.resを作った後、そのリソースをexeにくっつけて
コンパイルするにはどう記述すればいいの?
0092デフォルトの名無しさん2010/01/19(火) 06:25:38
>ilink32.exe
と打ってコマンドラインのヘルプを確認しましょう。

bcc32.exe の引数に、.res ファイルを書く事もできます。できるはず。
0093デフォルトの名無しさん2010/01/19(火) 13:14:02
つーか、プロジェクトにres放りこんどけと
0094デフォルトの名無しさん2010/01/19(火) 14:26:28
知らないならレスしないで下さい><
0095デフォルトの名無しさん2010/01/19(火) 20:46:18
 ま た お ま え か 
0096デフォルトの名無しさん2010/01/23(土) 08:24:17
ActiveXに関する質問なんですが、
VCのMFCでtypelib追加ウィザードで作成されたクラスには
LPDISPATCH型をパラメータにしたコンストラクタがあって、
そこにVARIANT変数のpdispVal等を使用して作成していたのですが、

BCB6でタイプライブラリの取り込みを行った際、
そのLPDISPATCH型をパラメータにしたコンストラクタがなくなって
コンストラクタには「TComponent* owner」になってしまいました。

LPDISPATCHをそのクラスに設定するにはどのようにすればいいでしょうか?
0097デフォルトの名無しさん2010/01/23(土) 11:05:26
10年前の BCB6 だとサポートできない機能があると思いますが
たぶん何とかなるとおもいます。

取り込み元 ActiveX の Typelib の定義を見せてください

あと、BCB 側のプロジェクトディレクトリに、インポートのログファイルが落ちていませんかね?
0098デフォルトの名無しさん2010/01/23(土) 11:25:09
初歩的な質問で恐縮です。
BCB6のプログラム中でフォントを指定したいのですが,例えば
Image1->Canvas->Font->Name="CourierNew";
Image1->Canvas->TextOutA(10, 10, "ABC") ;
と書いても,デフォルトのフォントのままの文字が現れて,変ってくれま
せん。となたか解決方法をお教え下されば幸です。
因みにフォントのサイズやスタイルは,
Image1->Canvas->Font->Size=16;
Image1->Canvas->Font->Style=TFontStyles() << fsBold;
Image1->Canvas->Font->Style=TFontStyles() << fsItalic;
で変えられます。
0099デフォルトの名無しさん2010/01/23(土) 11:43:49
Image1->Canvas->Font->Charsetを変えてみる
0100デフォルトの名無しさん2010/01/23(土) 12:02:21
BDS2006を使っています。
TSimpleEvent *event=new TSimpleEvent();
とするとエラーになります。
ヘルプを見ると、コンストラクタは引数なしなので
これで良さそうなのですが、どうも原因がわかりません。
TSimpleEventはどう使えばいいのでしょうか。
0101デフォルトの名無しさん2010/01/23(土) 12:28:36
それでいいはずだから、
#include <SyncObjs.hpp>
か?必ずエラーの内容書こうぜ。
■ このスレッドは過去ログ倉庫に格納されています