1 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 09:06:16 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 C++Builder使いが優しくコメントを返しますが、 お礼はC++Builderの布教と初心者の救済をお願いします。 Embarcadero Home Page www.codegear.com/jp/ <過去スレ> くだすれC++Builder(超初心者用) pc8.2ch.net/test/read.cgi/tech/1117225464/l50 くだすれC++Builder(超初心者用)その2 pc10.2ch.net/test/read.cgi/tech/1144308804/l50 くだすれC++Builder(超初心者用)その3 pc11.2ch.net/test/read.cgi/tech/1171219191/ <兄妹スレ> くだすれDelphi(超初心者用)その50 pc12.2ch.net/test/read.cgi/tech/1246340765/l50
2 名前:デフォルトの名無しさん [2009/10/24(土) 04:05:23 ] C++Builderは64ビットWindows7に対応していますか?
3 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:17:02 ] 2010ならOK。2007/2009はIDEのデバッガ周りにバイナリパッチが必要。
4 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 11:26:23 ] TurboC++6.0で使えるDirectXって7版?
5 名前:デフォルトの名無しさん [2009/10/26(月) 14:07:46 ] TChartのTPointSeriesで各々のポイントのマーカーの値を任意の文字で表示したいのですが どうやってやればいいのですか?
6 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 22:58:46 ] 完全に任意に、ってのはできなさそうに見えるけど。それらしいイベントもプロパティもないんで。
7 名前:デフォルトの名無しさん [2009/10/27(火) 09:41:01 ] 64ビットプログラムが作れるようになるのは次のバージョンからですか?
8 名前:デフォルトの名無しさん [2009/10/27(火) 10:00:53 ] >>6 そうなんですよね、プロパティ等がみつからなかったので ちなみにAddXYする時にラベルを指定できるんですが これ指定しちゃうと確かにマーカーは指定したのになるんですが 軸もしれになっちゃうんですよね・・・ そこさえなんとかできればいいんですが・・・
9 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 17:05:39 ]
10 名前:デフォルトの名無しさん [2009/10/31(土) 00:04:03 ] c++builder6のstdoutはどういう扱いなのでしょうか? 配布されているライブラリ内で結果をstdoutに出力する関数があり、 その結果をc++builder側で受け取りたいのですが方法がわかりません。 (stdoutへの出力を横取りしたい。) どなたかアドバイスお願いします。
11 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 00:13:33 ] パイプかなんかを使うんじゃなかったっけ?delphi stdoutかなんかでぐぐれ。
12 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:09:05 ] int a[100]という配列を用意して、実際に使っているのは20個だとします。 この場合何個使ってるか調べる方法はありますか?
13 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:13:40 ] 調べるも何も20個だろ
14 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:15:31 ] あ、書き方が変でした。。 int a[100]という配列があってその内何個使っているか調べたいときです。 20個とかはわからないと仮定してです。。
15 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:19:21 ] 立て続けで申し訳ないのですが、 sizeof(a)だと100個になってしまうのでしょうか?
16 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:20:18 ] 何個使うかはプログラム次第だろ カウンタで使用している数を記録させるか、別にフラグ用の配列を用意するかだろ
17 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 00:25:21 ] vector
18 名前:デフォルトの名無しさん [2009/11/04(水) 09:53:40 ] v
19 名前:デフォルトの名無しさん [2009/11/04(水) 09:55:42 ] >>15 それだとintはOSに依存すっし 個数だけなら count = sizeof(a) / sizeof(int); まあこうだろうな 何個使ってるとかっつーのをカウントするのは不可
20 名前:デフォルトの名無しさん [2009/11/04(水) 10:37:57 ] 使用している使用していないの基準て何なの?
21 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 17:39:40 ] 「プロジェクトオプション」の「バージョン番号を含める」ってとこで 「ビルド番号の自動更新」て項目にチェックを入れたところ、 ブレークポイントで止めたとき「ソースが変更されました。再構築しますか?」 って必ず一回聞かれるようになっちゃうんだけど、同じ症状出てる人いない? バージョンは RAD Studio 2010で。
22 名前:デフォルトの名無しさん [2009/11/04(水) 17:43:58 ] TChartで印刷するときPrintPartialCanvasを使ってるんですが これ背景が黒でもラインによってはちゃんと背景を白で印刷してくれる時があるんですが 強制的に白にするにはどうしたらいいですか? さすがに真っ黒だとインクがエロい事になるので・・・
23 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 15:08:16 ] >>21 ああ、そうなるな。これ、ウゼェ。
24 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 15:24:49 ] 無限ループwww
25 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 15:33:20 ] >>21 QCに書いとけ そうじゃないと次のUpdateに反映されんぞ
26 名前:21 mailto:sage [2009/11/06(金) 14:42:16 ] みんな再現するようだね、サンクス。 >>25 QC…、おぅこんな機能用意されてんだな、ありがとう。 英語の復習から始めるとして… つかメニューの箇所を説明すんのに日本語版のメニュー名じゃダメだよな? 投稿までに何日掛かるかわからんが空いた時間に調べてみるか…(汗)
27 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 21:28:15 ] ちょっと前に無料で配られていたTurboC++BuilderExplorerでは Windows7 64bitでデバッガを使うのはもはや無理ですか?
28 名前:デフォルトの名無しさん [2009/11/14(土) 20:53:58 ] BDS2006にて フォームにTWebBrowserを貼り付けただけの、ごくごく単純なプログラム contents.shopping.yahoo.co.jp/points/campaign/pointlot01/ 上記をNavigateして開いて 「ポイントくじに今すぐチャレンジ」をクリックすると 画面表示が99%くらいで、必ずプログラムが終了してしまう。 これって、どうにかならないでしょうか
29 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 22:11:27 ] デバッガでデバッグ。
30 名前:28 mailto:sage [2009/11/14(土) 22:20:48 ] IEコンポの内部で何かが発生して プログラムが強制終了になってしまうので デバッグしょうがないのです。
31 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 00:09:39 ] なんか根本的なところが間違ってる、とまではいわないまでも、考え違いをしているような気がする。 もういちどスタートラインに戻って考え直してみてはいかが?
32 名前:28 mailto:sage [2009/11/15(日) 00:25:49 ] プログラムは フォームにTWebBrowserを貼り付けて WebBrowser1->Navigate(ぱらーめーた);しているだけです。 ただこれだけなのですよ 何を考え直すのでしょうか???BDS2006を使うなとかですか? 「ポイントくじに今すぐチャレンジ」をクリックすると落ちてしまい それ以外だと、無問題です。 IEでブラウズすると問題なく動きます。
33 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 00:33:15 ] >32 コピペにマジレス
34 名前:デフォルトの名無しさん mailto:sage [2009/11/15(日) 01:22:05 ] それだけではなんなので。 つ ttp://www33.ocn.ne.jp/~takoyakusi/delphi/InternetProg.html
35 名前:デフォルトの名無しさん [2009/11/17(火) 17:46:38 ] おい、質問するぞ、誰かいねーのか!!
36 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 19:02:49 ] <>
37 名前:デフォルトの名無しさん mailto:sage [2009/11/17(火) 23:08:04 ] 質問どうぞ
38 名前:デフォルトの名無しさん mailto:sage [2009/11/19(木) 22:07:33 ] 自作コンポーネントを使うと #pragma link が必要になるんだけど 通常のコンポーネントのように #pragma link なしでいいようにパッケージを作るにはどうしたら良いんですか?
39 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 21:16:45 ] BCBのメーリングリストってもうなくなっちゃったんですか? ↓は登録したけど全然投稿がないみたいだし... ns8.sfdata.ne.jp/cgi-bin/mailman/listinfo/cbuilder
40 名前:デフォルトの名無しさん [2009/11/24(火) 08:48:45 ] unicode対応のプログラムはどのようにして作ればよいのでしょうか?
41 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 09:06:36 ] もっと具体的に質問してください
42 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 09:16:51 ] 日本語版C++Builderでコンパイルした場合、 そのソフトを英語版Windowsで実行すると、エラーメッセージダイアログなどが 文字化けします。どのWindowsで実行しても文字化けしないようunicode対応で プログラムを組みたいのですが、その方法を教えてください。
43 名前:デフォルトの名無しさん mailto:sage [2009/11/24(火) 09:31:53 ] ttp://journal.mycom.co.jp/articles/2009/06/05/Windowsapi/index.html
44 名前:デフォルトの名無しさん [2009/11/24(火) 18:45:43 ] TBitmapをDIB(ヘッダ無しで色データ配列のみ)に変換する方法を教えてください。。
45 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 01:40:37 ] C++Builder 2007で作ったexeをWindows7で実行していますが問題が発生しています。 処理内容は、TCustomControlから派生したコントロールをTScrollBox内に設置して、上下左右に スクロールさせています。 XP,Vistaでは、コントロールのHeightに65536以上の値を設定しても問題ない のですが、Windows 7では65536以上を指定しても65535になってしまいます。 これはWindows7の非互換の問題でしょうかね。それとも65536以上を指定して 動いていた今までの動作が例外的だったのでしょうか。 悩んでます。よろしくです。
46 名前:デフォルトの名無しさん [2009/11/25(水) 03:45:02 ] C++Builderを始めようと思いますが、未来はありますか?
47 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 06:44:12 ] あるんじゃない? 2009じゃなくて2010にしたほうが良いよ
48 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 07:10:18 ] >45 互換モードで動作させたらどうなるの?とはいえ > これはWindows7の非互換の問題でしょうかね。 だろうね。
49 名前:デフォルトの名無しさん [2009/11/25(水) 15:41:52 ] TGA形式の画像をTBitmapに変換する方法を教えてください
50 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 15:51:58 ] つ ttp://www.efg2.com/Lab/Library/Delphi/Graphics/FileFormatsAndConversion.htm
51 名前:デフォルトの名無しさん [2009/11/25(水) 16:15:57 ] 何この糞見づらいページは 怪しいライブラリを使わないで変換する方法を教えてください
52 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 18:18:07 ] 自分で作れ
53 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 20:01:24 ] Susie pluginって手もある。
54 名前:デフォルトの名無しさん mailto:sage [2009/11/25(水) 23:31:03 ] >>48 XP互換モードでもダメでした。 スクロールビューの中にコントロールを置いて、上下左右スクロールをさせる作りのアプリは 多そうだけど、非互換でいいのだろうか・・ Vistaからの最適化の中で切られたんだろなぁ。Windows7 SP1で直ればいいけど。
55 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 11:30:08 ] >>28 カメだがBCB6でもTurboCでもXPなら落ちる 2000なら落ちない Silverlightとの相性が悪いとおもっているが原因不明
56 名前:デフォルトの名無しさん [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 すべきでしょうか?
57 名前:デフォルトの名無しさん mailto:sage [2009/12/07(月) 20:53:21 ] boost::shared_ptrで包んでstd::vectorにでも放り込んでおけ もしくは普通にnewしてboost::ptr_vectorな
58 名前:デフォルトの名無しさん mailto:sage [2009/12/07(月) 21:31:41 ] >>56 delete plist[i] のループを回す
59 名前:デフォルトの名無しさん mailto:sage [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
60 名前:デフォルトの名無しさん [2009/12/08(火) 11:24:25 ] C++ Builder 2009 Pro (Electronic Software Delivery) $98.98 安いよー www.journeyed.com/item/Embarcadero/C%2B%2B+Builder/100964379
61 名前:デフォルトの名無しさん mailto:sage [2009/12/08(火) 12:22:03 ] >>60 >Academic Proof Required 安くない
62 名前:デフォルトの名無しさん mailto:age [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 としてみた。 他に何か必要なのでしょうか? アドバイスお願いします。
63 名前:デフォルトの名無しさん mailto:sage [2009/12/08(火) 18:50:24 ] L"AAA"
64 名前:62 mailto:age [2009/12/08(火) 20:23:03 ] >>63 アドバイス有り難うございます。 L"AAA"で修正できましたが、個別に該当する箇所を修正する方法では無く、 プロジェクト全体にまとめて適用できる様な方法はないでしょうか?
65 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 03:25:38 ] >プロジェクト全体にまとめて適用できる様な方法はないでしょうか? ありません。 C / C++ 言語では文字型リテラルには型が付いています。 コード上で明示的に char か wchar_t (最近のだと wchar16_t と wchar32_t もあります) で有ることを指定する必要が有ります。 文字列リテラルがメモリの初期化の簡便記法でしかなかったころの歴史的名残です。 対するに Delphi の文字リテラルは評価するときに型が決まるので記法上は一種類しか有りません。
66 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 05:04:03 ] 文字列置換ツールで置換してしまえば、いいじゃん。
67 名前:デフォルトの名無しさん mailto:sage [2009/12/09(水) 06:42:05 ] 無条件に全置換すると、char* を必要としているところでエラーとなるよ。 2010 になってもデフォルトでは UNICODE マクロが付かないので(過去との互換性の問題かな) _T マクロは役に立たないし。 このコンパイルエラーが出るところが、BCB6 からの一番の変更点なので、 手を抜かずに全部確認した方が、後でバグが出て泣くより正しい道だと思います。
68 名前:62 mailto:age [2009/12/09(水) 10:10:02 ] アドバイス有り難うございます。 手を抜かずに個別に修正したいと思います。
69 名前:62 mailto:age [2009/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);
70 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 18:57:08 ] つうか、第3引数の型は、[ Tcl_CmdProc ] ? それとも [ Tcl_CmdProc* ] ?
71 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 22:02:24 ] Visual c++でプログラムを書いて、コンパイルしました。 Unixでいうscriptで実行結果を出力したいのですが、どうしたらいいでしょうか?
72 名前:デフォルトの名無しさん mailto:sage [2009/12/10(木) 22:18:11 ] 頑張ってください。
73 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 05:42:43 ] C/C++ コンパイラとしての機能は 6 も 2010 も同じなので、 VCL が絡まなければ、違いは出てこないはずです。 少なくとも char と wchar_t に関しては変更は有りません。 提示されているコードではエラーは出るはずが無いので、何とも解説/回答できませぬ。 エディタ上で Tcl_CreateCommand と打った後コード支援で出てくる引数のプロトタイプを 確認することを勧めます。 もしそこで表示される第二引数 cmdName の型が char * ではなく wchar_t * だとしたら、 ヘッダファイルや関数定義を見直してください。
74 名前:デフォルトの名無しさん [2009/12/11(金) 06:07:05 ] >C/C++ コンパイラとしての機能は 6 も 2010 も同じ これはウソでしょう
75 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 07:44:09 ] くだすれだから勘弁してくれな > 74 バグ修正や C++0X 規格の一部先取り以外で C/C++ コンパイラとしてどこら辺が変わったのかまとめてくれるとありがたいぞ > 74
76 名前:62 mailto:age [2009/12/11(金) 10:16:16 ] >>73 様 御指摘頂いたように宣言を見直したら第2引数ではなく第5引数に誤りがありました。 思い込みで作業していたようで大変助かりました。 有り難うございました。
77 名前:デフォルトの名無しさん mailto:sage [2009/12/11(金) 15:51:15 ] いえいえ。お礼はいりませんよ。
78 名前:デフォルトの名無しさん [2009/12/16(水) 14:10:13 ] TBitmapにOutTextで文字を書いた時に この文字に指定ドット数で輪郭をつけたいのですがどうやったらいいですか? 元の文字はそのままで文字の外側につけたいので文字が指定ドット分大きくなるイメージなのですが。。
79 名前:デフォルトの名無しさん [2009/12/18(金) 21:54:01 ] ウインドウの大きさが可変なダイアログを作ろうとして BorderStyle=bsSizeable; にしました。 これで、大きさは変更できるようになったのですが ウインドウの右下の角に、サイズ変更可の印が出てくれません。 印を出すには、どうすれば良いでしょうか。
80 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 08:44:20 ] >>79 TStatusBarを配置する
81 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:31:51 ] TStatusBarを配置しました。 マークが出ましたが とても間抜けなダイアログボックスになりました。
82 名前:デフォルトの名無しさん [2009/12/22(火) 04:00:09 ] できたのだからよいではないか
83 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:51:36 ] getlineでファイルから 商品名,2009/11/2 にのようになってる行を読み取り、商品名、西暦、月、日をそれぞれ別の変数に格納したいです。 getlineでどのように書けばできるのでしょうか?
84 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 22:21:41 ] 俺なら','をstrchrで探して前半を切り出し 後半はsscanfでまとめて取得するかな。
85 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 08:20:45 ] >>83 俺ならstd::tr1::regexで取得するかな。
86 名前:デフォルトの名無しさん mailto:sage [2010/01/08(金) 18:50:47 ] 例外の発生したアドレスをExceptionクラスから受け取ることってできないんですか? そのような情報を取得する方法ってないのでしょうか?
87 名前:デフォルトの名無しさん [2010/01/13(水) 14:43:58 ] C++builder2010って64ビットに対応してる?
88 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 16:07:54 ] してない。 2011年夏の予定
89 名前:デフォルトの名無しさん [2010/01/13(水) 16:19:10 ] そんなあ><
90 名前:デフォルトの名無しさん [2010/01/13(水) 19:26:30 ] ま た お ま え か
91 名前:デフォルトの名無しさん [2010/01/19(火) 02:01:43 ] .resを作った後、そのリソースをexeにくっつけて コンパイルするにはどう記述すればいいの?
92 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 06:25:38 ] >ilink32.exe と打ってコマンドラインのヘルプを確認しましょう。 bcc32.exe の引数に、.res ファイルを書く事もできます。できるはず。
93 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 13:14:02 ] つーか、プロジェクトにres放りこんどけと
94 名前:デフォルトの名無しさん [2010/01/19(火) 14:26:28 ] 知らないならレスしないで下さい><
95 名前:デフォルトの名無しさん mailto:sage [2010/01/19(火) 20:46:18 ] ま た お ま え か
96 名前:デフォルトの名無しさん [2010/01/23(土) 08:24:17 ] ActiveXに関する質問なんですが、 VCのMFCでtypelib追加ウィザードで作成されたクラスには LPDISPATCH型をパラメータにしたコンストラクタがあって、 そこにVARIANT変数のpdispVal等を使用して作成していたのですが、 BCB6でタイプライブラリの取り込みを行った際、 そのLPDISPATCH型をパラメータにしたコンストラクタがなくなって コンストラクタには「TComponent* owner」になってしまいました。 LPDISPATCHをそのクラスに設定するにはどのようにすればいいでしょうか?
97 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 11:05:26 ] 10年前の BCB6 だとサポートできない機能があると思いますが たぶん何とかなるとおもいます。 取り込み元 ActiveX の Typelib の定義を見せてください あと、BCB 側のプロジェクトディレクトリに、インポートのログファイルが落ちていませんかね?
98 名前:デフォルトの名無しさん [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; で変えられます。
99 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 11:43:49 ] Image1->Canvas->Font->Charsetを変えてみる
100 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 12:02:21 ] BDS2006を使っています。 TSimpleEvent *event=new TSimpleEvent(); とするとエラーになります。 ヘルプを見ると、コンストラクタは引数なしなので これで良さそうなのですが、どうも原因がわかりません。 TSimpleEventはどう使えばいいのでしょうか。
101 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 12:28:36 ] それでいいはずだから、 #include <SyncObjs.hpp> か?必ずエラーの内容書こうぜ。
102 名前:98 [2010/01/23(土) 13:12:43 ] >>99 様 有難うございました。 解決しました。
103 名前:100 mailto:sage [2010/01/23(土) 13:25:51 ] [C++ エラー] Main.cpp(1917): E2285 'TSimpleEvent::TSimpleEvent()' に一致するものが見つからない となります。 #include <Syncobjs.hpp> はしています。
104 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 14:54:05 ] ヘルプが更新されてないのかね。今は↓らしい。Syncobjs.hppの中を見て確認したほうがいいかもしれない。 Syncobjs::TSimpleEvent * __fastcall TSimpleEvent(_SECURITY_ATTRIBUTES * EventAttributes, bool ManualReset, bool InitialState, System::UnicodeString Name, bool UseCOMWait);
105 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 15:34:26 ] TSimpleEvent メソッドは,システムのイベントオブジェクトを作成し,TSimpleEvent オブジェクトをインスタンス化してそのイベントを表します。 __fastcall TSimpleEvent(void); となってるね Update全部当てたけどこのまま
106 名前:100 mailto:sage [2010/01/23(土) 16:03:16 ] 見てみました。 Syncobjs.hpp の定義に __fastcall TSimpleEvent(void);が無いですね。 でも、 Syncobjs::TSimpleEvent * __fastcall TSimpleEvent(_SECURITY_ATTRIBUTES * EventAttributes, bool ManualReset, bool InitialState, System::UnicodeString Name, bool UseCOMWait); これって、TEventと同じ引数じゃないですか。 TEventと同じならTSimpleEventの意味がないですよね。 というかTSimpleEventは名無しのハズですから もしかしたら、バグでしょうか。 あと、最後の引数 bool UseCOMWait これが謎です。
107 名前:デフォルトの名無しさん mailto:sage [2010/01/23(土) 16:16:11 ] www.mombu.com/programming/c/t-bds2006-syncobjshpp-header-not-recognised-799965.html にもあるけどhppの生成バグかね。
108 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:31:07 ] ちなみにC++Builder2010のヘルプでは C++ の情報 ファイル SyncObjs.hpp TSimpleEvent = class(TEvent) [edit] C++ の情報 ファイル SyncObjs.hpp TEvent = class(THandleObject) となってるからまた仕様が変更されているようですね いつから変わったんだろう
109 名前:デフォルトの名無しさん mailto:sage [2010/01/24(日) 12:32:13 ] と思ったらちゃんと書いてあった SyncObjs.TSimpleEvent のコンストラクタFrom RAD Studio VCL Reference [edit] C++ の情報 Syncobjs::TSimpleEvent * __fastcall TSimpleEvent(_SECURITY_ATTRIBUTES * EventAttributes, bool ManualReset, bool InitialState, System::UnicodeString Name, bool UseCOMWait); virtual void __fastcall ~TSimpleEvent(void); これはさすがにバグが取れているようだ
110 名前:デフォルトの名無しさん [2010/01/27(水) 15:14:53 ] TRichEditで質問ですが。 SelAttributesで一部の色を変更した時に 何処が何色に変更されてるかを調べる方法を教えてください。
111 名前:デフォルトの名無しさん [2010/02/01(月) 16:38:07 ] 早く教えて
112 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 17:27:06 ] C++ Builder 2010でZlibを使いたいんですけど Boostの中にすでに入っているようで これを使うにはどうしたらいいでしょうか?
113 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 17:58:58 ] CBuilder では使えません。 必要なファイルが足りないようですね
114 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 15:54:09 ] 112です Boostのを使えない場合 普通にZlibの最新版をダウンロードして ソースコードをプロジェクトに加えれば使えるんでしょうか?
115 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 16:01:32 ] この頃のオープンソースでは CBuilder/BCC 用の設定をつけていない物も多いので 「がんばってください」と言うしかないです。 Delphi 側の実装である zlib ユニットを利用するというてもあると思います。 zlib.hpp をインクルードしてみてください。
116 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:46:04 ] Win32DLL版のzlibと必要なヘッダを落とし DLLからimplibするだけだろ
117 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:11:19 ] 112です ZlibのDLL版のimplibでうまくいきました ありがとうございました
118 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 11:24:36 ] C++Builderのエディタ部分でタブとEnterキーが効かず。スペースが一文字削除になるんですが。 これってどうすれば治りますか?
119 名前:118 mailto:sage [2010/02/08(月) 11:29:22 ] >>118 すいません、とても恥ずかしい理由で治りました。 もう一つ質問させて頂きたいのですが C++Builder(のソケット)でネットワークプログラミングをする場合、書籍はwinsock2のモノでも 大丈夫でしょうか?
120 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:05:35 ] C++Builderのソケットって何を指していってる?まぁどの方法でもWinSock2で当たりを つけておく必要があることに変わりはないけど。TServerSocket/TClientSocketは SMP上のマルチスレッドではうまくいかない、という報告を見たことがあるので注意して。 Indyならマルチスレッド必須(基本ブロッキングなので)。自前で実装するならご自由に。 ICSはよくわからん。
121 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 22:14:13 ] Qt は C++Builder でも使えた?
122 名前:デフォルトの名無しさん [2010/02/10(水) 10:52:00 ] 特定部分をCUDAを使って計算させたいのですが、C++BuilderでCUDAを使うには どのような設定が必要なのでしょうか?
123 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 11:15:52 ] できません。
124 名前:デフォルトの名無しさん [2010/02/10(水) 12:33:59 ] できないって、DLLとかでもだめなのかい?
125 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:49:05 ] マイナー環境を使ってる者の宿命です。
126 名前:デフォルトの名無しさん [2010/02/10(水) 16:54:11 ] うるさいだまれぶた
127 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 15:37:10 ] 時間がかかるループ中にプログレスバーを別スレッドで進めたいと思い ヘルプどおりにTThreadの派生クラスを作りました Executeの中でForm1->ProgressBar1->StepIt()を呼ぶだけのシンプルな もので、これ自体が正常に動作することは確認しました しかし、肝心の時間がかかるループになるとこのスレッドに制御がこないため プログレスバーが進みません。ループに入る前にnewで作った時に1回よばれ ループが終わった時にもう1回よばれるだけです。コンストラクタの引数はfalse にしてあります。Priorityプロパティも変えてみましたけど変わりません。 どうやったらループの中で並行してスレッドが動くようにできるでしょうか?
128 名前:デフォルトの名無しさん [2010/02/12(金) 15:52:49 ] つーかそれスレッドから呼んだら落ちるんじゃね? もしくは、落ちなくても正常にアレされなさそう。 void Execute( void ) { while( !Terminated ){ Synchronize( Unko ); Sleep(1); ] } void Unko( void ) { Form1->ProgressBar1->StepIt(); } これでどうよ?
129 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 16:09:46 ] >>128 それもやってみましたけど変わりませんでした 時間がかるループ以外のところでやると正常にプログレスバーは進みます ループに入るとその間だけ呼ばれなくなります
130 名前:デフォルトの名無しさん [2010/02/12(金) 16:11:35 ] んじゃむしろそっちのループにSleepいれたらどう?
131 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 16:26:19 ] それなら直接 StepIt を呼んだ方が効率がいいような気がします ループの方は細かいループがたくさんよばれるのでそれらに1つ1つStepIt入れるの がいやでなんとか別スレッドでできないものかと悩んでいます
132 名前:デフォルトの名無しさん [2010/02/12(金) 16:43:13 ] それCPU負荷100%になってるだろ
133 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 16:50:52 ] リソースモニターでみると「応答なし」になってます これが原因でしょうか?
134 名前:デフォルトの名無しさん [2010/02/12(金) 16:56:18 ] スレッドにSleepを入れるのは当然として 他のループにもいれないとまずいだろ
135 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 17:04:25 ] ようやく分かってきました SleepかStepItかProcessMessages あたりをループの中で呼ぶしかないんですね ループの部分のソースコードはMacと共有してるんで あまりやりたくなかったんですけど #ifdef使って入れてみます アドバイスありがとうございました
136 名前:デフォルトの名無しさん [2010/02/14(日) 04:21:42 ] 失礼します。 抽象的な質問で申し訳無いのですが、BCB6と2009や2010の互換性ってどのくらいあるのでしょうか? BCB6で作成したソフトをいじろうと思っているのですが、BCB6の購入は難しいようなので、2010を購入するか悩んでいます。 Unicodeになるなど、100%はありえないのはわかっていますが、コンポーネントの動作等はある程度使える物なのでしょうか? よろしくお願いします。
137 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 04:33:07 ] ある程度使える 共通の部分だけ使えば互換性は確保出来る きっとそのうち萎えると予想
138 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 08:31:16 ] BCB2010でウェブブラウザ作りたいんですが TWebBrowserとTCppWebBrowserの違いが分かりません 後者の方はヘルプにも何もでてないし エンバカデロのサイトを検索しても何もヒットしません TCppWebBrowserはもう使うなということでしょうか?
139 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 11:32:57 ] 先週末からAboutDelphi の過去ログ検索のリンクが死んでるんですけど 消息とか代替とかご存じの方おられませんか?
140 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 22:16:09 ] Delphi-MLか公式フォーラムか、武内さんが見てそうなところで聞くのが吉かと。 単にサーバが落ちてて気がついていないだけでは?
141 名前:デフォルトの名無しさん [2010/02/16(火) 14:45:47 ] 2010って64ビットに対応してるか?
142 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 14:55:10 ] してない 64bit正式対応は2011からだぞなもし
143 名前:デフォルトの名無しさん [2010/02/16(火) 15:31:58 ] まじですか 2011ていつでるんだい?
144 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 15:43:31 ] 今年6〜7月頃じゃねーの?
145 名前:デフォルトの名無しさん [2010/02/16(火) 15:57:28 ] あ、今年ですか んじゃそれまで待ってみようかな ありがとうブタ君
146 名前:デフォルトの名無しさん [2010/02/16(火) 16:02:45 ] 2011はLinux対応 その後改善を2012でやって 64はその後の2013の筈
147 名前:デフォルトの名無しさん [2010/02/16(火) 16:04:05 ] 不完全なくりっくす復活されてもなぁ。
148 名前:デフォルトの名無しさん [2010/02/16(火) 16:09:20 ] TRichEditで文字属性ごと他のTRichEditにコピーする方法を教えてください
149 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 17:08:58 ] >>136 2007はまだ買えるよ。BCB6はVistaで起動しなかったので慌てて2007にしてコンパイルし直したけど, 比較的苦労せずに済んだ。ただ,いつものことながら2007はパッチ当てないと使い物にならない。 パッチ当てても,時々不可解なことが起こる。何も悪いことしてないのにアプリをExitするとアクセス違反 で落ちたり,アプリケーションアイコンが消えたり... 何とか逃げ道を探して使ってるけどね。
150 名前:136 [2010/02/17(水) 00:59:21 ] >>137 >>149 ありがとうございます。 普通に想定できる範囲での修正でなんとか出来そうですね。 どうせコンパイルし直すなら、最新にしようかなと。
151 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 08:43:41 ] >>149 Unicodeコンポでつまずいたり、吸収するライブラリとか作ったりされましたか? これから同じ状況を迎えるのでw
152 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:42:20 ] >>149 BCB6はVistaで起動できるようだけど? ttp://yoshidastyle.net/Blogs/program/2009/02/16/builder6binbcbdro
153 名前:デフォルトの名無しさん [2010/02/18(木) 15:30:43 ] TRichEditにAddするとキャレットが消えるんだけど これを表示される方法を教えてください
154 名前:デフォルトの名無しさん [2010/02/18(木) 15:33:52 ] ちなみにShowCaret( RichEdit->Handle );じゃ表示されませんですた
155 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:57:45 ] TListBoxで選択が変わったことを検出したいのですが、 TForm1::TForm1(TComponent* Owner) { ListBox1->WindowProc = MyWindowProc; } void __fastcall TForm1::MyWindowProc(TMessage &Message) { if (Message.Msg == WM_COMMAND) { // 0 if (Message.WParamHi == LBN_SELCHANGE) { // 1 return; // 2 } } } としてみたのですが0の部分までは描画要求などで頻繁によばれますが セルをクリックして選択を変えたときにはMyWindowProc自体が呼ばれません (1ではなくて0の部分もよばれない) なにがいけないんでしょうか?
156 名前:155 mailto:sage [2010/02/19(金) 19:48:48 ] 理由がわかりました TListBoxはWM_COMMANDを送らないんですね どうしてもとりたければ派生クラス自分で作れってことですね
157 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:05:38 ] >>155 矢印キーによる選択でも、OnClickイベントが発生するけど 解決できない処理なのか
158 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:15:11 ] すでに選択されていたものが再びクリックされたのか 選択されていなかったものが新たにクリックされたのか で処理を切り分けたいんです
159 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:36:17 ] >>158 フラグ用の変数を用意して、現在選択している項目と同じ項目を再度クリックされたかを判定する事になると思う。 ListBox->Tagプロパティを使ってなければ、これを使うとお手軽。 別の意味で、1度選択された項目は2度と処理したくない場合は ListBox->Itemsを使うのはどうか? Itemsの正体はTStringListである TStringListは文字列とセットでポインターを1つ保持できる これがListBox->Items->Objects[index] である このポインターを収めるところをフラグに使う NULLはゼロ。NULL以外はアドレスで、アドレスは数値。 だから数値を1個保存すると、NULLと区別できる void __fastcall TForm1::ListBox1Click(TObject *Sender) { TListBox* ListBox = dynamic_cast<TListBox*>(Sender); int index; AnsiString s; if (ListBox == NULL) { return; } index = ListBox->ItemIndex; if (index < 0) { return; } if (ListBox->Items->Objects[index] == NULL) { s.printf("未処理[%d]", index); // 処理済フラグON ListBox->Items->Objects[index] =(TObject*) 1; } else { s.printf("処理炭[%d]", index); } Memo1->Lines->Add(s); }
160 名前:デフォルトの名無しさん [2010/02/20(土) 14:33:54 ] 2007を使っています。 TRichEditのSelStartは全角の1バイト目を指定したら SelLengthは自動的に2となって2バイト目を指定したらSelStartは自動で次文字の1バイト目にいってました それが突然2ならなくなってしまいました。 どこかでプロジェクトのランタイムテーマが無効でこうなるって書いてた気がしたのですが・・・ 確かにランタイムテーマのチェックを外してからおかしくなったとおもうのですが 再度これにチェックを入れてコンパイルしても以前の動作にもどってくれません・・ どうしたらもどっれくれますか?
161 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 15:09:10 ] テーマが有効だと、そうなるのですが。 無効にし、かつプロジェクトのあるディレクトリに自動生成されている .res ファイルを 削除してみてください
162 名前:デフォルトの名無しさん [2010/02/20(土) 15:43:05 ] XPのビジュアルスタイルにするためのマニフェストファイルをリソースに埋込み brc32でコンパイルしても、コンパイルは正常にできるんですが、スタイルが変わりません どうしたらいいの?
163 名前:デフォルトの名無しさん [2010/02/20(土) 15:45:45 ] >>161 できました!!! でも・・・ res削除するとアイコンが消えて読み込みもできなくなったんですが これアプリのアイコンはどうやってしていしたらいいでしょうか? それともう1つ。。。 TRichEditでSelStart=0にして、SelLength=RichEdit->Lines->Text.Length();として RichEdit->SetAttributes->Color = clRed;として 全文字を赤(色はデフォ以外ならなんでもいいみたい)にしたときに 行間がつまって表示されてしまいます。 更にこの時にSelStartとSelLength位置の色が正常に取得できなくなってしまうのですが 何が原因なのでしょうか? これは先ほどのテーマがONでもOFFでも現象は同じでした
164 名前:163 [2010/02/22(月) 16:11:12 ] ちなみに、RichEditのフォントが変わってるような感じがします フォントはMSゴシックを指定しているのですが 正常な時もおかしいい時もフォント名はMSゴシックだったのですが おかしい時は文字間が詰まっています(MSPゴシックみたいな感じに) これTRichEditのバグですか?
165 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 16:08:46 ] Variant::CreateObjectで作成したOLEオブジェクトにある プロパティの有無を何か検出する方法は無いでしょうか? 本来NULLを返すはずのプロパティがあるのですがどうも プロパティ名自体が無いようで例外が発生しています 例外処理でひっかけてはいるのですがデバックしている時は 毎度そこで止まるので困っています
166 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 17:16:59 ] デバッグが不便だというなら@Delphi7 例外が出る前の行にブレークポイントを仕掛けて、ブレークポイントの設定→拡張でブレークのチェックをクリア +この後の例外を無視するにチェック 例外が出る後の行(ry +この後の例外を処理するにチェック
167 名前:165 mailto:sage [2010/02/25(木) 08:59:24 ] ブレークポイントで例外を無視ってのに気が付きませんでした これでずいぶん楽になりました、ありがとうございます
168 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 09:22:08 ] あ、そんな風に設定するんだ。 設定方法知らなかったので今まで一度も使わなかったorz IDEとかプロジェクトの設定ダイアログで無視する例外を選んでおくのかと思ってた。
169 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 10:23:20 ] >IDEとかプロジェクトの設定ダイアログで無視する例外を選んでおくのかと思ってた。 もし適切にフィルタできるなら、ふつうはそちらを使うべきでしょう。 166 のテクニックは、特定の時だけ特定の例外を無視したいときに使います
170 名前:168 mailto:sage [2010/02/25(木) 10:50:10 ] いや、”特定の例外”ってソースいじる必用があるかもしれないし、例外クラス作ったりしなきゃならないので、 ”特定の時だけ”のんが超便利。
171 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 13:30:07 ] なんだ。しつこいな ブレークポイントでの操作は IDE 終了したら消えちゃうから、可能なら無視例外を登録するほうが良いでしょう。 もちろんキャッチしたい例外と区別できないと意味がないので、ソースを書き換えなければいけない場合も あるかと思います。 そこは手間とメリットをはかることになります。 ソースを変更できない(例外クラスを変更できない)場合も多々あるのでそのばあいは ブレークポイントによる対応と成るでしょうね
172 名前:168 mailto:sage [2010/02/25(木) 13:55:39 ] いや別に読み流してもらえばおk、だったんだけど。。。
173 名前:デフォルトの名無しさん [2010/02/25(木) 14:29:22 ] TStringGridで文字列の一部を選択してるとき TMemoのSelStartとSelLengthみたいにわかる方法を教えてください
174 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 14:52:13 ] ヒント: TInplaceEdit
175 名前:デフォルトの名無しさん [2010/02/25(木) 14:59:30 ] StringGridからどやってTInplaceEditにアクセスすんの? さっさと教えやがってください
176 名前:デフォルトの名無しさん [2010/02/25(木) 15:14:22 ] できた。 TInplaceEdit *ie = dynamic_cast<TInplaceEdit *>(StringGrid->Components[0]); 確かにこれでOKだったんだけどー これComponents[0]固定になってるけど大丈夫なの??
177 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 15:56:52 ] 不安ならforで回せば?
178 名前:デフォルトの名無しさん [2010/02/25(木) 17:08:05 ] >>177 それやってみたんですが、どうやらStringGridのあれは1つしかなかったので [0]固定でもOKじゃね?みたいな結論になりますた。 将来的にはどうなるかわからないですがばかとりあえず今はこれで大丈夫なので^^
179 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 19:39:45 ] >>178 dynamic_cast使っているんだから戻り値がNULLだったらインデックス増やすようにすれば良いじゃん
180 名前:デフォルトの名無しさん [2010/02/26(金) 10:16:56 ] >>179 それちがうだろ forで回すってことはStringGridのアレカウントが1以上あるってことなんだから NULLが返らずにTInplaceEdit以外のポインタが来るだろJK だからインデックスをただ増やすんじゃなくてクラスをチェックせにゃいかん そうなったら結局forでまわしてアレするのと同じ
181 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 19:27:23 ] >>180 TInplaceEditでdynamic_castしているのにTInplaceEdit *ieにTInplaceEdit以外のポインタが入ることがあるのか?
182 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 11:34:27 ] TEditとその他のコントロールがあるフォームでTEdit以外にフォーカスがある時にキーボードが押されたら 自動的にTEditにフォーカスを移動して文字を入力したいと思い、以下のようにしました。これで正常に動く のですが、TWebBrowserにフォーカスがあってIMEがオンの時のみ、例えば「ka」を入力すると「kあ」になって しまいます。他のコントロールの場合はちゃんと変換中の下線付きで「か」になるので悩んでいます。TWebBrowser に対してフォーカスを離させるような何かの処理が必要なのでしょうか?一応WM_KILLFOCUSを送ってみましたが 変化はありませんでした。 void __fastcall Form1::ApplicationEventsMessage(tagMSG &Msg, bool &Handled) { if (Msg.message == WM_KEYDOWN) { Handled = false; if (!Edit1->Focused()) { Edit1->SetFocus(); Msg.hwnd = Edit1->Handle; } } }
183 名前:デフォルトの名無しさん [2010/03/01(月) 09:08:30 ] 182です どうやらDHTMLのkeydownイベントをフックすればよさそうな気がするんですが TWebBrowser* からどうやってそのイベントをフックすればいいのか分かりません documentプロパティでDHTMLオブジェクトにはアクセスできそうですが そっから先はどうやったらいいんでしょうか?
184 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 19:26:01 ] これからC++はじめようと思っているんですけど VC++とどちらが人口が多いのでしょうか? あと、初心者がとっつきやすいのはどちらでしょうか? 仕事じゃなくて趣味でやる程度です
185 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 20:51:53 ] >VC++とどちらが人口が多いのでしょうか? VC++ >初心者がとっつきやすいのはどちらでしょうか? C++Builder
186 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 20:55:28 ] C++BuilderはMSみたいに無料配布してないんですね。がっかり。
187 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 22:03:20 ] 趣味で無料がいいならC#にしとけ。
188 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:37:27 ] >>183 ttp://msdn.microsoft.com/en-us/library/bb508508%28VS.85%29.aspx
189 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 03:11:45 ] VC++の無料はC++/CLIを無理矢理使わされるぞ
190 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 09:24:42 ] 趣味で金出したくないなら Qt Creator
191 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 10:35:04 ] test
192 名前:デフォルトの名無しさん [2010/03/05(金) 17:27:20 ] TJPEGImageで1920x1080の画像をSaveToFileすると10秒くらいかかってしまうのですが・・・ これって仕方がないのでしょうか? それと、SaveToFileをしてる間はOSごと固まってしまいます せめて固まるのはアプリだけにしたいのですがどうしたらいいでしょうか?
193 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:20:23 ] 圧縮前の bitmap イメージでも 1920x1080 * 4byte = 8Mbyte 程度か。 少し古い/遅い CPU を使っているとか? OS/Driver の組み合わせだと、ディスク書き込み中に OS が反応なくなる場合があります。 もし搭載メモリに余裕があるのなら(といってもいまどき 1Gbyte 位は搭載しているだろうけど) いったん 別のストリームへ SaveToStream で保存し、それから保存してみたら? それでも OS が固まるなら、少し別の原因か
194 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 04:09:07 ] BCB6を使用しています。 SSDに載せ替えたので、インストールしなおしたところ、コンパイル時に必ず以下のメッセージが出て止まるようになってしまいました。 Windows - ディスクがありません Exception Processing Message c0000013 Parameters 764cbf7c 4 764cbf7c 764cbf7c ググっても常駐ソフトを見直せとかの情報しか無く、困っています。 使用許諾コードは取得してあります。 よろしくお願いします。
195 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 10:51:09 ] BCB2010でタイプライブラリの使い方を勉強しています .ridlファイルで基本的な情報を設定すると xxx_TLB.cpp と xxx_TLB.hができてひな形が作られるらしい ということはわかったのですが そっから先にどうすれば実際のインスタンスが作れるのかが わかりません どなたか基本的な使い方の手順を教えてもらえないでしょうか?
196 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 12:07:35 ] >194 c0000013で検索した結果はちゃんと見て追試してそれでも何も問題となるようなものはない、 という状況なの? >195 コンポーネントとしてインストールしてそれをフォームに貼ればいいんじゃない?
197 名前:デフォルトの名無しさん [2010/03/06(土) 16:55:48 ] >>193 なんとなく原因がわかりました BitBlt等にBitmap->Canvas->Handleを渡してビットマップを作るとSaveToFile時に10秒くらいかかるようになってた これSaveToFileで以前に保存したファイルをLoadFromFileしてからSaveToFileをすると 200msでくらいで終わってたんですが なんでAPIでアレするとこんなに遅くなりますかね? しかもOSごとって・・・
198 名前:194 mailto:sage [2010/03/06(土) 19:19:50 ] >>196 物凄く不安定で、どうしたらいいのやら・・・。 セーフモードで立ち上げた後は動いたりするのですが、しばらくするとまた同じエラーが出たりします。
199 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 19:34:02 ] そもそも環境的な説明はなしか
200 名前:194 mailto:sage [2010/03/06(土) 20:48:25 ] 環境はXPsp3。 常駐はAntiVirとSpybotとp2proxyくらいです。
201 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 22:15:51 ] たぶん>>197 に対するものだと思うけどな
202 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 10:29:34 ] >>194 IncludeかLibのパスに存在しない場所が指定されてるんじゃない? 以前作ったプロジェクトファイルには存在した場所がSSD環境では消えているとか
203 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 10:32:37 ] そのパスがリムーバブルメディアだったら出るみたいだね 再現できた 元FDやCDのドライブ名であたってみてくれ
204 名前:194 mailto:sage [2010/03/07(日) 17:27:07 ] >>202-203 空のプロジェクトでは発生しなかったので、それっぽいです。 ありがとうございました。
205 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 13:33:54 ] BCBとVC++のそれぞれの最新版で比べた場合 同じようなアプリを作った場合 実行速度は変わらないでしょうか?
206 名前:デフォルトの名無しさん [2010/03/08(月) 15:56:01 ] ずっとBCB使ってきてたんだけど Visual Studio 2010のベータを試してみたら ポトペタとか簡単にできてBCBとあまり変わらない BCBの優位ってもうないんでしょうか?
207 名前:999 [2010/03/08(月) 16:46:57 ] それはC丼だろ。 Visual Studio のC++って相変わらずの原始的レベルだろ。 C丼でいいのならVisual Studio使えばイイじゃん。
208 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:04:50 ] >>207 .NETならば、C++でも、出来の悪いBCBっていう感じだよ
209 名前:999 mailto:sage [2010/03/08(月) 18:57:13 ] VC++のDialogEditorのことを言っているのかね? DialogEditorならC++Builderとは根本的に異なる訳だが。 ちがうのかな?
210 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 21:15:53 ] C++/CLIなんて使い物にならんしな
211 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 22:22:48 ] >>210 どこがダメなの? 重いの?
212 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 08:52:43 ] C++/CLIって、元はmanaged C++であってポインタとか局所的にしか許さんでしょ。 だから、C++の標準STLでさえ、STL.CLIっていう特殊なライブラリが必要なんじゃね? ましてやboostが動作するわけないし、C/C++系のライブラリ混ぜよう、とすると頓挫でしょ。 スタンスはC丼じゃんw
213 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 09:12:37 ] >>212 Managed型を使わなければSTLも普通に使えるし、 ネイティブにコンパイルしたobjや静的ライブラリもリンクできるぞっと。 ただWinFormまわりは完全に.NETの世界なので、 GUIを手軽に扱うことを目的にC++/CLIを使いたいなら GUI記述専用の言語が別にあると思ったほうが早い。
214 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 10:23:03 ] 結論: VC++は使えねーヤシwwwww
215 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 11:20:52 ] ということはネイティブC++でポトペタしたければ やっぱりBCBが一番って信じていいんですね
216 名前:デフォルトの名無しさん [2010/03/09(火) 14:58:16 ] Windows7にC++Builder5をインスコしたら起動してくれないんだけど。。。 エラー内容は 'Debugger'の設定に失敗しました。 このエラーダイアログが出てOKボタンを押しても起動が途中で止まっていて 強制終了するしかないのですが、 これどうしたらちゃんと設定できますか?
217 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:10:24 ] 互換モードを設定したら?
218 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:50:50 ] 7は64?
219 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 13:39:26 ] BCB(2010)で文字列リテラルのコードページをUTF8にする方法はないでしょうか? 例えば char* p = "あ"; とするとpにはシフトJISのコードが入り wchar_t* wp = L"あ";とするとwpにはUCS2のユニコードが入ります 後者の方は当然だと思いますが、前者の方はソースコードをUTF8で保存しても 強制的にシフトJISにされてしまいます。他のコンパイラで使っていたUTF8の コードをコンパイルしたら出力が文字化してしまって困っています。
220 名前:219 mailto:sage [2010/03/10(水) 14:40:51 ] プロジェクトオプションの C++コンパイラ→拡張でコードページが指定できるのですね しかしこれだと全部のソースコードの一括指定みたいです ソースコードごとに指定するのは無理なんでしょうか?
221 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:32:47 ] ファイルごとにローカルオプションが指定できるよ。 またはソースごとに #pragma option -CP65001 を指定かな。
222 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:34:22 ] ソースコードのエンコーディングと char 型のエンコーディングは独立することが C/C++ 言語規格で規定されているので、 まぁしょうがないね。
223 名前:219 mailto:sage [2010/03/10(水) 17:10:40 ] >>221 ありがとうございました #pragma option -CP65001 でうまくいきました
224 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:30:45 ] >>216 Windows7 professional 32bitにBCB6だけど、Windows2000互換モードで動いてる 参考までに。
225 名前:デフォルトの名無しさん [2010/03/10(水) 18:55:40 ] 2010のTo-Doリスト初めて使ったんだけど、 項目を追加しても、リストに反映されなくて、「完了した項目を表示」のチェックをON/OFFすると 表示が更新される To-Doリストちゃんと使えてる?
226 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:55:51 ] TDBGridでスクロールするとデフォルトではカレントレコードも同時にスクロールしますが これをカレントレコードはそのままにしておく方法はあるでしょうか?
227 名前:デフォルトの名無しさん [2010/03/15(月) 09:44:28 ] ppp
228 名前:デフォルトの名無しさん [2010/03/15(月) 17:22:05 ] 当時BCB6への移行を見送ってしまい2005移行への移行に躊躇したために 未だにBCB5を使っていたのですがunicodeへの対応が必須になり移行を考えています 質問なのですが現時点で購入するとすればC++Builder2010がベストなのでしょうか? またProfessional版の場合にはVCLのソースが付属するのでしょうか?
229 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:12:22 ] >228 C++Builderなら2010だな。当然VCLのソースもついてる。ただしdbExpress/DataSnapは Pro版ではネットワーク上にデータを流してはいけないというEULA上の制約があるので気をつけて。
230 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 09:29:21 ] VCL/ANSIとVCL/UNICODEを吸収してくれる良いクラスは無いでつか? BCB6でも2010でも両方ともコンパイルできるようにしておきたい。
231 名前:228 [2010/03/16(火) 11:58:38 ] >>229 情報ありがとう御座います、購入の方を進めてみます 長らく移行出来なかった理由の一つにLightReport2で複雑な帳票を作っていることもあるのですが LightReport2をC++Builder2009又は2010で使用されている方はおられるでしょうか? 他言語文字がうまく印刷出来るのかどうかを知りたいです
232 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:19:53 ] >230 それがライブラリなら頑張って#ifdefで共通ソース化する。そうではなくアプリケーションなら ソースの共通化はすっぱりあきらめる。人間諦めが肝心。
233 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 11:02:58 ] >>230 MECSUtils homepage1.nifty.com/ht_deko/tech021.html > Delphi 2007 / 2009 / 2010 で同名の関数を使って同等の処理可能にするのが MECSUtils です。
234 名前:デフォルトの名無しさん mailto:sage [2010/03/20(土) 11:28:12 ] コンポーネントや RTL の文字列エンコーディングを変える訳では無いので ソースコードの共通化にはあまり向かない。 けれど、かなり特殊なことをしない限りは、シングルソースで対応できるのでまずは移植してみたら? と書いていて、ここは CBuilder であることに気づいたよ。 tchar の問題とかあるからなぁ。 まず、手持ちのコードを _TCHAR 使うように書き換えて ANSI のままでデバッグ。 wchar_t や tcsXXXX 関数は CBuilder だと大昔からある。 C++ で書いたコンポーネントなの?
235 名前:デフォルトの名無しさん [2010/03/24(水) 10:57:05 ] PopupMenuのMenuItemのClickイベントでMenuItemからPopupMenuを識別する方法を教えてください
236 名前:デフォルトの名無しさん [2010/03/24(水) 11:00:49 ] GetParentMenuで取れた おまえらほんと役にたたねーゴミだなw
237 名前:デフォルトの名無しさん [2010/03/29(月) 15:29:14 ] TLabelのCaptionは\nで改行できますが TPanelのCaptionはどうやったら改行できますか?
238 名前:デフォルトの名無しさん mailto:sage [2010/03/29(月) 20:50:52 ] 複数行は自前で描画する必要がある。DrawTextなので本来#13#10で改行して 描画されているのだが、高さ方向が常に1行分しか確保されていないので。
239 名前:デフォルトの名無しさん [2010/04/01(木) 16:21:39 ] 教えてください。 AnsiString FileName = ExtractFilePath( Application->ExeName ) + "hoge.mdb"; Variant cat = Variant::CreateObject("ADOX.Catalog"); cat.Exec(Function("Create")<<"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName + ";"); 上記のコードはC++Builder5なら問題なく動作して正常にmdbファイルが作成されるのですが C++Builder2007で行うとcat.Execで例外が発生してしまいます。。。 両方同じPCでコンパイルしてるのでOSの問題ではないとおもいます。 2007ではどうしたら正常に動作させることができますか?
240 名前:デフォルトの名無しさん [2010/04/02(金) 11:59:12 ] TStringGridで入力可にしてる時にセルを選択したらそのセルの文字列が 全部選択状態になっているのですが、これを選択状態にしない方法を教えてください
241 名前:デフォルトの名無しさん [2010/04/02(金) 16:55:56 ] タイムゾーンの取得する方法を教えてください
242 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 13:36:09 ] なんつーか、回答する気も起こらないつまらん質問ってあるよね。
243 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 13:48:36 ] 回答する気にならないのなら、黙っていなさい。無理にコメントを書くことは無い。
244 名前:デフォルトの名無しさん mailto:sage [2010/04/03(土) 14:02:03 ] >>243 かっこいい
245 名前:243 mailto:sage [2010/04/03(土) 16:25:18 ] 俺は神様だ 俺の言う事には必ず従え
246 名前:デフォルトの名無しさん [2010/04/08(木) 18:16:46 ] TDateTimePickerで▼を押されたときに出てくるカレンダーのマウスカーソルを変える方法を教えてください。 DateTimePicker->Cursor =crCross; だとコンボボックスしか変更されなかったので・・
247 名前:デフォルトの名無しさん [2010/04/14(水) 20:36:41 ] p
248 名前:デフォルトの名無しさん [2010/04/14(水) 20:38:17 ] C++Builder2007でTRichEditで特殊記号("§"等 )を追加すると 行挿入エラーが出るバグがあるのですが これを回避する方法を教えてください
249 名前:デフォルトの名無しさん [2010/04/19(月) 09:45:37 ] p
250 名前:デフォルトの名無しさん [2010/04/19(月) 10:37:43 ] TUdpSocketで送信はできるのですが受信ができません。 どうしたら受信できますか??
251 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 12:18:12 ] homepage1.nifty.com/MADIA/delphi/delphi_bbs/200707/200707_07070028.html
252 名前:250 [2010/04/19(月) 15:45:25 ] いやそれは見たんですけど、イベントは必要ありません。 ただ受信さえできばいいんですが、 BytesReceivedやselectしても全然きてないんです
253 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 18:26:52 ] ひとつは、送信と受信でポートが一致しているか確認する もうひとつは、ファイアウォールなどでブロックされてないか調べる
254 名前:250 [2010/04/19(月) 18:27:34 ] 他よろしく
255 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 19:10:49 ] NICのジャンボフレームの設定が双方で食い違ってないか確認する
256 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 19:13:07 ] ていうか、「送信が出来た」のはどうやって確認したんだ?
257 名前:250 [2010/04/19(月) 19:38:51 ] 相手PCにターミナルソフトで受けたんだ んで、逆にそのターミナルソフトから送信してやっても受信できない ちなみにC++Builder2007 ごちゃごちゃほざいてないで、お前等もTUdpSocketで受信を試してみろ
258 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 20:03:47 ] おもしろい奴だな
259 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 20:35:04 ] Wiresharkで確認すれ。
260 名前:デフォルトの名無しさん mailto:sage [2010/04/19(月) 20:44:07 ] C++Builder5のNMUDPでなら受信できたよ
261 名前:250 [2010/04/20(火) 11:36:58 ] >>260 まじですか とりあえず2007はバグって受信すらできないので 俺もBuilder5のNMUDPでやってみたんですが、やっぱ送信できても受信ができなかった。 チラっとコード教えて。 ちなみにWindowsのFWはOFFってるしPFWも入れてない。
262 名前:260 mailto:sage [2010/04/20(火) 11:58:58 ] こんな感じで void __fastcall TADataModule::NMUDP1DataReceived(TComponent *Sender, int NumberBytes, AnsiString FromIP, int Port) { scoped_array<char> buf(new char[NumberBytes+1]); int s = 0; TNMUDP& aNMUDP = dynamic_cast<TNMUDP&>(*Sender); aNMUDP.ReadBuffer(buf.get(), NumberBytes+1, s); buf[s] = 0; // ... }
263 名前:250 [2010/04/20(火) 12:52:21 ] >>262 あ、どうもありがとう。 むしろ、それ以前にDataReceivedイベントが入らないので その前のポート設定とかを教えてくださ。 これってbindしなくても勝手に受信できる状態になってるんですかね?
264 名前:260 mailto:sage [2010/04/20(火) 13:11:15 ] TADataModuleのコンストラクタで LocalPort にポート番号設定 ReportLevel は 1 にしてる それだけだよ
265 名前:250 [2010/04/20(火) 13:27:32 ] >>264 あ、ありがとうありがとう。でけますた。 RemotePortとLocalPortの設定が逆でした馬鹿でした俺はゴミです。 2007のTUdpSocketもそれがアレで受信できなかったのかなあ とりあえず試してみまふ
266 名前:250 [2010/04/20(火) 13:37:01 ] う〜ん、やっぱ2007はダメかあ。 2007でもLocalPortとRemotePortを逆にしてやってみたりはしてたんだが こっちの場合はRemotePortに目的のポート番号を指定しないと出力もできなくなる だから5のNMUDPでもRemotePortに指定してたんですが・・・ ちなみに、俺は昨日から何をほざいてるかと言うと、 最初はWinsocket APIでUDPで通信していて、相手から受信してから 返答を返す時に、相手が受け取ってくれない(SNMPのアレ) 勿論こっちはちゃんと返答を返しているのはターミナルソフトやWiresharkで確認済み。 んで、WiresharkでよくよくみるとSrcポートとDstポートがどうも逆っぽいみたいな Winsocket APIでこれを逆にできれば一番いいのだが、調べたがやり方がわからない そこでVBのうんこコンポで試してみたらLocalPortとRemotePortがあったので それでアレしてみたら見事にちゃんとなってくれたので それならBuilderのコンポでやってみるかってことで、
267 名前:250 [2010/04/20(火) 13:55:15 ] あ、ちなみなんだこれNMUDP これ送信するときはLocalPort=0、RemotePort=目的ポート番号で 受信するときはLocalPort=目的ポート番号、RemotePort=0 じゃないとダメなのかこれ つーことはこれって送信と受信したいなら2つNMUDPを使えってことか!! なんじゃこの糞仕様はw
268 名前:250 [2010/04/20(火) 14:05:36 ] あ、違った。 送受信するならLocalPorとRemotePortにポート番号をぶち込めってことだったぽ。。 いろいろすまんこったい
269 名前:250 [2010/04/20(火) 14:09:05 ] あ、ダメだ。 LocalとRemoteポートを同じにしたら結局APIでやてtるのと同じだこれ。 うんこしてくる
270 名前:デフォルトの名無しさん mailto:sage [2010/04/20(火) 14:10:11 ] >>267 ひとつで送受信は一応できると思う。 LocalPort : 待ち受けポート番号 RemotePort: 送信先ポート番号 っていうことで、送信元ポート番号や受信元ポート番号を 指定できない糞仕様だったと思う。
271 名前:250 [2010/04/20(火) 15:13:44 ] >>270 VBのアレが同じLocalPort、RemotePortって名前で 向こうはしっかりとSrcポートとDstポートがアレできてたから こっちもてっきり出来ると思っていたんですが、どうやらうんこだったようで・・・
272 名前:260 mailto:sage [2010/04/20(火) 15:25:32 ] ついでにNMUDPはbroadcastもできないよ なのでググりながらwinsock使ったことあるけど 難しくはないと思うよ
273 名前:250 [2010/04/20(火) 15:30:37 ] >>272 ええええ!! winsockでは普通に送受信はしてたんですがー それでSrcポートとDstポートって制御できましたか?? その辺を是非教えて頂きたいです
274 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 16:37:04 ] マイナー製品使うと、クソ品質、クソ仕様だらけで、結局そういうクソな部分の 解決なり時間費やすはめになる。
275 名前:デフォルトの名無しさん mailto:sage [2010/04/21(水) 17:41:18 ] >>274 マイナーかどうかは余り関係がないと思う。 それを補って余りあると考えている人間が使っているのだから 以下略
276 名前:デフォルトの名無しさん [2010/04/26(月) 10:53:03 ] Builder2007で ListView1->SortType = stData; ってすると、stDataが曖昧だってコンパイルエラーがでます。 これどうやってキャストしたら馬鹿な2007は納得してくれますか?
277 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 10:59:51 ] namespace::
278 名前:デフォルトの名無しさん [2010/04/26(月) 11:01:57 ] >>277 今度は馬鹿な僕が理解できませんでした。 それでキャストしたらエラーでましたが、どやって記述しますか?
279 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:09:09 ] いやマジでC++の入門書くらい読んだ方が良いって。 今回の件に関してだけなら stDataが定義されているComctrls::stDataとかで足りるかもしれないけどな。
280 名前:デフォルトの名無しさん [2010/04/26(月) 11:13:18 ] C++の入門書にComctrls::って載ってる? まあお前が答えるより先に解決したから礼なんて言わないし役立たずとかしおもってないし
281 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 11:21:02 ] おまえのヘルプには載ってないのか。 ホント、バカは何をやってもバカなんだな。
282 名前:デフォルトの名無しさん [2010/04/26(月) 11:35:33 ] ん?
283 名前:2068 mailto:sage [2010/04/26(月) 14:27:01 ] このスレのタイトルは くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4 くだすれC++Builder(超初心者用)その4
284 名前:2068 mailto:sage [2010/04/26(月) 14:28:05 ] >このスレッドは、他のスレッドでは書き込めない超低レベル、 >もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 >C++Builder使いが優しくコメントを返しますが、 >お礼はC++Builderの布教と初心者の救済をお願いします。
285 名前:デフォルトの名無しさん [2010/04/28(水) 11:08:33 ] 質問ですが。。。 Builder2007では↓のような関数を呼ぶときに void hoge( const char *buff ) { } ↓のコードでよかったのですが hoge( Edit1->Text.c_str( ) ); Builder2010で同じコードだと E2034 'wchar_t *' 型は 'const char *' 型に変換できない ってエラーがでます・・・ これどうやってキャストしたらいいですか?
286 名前:デフォルトの名無しさん [2010/04/28(水) 11:13:46 ] AnsiStringでキャストしたらできました・・・ けどこれって全部AnsiStringでキャストしないとダメですかね。。。 はぁ・・・何この糞仕様・・・
287 名前:デフォルトの名無しさん [2010/04/28(水) 11:27:20 ] っていうか・・・・ 2007で作ったのを2010でコンパイルすると 2010で作ったexeは2007のよりサイズが倍になってるんだが・・・ これ以前にBuilder5で同じバグがあってアップデートで多少小さくなったんですが これ2010もひょっとして同じバグ? それとも単純に無駄な機能が増えまくってexeが肥大化しただけですか? うーむどっちみち気持ちいいものではないなあ。
288 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 11:35:12 ] 2010はUnicode対応になってるので、その分ライブラリが肥大してると 思われる 吐いたコードを逆アセンブルで見てみな
289 名前:デフォルトの名無しさん [2010/04/28(水) 11:58:02 ] うるせえこのぶたやろう
290 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:03:07 ] >>289 なんだとこのぶた
291 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:50:48 ] やめんか豚ども
292 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:56:42 ] とんかつウマー
293 名前:デフォルトの名無しさん [2010/04/28(水) 16:08:51 ] どたどうしなかよくしようぜぶた
294 名前:デフォルトの名無しさん [2010/04/28(水) 18:11:44 ] なんで、超初心者用スレが荒れているんだ。 超初心者用でない質問スレがなくて、ここが超初心者用だと認識していなかった阿呆のせいか?
295 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 00:19:57 ] >285 2010ではString=UnicodeString(UTF-16)となった。hogeがconst char *をパラメータで 受け取る仕様とは食い違いがある。Stringを一旦ANSI(Shift_JIS)に変換してから受け取るか、 const wchar_t *を受け取るように変えるか、どっちかが必要。 >287 2010の新機能である属性(Attribute)の影響かと。
296 名前:デフォルトの名無しさん [2010/04/30(金) 14:10:19 ] すんません wchar_t filename[256]; ::lstrcpy( filename, ExtractFilePath( Application->ExeName ).c_str( ) ); 普通にコピーしたいんですがエラー出ます これwchar用の関数かなにかあるんですか?
297 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 15:44:38 ] lstrcpy は Windows Kernel API だから lstrcpyW があるな。 lstrcpy が lstrcpyA にマッピングされている。ということは UNICODE モードでコンパイルされていないようだから、 よい機会なのでアプリケーション全体を UNICODE モードでコンパイルしてみたら? ANSI 規格準拠で書きたければ wcscpy で。 C/C++ 言語は10年以上まえから UNICODE サポートを行っているので、必要なものは そろっていると思ってよいですよ
298 名前:デフォルトの名無しさん [2010/04/30(金) 15:47:57 ] >>297 ありがとうございます。 この機会にアレするとして今後の事を考えると どういう書き方がいいですかね?
299 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 16:09:34 ] プロジェクトの設定ダイアログに 「TCHAR を wchar_t にする」みたいなオプションがあるから それを有効に。 これで Windows API と関連する部分が UNICODE に切り替わるので コンパイルエラーが出てきたところを _T 系マクロでラップ。 T マクロを使う分には、ANSI/WIDE 両方で動くコードを作れる「はず」なので 「WIDE モードでエラーをつぶす」 「ANSI に戻して動作チェック」 「WIDE にして動作チェック」 を繰り返す。 最終的に ANSI/WIDE 両方で動く(C/C++)コードができて WIDE モードでコンパイルすれば UNICODE-VCL との親和性も高くなる。 というところ。
300 名前:デフォルトの名無しさん [2010/04/30(金) 16:24:31 ] >>299 あ、プロジェクトオプションのそれをアレしたら普通にlstrcpyでもコンパイル通った。 基本的にTCHARの設定はアレしないほうがいいんですかね? これから新たに作るとかのときは
301 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 16:46:13 ] なぜコンパイルが通ったかを理解していないと、ちょっと危ないかも。 lstrcpy (を含む Windows API で、文字を扱うもの)は、 lstrcpyA と lstrcpyW が実体として定義、提供されていて、 Windows.H とその配下がマクロ(単純な #define)で plain な lstrcpy にマップしているのです。 296 で提示されているコードでは wchar_t (と c_str())を直に使っているので、 WIDE 版の API である lstrcpyW を明示的に呼ぶほうが素直かも知れません。 ここら辺は各自の判断でよいかと。
302 名前:デフォルトの名無しさん [2010/04/30(金) 16:52:31 ] >>301 色々とありがとうございます。 ちょっとwchar_t等の知識が乏しいのでまずはその辺を勉強してみます。 ご教授ありがとう。
303 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 16:59:40 ] 「TCHARの設定」は、影響範囲とかがわからない場合には、むやみに変更しないほうがよいでしょう。 以下のコードなら、ANSI でも WIDE でも動きますよ。 TCHAR filename[256]; _tcscpy( filename, ExtractFilePath( Application->ExeName ).t_str( ) );
304 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:00:15 ] おっと、<tchar.h> を追加するのを忘れずに
305 名前:デフォルトの名無しさん [2010/04/30(金) 17:28:33 ] >>303-304 確かにそれでコンパイル通りましたが・・・ filenameの中身をみてみると??になってました・・・ ちなみにTCHARって1バイトなんですねこれ。
306 名前:デフォルトの名無しさん [2010/04/30(金) 17:36:38 ] CBuilder5では以下のコードはOKでちゃんとmdbファイルが作成されるのですが CBuilder2010でやるとコンパイルエラーはでないのですが、実行するとアクセス違反エラーが出ます。 Variant cat = Variant::CreateObject("ADOX.Catalog"); cat.Exec(Function("Create") << "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\test.mdb"); これ、どうしたら正常にmdbファイルを作成することができますか?
307 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 05:57:24 ] >実行するとアクセス違反エラーが出ます。 どこで?
308 名前:219 mailto:sage [2010/05/01(土) 09:06:17 ] HTMLの特殊記号をUnicodeに変換(&を&に変換する)してくれるような 機能はVCLにありますか?
309 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:23:40 ] >>305 TCHARはマクロ #ifdef UNICODE typedef wchar_t TCHAR; #else typedef char TCHAR; #endif
310 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:28:01 ] >>305 docwiki.embarcadero.com/RADStudio/ja/TCHAR_%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0
311 名前:デフォルトの名無しさん [2010/05/04(火) 11:50:15 ] 初心者ですお勧め参考書教えてください
312 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 17:01:47 ] TRegistryのWriteDateTimeとWriteTimeって同じ動作をするような気がするんですが... WriteTimeにしたからといって引数の日付値が消えるわけではないんでしょうか?
313 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 10:42:27 ] >>311 プログラミング初心者かC++初心者かC++Builder初心者かで違う。 前ふたつはできて、C++Builder初心者ならDelphiの参考書とマニュアルのC++拡張見れば十分。
314 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 21:50:24 ] C++Builder使ってる参考書ってあんの?
315 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:22:25 ] >312 WriteDateTimeとWriteDate/WriteTimeは同一の動作。つまり > WriteTimeにしたからといって引数の日付値が消えるわけではない で正解。
316 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 23:12:34 ] >>314 Amazonで検索してみれば?
317 名前:デフォルトの名無しさん [2010/05/07(金) 20:33:39 ] p
318 名前:デフォルトの名無しさん [2010/05/07(金) 20:34:21 ] >>307 やっとあくきんがとけた cat.Execの行でエラーでます。 これ何とかなる方法はありますか?
319 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 02:40:30 ] アクセス違反エラーを出しているモジュールを知りたかったので、 表示されているアドレス等、一式が欲しかったんだな。 多くのダイアログは、Ctrl-C でテキスト部分がコピーできるので、 気楽に保存できるよ
320 名前:デフォルトの名無しさん [2010/05/10(月) 12:22:32 ] >>319 エラーはEAccessViolationって書いてあるダイアログが出るだけです・・・
321 名前:デフォルトの名無しさん [2010/05/11(火) 11:07:17 ] C++Builder2007か2010でODBCを経由せずに直接DBアクセスする方法教えてください。 あ、DBはアクセスのmdbでいいです。
322 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 11:13:48 ] ADOならいいのか
323 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 11:24:26 ] dbgo とか ADOTable とか使ってみたら > 321
324 名前:デフォルトの名無しさん [2010/05/12(水) 09:49:17 ] ppp
325 名前:デフォルトの名無しさん [2010/05/12(水) 10:59:49 ] mdbファイル操作について質問ですが Variant::CreateObject("ADOX.Catalog");を利用して フィールドの型とサイズを取得する方法を教えてください
326 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 12:37:07 ] TMaskEdit の EditMask プロパティを実行時に変更すると スタックオーバーフローとか例外を吐かれたので解決方法調べてたんだが AutoSelect = false にすると収まったんで、とりあえずここにチラ裏していく。 ブレークポイント&ステップ実行使うと再現しなくなる例外でしたよ
327 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 13:28:04 ] for col in rs.Fields: col.name, col.type, col.size
328 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 16:28:43 ] そんなバグだらけな製品よく使う気になるよな。
329 名前:デフォルトの名無しさん [2010/05/12(水) 21:32:42 ] VCやGCCよりは遥かに少ないけどな
330 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 22:06:45 ] 2011が出る前に2010買っておいた方がいいのかな
331 名前:デフォルトの名無しさん [2010/05/13(木) 15:33:35 ] >>325 を教えて
332 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:15:57 ] 64bit対応版が安定するまでは6Pro使い続ける
333 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 12:17:12 ] bcb2007使用しています。 Memo1にAnsiStringに貯めこんだ改行含みの文字列を表示させて計算結果を表示しています。 数が多くなると処理が遅くなっています。高速化の定石があれば教えてください。 Ansi
334 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 12:20:47 ] enter押したら投稿してしまいました。 bcb2007使用しています。 Memo1にAnsiStringに貯めこんだ改行含みの文字列を表示させて計算結果を表示しています。 数が多くなると処理が遅くなっています。高速化の定石があれば教えてください。 AnsiString s=""; for(){ … s+=文字 } … for(){ … s+=文字 } … for(){ s+=文字 … } Memo1->Text=str; このような形です。 Memoにはこだわっていません。sのサイズがわからないので、 とりあえず、AnsiStringを使っています。 よい文字格納変数型とよい表示コンポーネントはあるでしょうか?
335 名前:デフォルトの名無しさん [2010/05/14(金) 16:26:25 ] IdUDPServerでいいからsrcポートとdstポートを逆にして送信する方法教えてよ
336 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 18:11:42 ] >>334 std::string str; str.reserve(64*1024); ... Memo1->Text = str.c_str(); でどうかね。
337 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 18:18:44 ] ああそうか C++BuilderにはStringBuilderがないからか
338 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 18:28:43 ] >数が多くなると処理が遅くなっています。 どれくらいの量の文字列を扱っていますか? 文字列処理が遅いのか、描画が遅いのか。をまず分けたほうがよいですね。 Memo1->Text=str; をコメントアウトして あと、速度の話をするときは、ちゃんと時間を計りましょう。 LARGE_INTEGER _start, _end; QueryPerformanceCounter(&_start); QueryPerformanceCounter(&_end); __int64 lap = _end.QuadPart - _start.QuadPart; こんなんで、CPU のクロック単位の経過時間が計れます。
339 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 21:32:23 ] 334です。 レスありがとうございます。 std::string str; を検討してみたいと思います。(BCBではつかえない?) 時間に関しては、文字蓄積時はあちこちなので、 時間がはかりづらいですが、 コンポーネントへの表示処理とそれまでの計算時間を 指標にして表示処理を時間的に評価してみたいと思います。 計算結果をテキストに表示する手法の常套手段が 知りたいのもありました。 なお計算は動的計画法なるもので、計算量はピンからキリまでありますので、 組み合わせが多い状態の高速化を図る予定です。
340 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 03:19:55 ] 一般論として。 「速度をあげたい」と思ったら、まずそれを測定することを考えましょう。 測定するために対象を調査していく過程で、問題点そのものが分かってしまう場合があります。 定期的に速度を計測、比較することで、少なくとも、改造の結果かえって遅くなった。ということは 避けられるでしょう。 テストするときは単一データではなく、複数のデータを使うこと。テストデータの量を変えること。 10, 20, 50, 100, 200, 500.... といった (1, 2, 5) パターンがおすすめ。 時間がかかるので端折るときでも、桁が異なる複数のデータ量での計測を忘れずに。 ある程度、対象データ構造、アルゴリズムの癖が分かったら、本質的にどこまで速くなるのか。 を考えてみること。データが(毎回)ディスクから読み取られるなら、ディスクアクセス速度より 速くはできない。(キャッシュとか考えないと) CPU のキャッシュを超える量のデータを扱うなら、メインメモリのアクセススピードを超えることはできない。 まぁ、ここら辺は厳密に計算する必要はなく、桁合わせ程度の概算で十分ですが、 原理上不可能な速度を追求して時間を浪費するのは避けたいですし、 逆に「もう一桁速くできるはずだ」となるかもしれません。
341 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 12:27:07 ] >>334 TStringStreamを使ってみてはどうだろうか?
342 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 22:05:25 ] TStringStream ありがとうございます。 検討中なので結果報告できないですが、ご容赦ください
343 名前:デフォルトの名無しさん [2010/05/26(水) 11:40:30 ] 早く>>325 を教えろつってんだ!!
344 名前:デフォルトの名無しさん mailto:sage [2010/05/26(水) 21:21:46 ] 調査中ですので、あと10年ほどお待ちください。
345 名前:デフォルトの名無しさん [2010/05/27(木) 11:04:13 ] うるせー!
346 名前:デフォルトの名無しさん [2010/06/02(水) 14:01:19 ] HDCをTBitmapにする方法教えて
347 名前:デフォルトの名無しさん [2010/06/02(水) 17:25:05 ] SQLConnectionでmdbファイルをアクセスする方法とかを教えてくださいよ
348 名前:デフォルトの名無しさん mailto:sage [2010/06/02(水) 22:59:11 ] >346 TImagePicture.Bitmap.HandleもHDCなので、ここに向かってBitBltすればいいんじゃない?
349 名前:デフォルトの名無しさん [2010/06/03(木) 09:41:54 ] >>348 できました
350 名前:デフォルトの名無しさん [2010/06/04(金) 15:55:05 ] 2007でデスクトップのサイズ(横幅)を超えるフォームを作っても 実行するとデスクトップの横幅と同じサイズになってしまうのですが これちゃんと指定したサイズになる方法を教えてください
351 名前:デフォルトの名無しさん [2010/06/04(金) 18:06:02 ] さっさと教えやがれ
352 名前:350 [2010/06/04(金) 19:11:01 ] はよ、教えろや 役にたたん奴らばぁじゃのぉ ウンコでも食うとれや
353 名前:デフォルトの名無しさん mailto:sage [2010/06/04(金) 22:27:33 ] ウィンドウはデスクトップサイズを越えることができなかったはず。Windowsの制限。 クレームはゲイツかカトラーにどうぞ。
354 名前:350 mailto:sage [2010/06/05(土) 05:35:49 ] >>352 で?
355 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 10:03:47 ] VMなんかでホスト側の解像度を超えられないのは馬鹿じゃねとかおもう
356 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 19:36:52 ] C++Builderでバージョン情報の自動更新などもない状態で全く同じファイルを コンパイルするとその都度違うファイルが出来ますがこれは何故なんでしょうか?
357 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 00:01:15 ] インクリメンタルリンクしてるからじゃね? フルビルドすると同じになるはず
358 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 00:26:02 ] ビルドの日付が埋め込まれるから異なるとかそんな話か?
359 名前:356 mailto:sage [2010/06/12(土) 00:56:43 ] ありがとうございます インクリメンタルリンクは切ってあります ステートファイルの作成をしないにチェックが入っていて/Gnオプションがオプションソースに書かれています でも毎回違うファイルになってしまいます >>358 そういうことなのでしょうか? どこかにオプションはありますか?
360 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:26:33 ] >>359 プロジェクト→オプション→バージョン情報とかじゃね? ビルドの日付を埋め込むオプションは見つからんなあ
361 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 13:54:38 ] >>360 そうですか バージョン情報のチェックは入ってない状態です 何で微妙に違うファイルが毎回出力されるんだろう というかこれってうちだけの現象なんでしょうか
362 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 14:00:13 ] diffってみたら?
363 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:18:13 ] WindowsはPEヘッダにタイムスタンプ入るから同じEXEはできない オプションはない それでも2バイト前後だから10バイト以上異なるならデバッグ情報ジャマイカ?
364 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 20:30:52 ] 成る程そういうことでしたか 大体10バイト程度ですが近くにPE\0の文字も確認できるのでそれで間違いなさそうです 勉強になりました どうもありがとうございます
365 名前:デフォルトの名無しさん [2010/06/13(日) 16:08:55 ] ようやく64bitに対応したね
366 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 16:12:43 ] あとはデバッガが動けばねぇ
367 名前:デフォルトの名無しさん [2010/06/13(日) 17:11:23 ] すみませんが、BCB6でfastmmのフルデバッグモードを使うには どのような設定が必要かご教示お願いします。 FastMM4.pasやFastMM4BCB.cppをプロジェクトに組み込んだのですが、 終了時にメモリリークのダイアログしかでてこないので、どこでリークしているのか 良く分かりません。
368 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 21:19:22 ] C++Builder使いじゃないからよくわからんけど、プロジェクトオプションでFullDebugModeを 定義済の状態にしてFastMM関係のソースをコンパイルすればいいはず(*.objか*.dcuを 一旦削除することで)。FastMM_FullDebugMode.dllを配置するのも忘れずに。
369 名前:デフォルトの名無しさん [2010/07/02(金) 20:18:11 ] わかりました。