C++Builder相談室 Part19at TECH
C++Builder相談室 Part19 - 暇つぶし2ch357:デフォルトの名無しさん
09/03/02 16:16:59
>>356
んじゃ>>350はなんなの?

358:デフォルトの名無しさん
09/03/02 16:21:38
違いはないから、メモリ管理をコンパイラに任せず自分でやれって事だ
再帰使うとスタックオバーフロが起こりうる

359:デフォルトの名無しさん
09/03/02 16:25:48
スタック領域はコンパイル時に決定されてしまうだろ。
だから予定外のメモリ確保が出てくる再帰使うと停止する。
動的確保なら、OSがスワップとかしてなんとかできる。

360:デフォルトの名無しさん
09/03/02 22:02:32
つかどんだけ深い階層になってるんだ?リパースポイント(FILE_ATTRIBUTE_REPARSE_POINT)とか設定されてね?

361:デフォルトの名無しさん
09/03/02 22:46:44
>356
スタックの類使わなくても書けるの?

362:デフォルトの名無しさん
09/03/03 05:37:46
まだ初心者なのですが、batファイルをC++builder6で
ボタンを押したら実行するようにしたいので

ShellExecute(Handle,"open",ファイル名.c_str,NULL,NULL,SW_SHOW);

と書いたのですが、うまくいきません・・・どなたか教えてくださいOTL

363:デフォルトの名無しさん
09/03/03 07:55:49
↑解決しました、スレ汚しすまそOTL

364:333
09/03/03 19:45:29
遅レススマヌ
>>334
ヘルプでTMutexで調べるとあるみたいだぞ?

365:334
09/03/04 09:24:55
orz

そうなんだ。
知らないから、Win32APIベタでコールしちゃってるよ。

366:332
09/03/05 19:13:35
>333
ありがとうございます。
末端のソケットに対するアクセスには排他はかけていませんでした。
同時にアクセスできるのは1スレッドだけというシングルコアに絆された思い込みがありましたので・・・。
早速試してみます。

バージョンアップ検討中の名目でEmbarcaderoにマルチコア対応状況を
ダメ元で確認してみたところ、かなり丁寧に教えてもらえました。
結論としてC++Builder6のTServerSocketとTClientSocketに関しては
マルチコア環境での動作保障をしていないとのことです。
以降のバージョンでこれらのコンポーネントが無くなっていた時点で気付くべきでしたorz

ちなみに現行バージョンではIndy系を推奨しているようです。
排他で解決できればとりあえず目的は達成されるのでここまでにしたいと思います。
ありがとうございました。

367:デフォルトの名無しさん
09/03/06 20:40:01
DLL内部の関数からDLLに組み込んだフォームやApplication->MessageBox()を呼ぶと、
通常の子ウィンドウと違ってウィンドウがタスクバーに表示されてしまいます。
DLLロード後にメインフォームのハンドルをDLLに渡してやることで
どうやらうまく行くようなのですが、手法的にスッキリしません。
もっとスマートに行う方法はないものでしょうか。BCB6を使っています。

368:デフォルトの名無しさん
09/03/06 21:15:46
>DLLロード後にメインフォームのハンドルをDLLに渡してやることで
十分スマートじゃないか?
つかそうするのが普通だろ?

369:367
09/03/06 22:25:48
>>368
やっぱりそうですか?
ロードと同時にDllEntryPoint()でなんとかできないのかなーと思ったんですが。
とりあえず邪道ではないようで安心しました。ありがとうございました。

370:デフォルトの名無しさん
09/03/06 22:55:50
ウインドウハンドルを要求するAPI関数が
どこからリンクされているか考えれば問題ないとわかるはず…

371:デフォルトの名無しさん
09/03/13 15:01:44
2007でwsprintfやlstrcpyが未定義エラーになっちゃうんだけど
オプションのどこいじればいいですか?
ちなみに、他のプロジェクトだとちゃんとコンパイル通ります。
なんか1つのプロジェクトだけこのエラーでるんです・・・

372:デフォルトの名無しさん
09/03/15 10:33:12
VistaでCB2007使い始めたんだがOpenDialogを開こうとしてもなぜか必ず失敗するorz

if(!OpenDialog1->Execute())return;
ShowMessage(OpenDialog1->FileName);

何も間違ってないはずなのに!

373:デフォルトの名無しさん
09/03/15 14:28:51
まあどう考えても
バグだらけだろ。


374:デフォルトの名無しさん
09/03/16 08:51:47
>>327
OpenDialogが開くダイアログ位置おぼえてるっぽくて、
全然開かない現象がBCB6+xpであった。

Project1.bpr/Project1.exe の組み合わせで発生して、
同じプロジェクト名だと再発するんだが、
違うプロジェクト名にしたら現象消えた。
まだ原因を追っかけてはいない。

375:デフォルトの名無しさん
09/03/16 10:39:42
2009って64ビットに対応してる?

376:デフォルトの名無しさん
09/03/16 11:09:52
対応している。


377:デフォルトの名無しさん
09/03/16 11:33:22
え”、ウソだろ?
そうなら、2009買って64bit調査開始しなきゃならんやん。

378:デフォルトの名無しさん
09/03/16 12:01:30
>>376
嘘つけ!

379:デフォルトの名無しさん
09/03/16 12:28:43
対応して犬

380:デフォルトの名無しさん
09/03/16 13:19:47
対応している言葉は間違えない
ただ、
64ビットのコードを吐くとは言っていない


381:デフォルトの名無しさん
09/03/16 13:24:34
対応してぬこ


382:デフォルトの名無しさん
09/03/16 13:40:32
>>380みたいなクズってまだいたのね

383:デフォルトの名無しさん
09/03/16 15:14:26
>>380
お前みたいなカスはレスするなよ

384:デフォルトの名無しさん
09/03/16 20:07:58
このスレはカスとクズとゲスで出来ています

385:デフォルトの名無しさん
09/03/16 22:42:12
正直、BCB2009自体がカスなんだがな。

386:デフォルトの名無しさん
09/03/16 23:13:55
もう注文しちゃいましたよ>>385
というかCCBが正しいのかな?
CODEGEAR C++ Builder2009

387:デフォルトの名無しさん
09/03/17 00:06:25
CordGuardが止まらない

388:デフォルトの名無しさん
09/03/17 00:16:31
それなんてロマンチック?

389:デフォルトの名無しさん
09/03/17 10:16:48
スペル違うし

390:デフォルトの名無しさん
09/03/17 19:46:26
くだすれの方で誰も答えてくれないのでマルチになりますが質問させて下さい
ウィキペディアに、

>C++ Builderの新しい版ではMFCやDirectXなどもサポートしている。

って書かれてるんですが、それって

URLリンク(www.clootie.ru)

このページで公開されてるライブラリ使わなくても、正規のDirectXを使えるってことですか?


391:デフォルトの名無しさん
09/03/17 22:25:52
>>390
半分は。
DirectX9が入っているが、d3d9x.libなどが無い。
チュートリアルの1は何とか何もしないでいける程度。

392:デフォルトの名無しさん
09/03/18 03:25:27
>>391
それはサポートしているとは言えないんじゃ…


393:デフォルトの名無しさん
09/03/18 16:47:33
2009のチラシが届いたんだが使い勝手はどんなもん?
未だBCB6の俺としてはそろそろOSも変わるかもしれんしバージョンアップ考えた方がいいかなと思ってるんだが

394:デフォルトの名無しさん
09/03/18 16:50:14
まだチラシが届きません(><;)

395:デフォルトの名無しさん
09/03/19 02:34:42
>>375

URLリンク(en.wikipedia.org) Builder

>A future version of CodeGear C++Builder (codenamed Commodore) will support x86-64 and create x86-64 Native code.


396:デフォルトの名無しさん
09/03/19 17:22:06
コンパイルするとたまに作成するアプリのアイコンがデフォのアイコンになっちゃうんだけど
これ原因わかる人いる?
ちなみに、他PCで同じプロジェクトを何度コンパイルしてもちゃんと指定したアイコンになってます。


397:デフォルトの名無しさん
09/03/19 17:24:06
ねーよw

398:デフォルトの名無しさん
09/03/19 17:28:40
いや、お前達みたいな奴に聞いても無駄だってわかってはいるんですが
もしかしたら同じ症状の人がいたらラッキーかなっておもったんで

399:デフォルトの名無しさん
09/03/19 17:41:03
>>396
Builderのバージョンとかは果敢機会?

400:デフォルトの名無しさん
09/03/19 18:18:30
>>399
あ、そういえばそうですよね。
まあ言っても無駄だとおもうけど。
C++Builder5 proですよ。

401:デフォルトの名無しさん
09/03/19 18:23:44
それって昔あったOSのバグだろ。


402:デフォルトの名無しさん
09/03/19 19:07:22
OSの方ですか・・・
OSはXPSP2なんですがSP1をアップデートしてSP2にしたんですが
これが途中でエラー出てあれなんだよばかなんですよね。
あ、そういやSP1のPCでやってもダメなのあったなあ
4台で試して2台が現象発生だこのやろう!!


403:デフォルトの名無しさん
09/03/19 19:09:39
C++Builder2009Proがきたぞ
インストールだ

404:デフォルトの名無しさん
09/03/19 19:32:08
2007と何処が違うのか教えてくれ

405:デフォルトの名無しさん
09/03/19 19:58:08
2007がない

406:デフォルトの名無しさん
09/03/19 20:54:26
強制的にユーザ登録ってなんだよ。
しかも登録先が英語・・・

407:デフォルトの名無しさん
09/03/19 21:16:23
何故に最新のSP3にしないのだろう。


408:デフォルトの名無しさん
09/03/19 23:41:02
C++Builder 6
ボタンとかタブのカラーは変えられないのですか?

409:デフォルトの名無しさん
09/03/20 00:00:31
BCBuilder5とC++Builder2009って同居させても問題ないよね?

410:デフォルトの名無しさん
09/03/20 00:12:19
2009のクイックスタートガイドに
実行環境っていうのがあるんだけど
作ったアプリケーションが動作する環境っていう意味なの?

411:デフォルトの名無しさん
09/03/20 01:04:25
>>409

OK

412:デフォルトの名無しさん
09/03/20 01:39:34
>>408
先に古い方からインスコ

413:デフォルトの名無しさん
09/03/20 20:52:33
別スレッドを動かしている時、スレッドが終了したかどうかを確認する方法を教えて下さい
お願いします。


414:デフォルトの名無しさん
09/03/20 21:06:00
TThread とかだったらHandleやThreadIDプロパティをチェックするとか

415:デフォルトの名無しさん
09/03/20 22:33:27
処理が終了したのか、スレッド自体が終了して消え去ったのかでだいぶ違うけど
後者なのかな。


416:デフォルトの名無しさん
09/03/20 22:56:41
>>396
遅レスだが、会社で組んだソフトがその現象になって困ったことがあったよ。
確か、プロジェクトファイル(.bprファイル)をテキストエディタで開いて、
<LIBRARIES value=だか<SPARELIBS value=の最初のlib
を最後に移動して保存して、BCB5で開いてリコンパイルしたら直ったと思うよ。

417:デフォルトの名無しさん
09/03/20 23:03:41
URLリンク(page4.auctions.yahoo.co.jp)

418:413
09/03/21 11:28:05
初心者なもので

>>414
HandleやThreadIDプロパティってどのように記述するのですか?

>>415
後者です


419:デフォルトの名無しさん
09/03/21 14:13:18
WaitForSingleObjectでTThread.Handleを待機。

420:デフォルトの名無しさん
09/03/21 17:55:06
>>418
TThread *Thread として(実際はTThreadの派生系)

方法は2種類あると思う。

1)待機関数、Handleを使う
if(WaitForSingleObject((HANDLE)Thread->Handle,0)==WAIT_TIMEOUT) { /* スレッドは実行中 */}
else { /* スレッドは終了している */}

2)OnTerminate イベントを使う
void __fastcall ThreadTerminated(TObject*){ /* スレッド終了時に処理をさせる。処理はメインスレッド内で実行される。*/}
Thread->OnTerminate=ThreadTerminated;

421:デフォルトの名無しさん
09/03/22 15:43:47
>>413
TThread.Finished プロパティを調べる。trueなら終了。

422:デフォルトの名無しさん
09/03/22 18:52:50
ちょっと質問。
C++Builder2009Pro。
アプリケーション作成時のデフォルトアイコンあるでしょ。
あれって変えられない?
デフォルトがヘッドギアってダサすぎです

423:デフォルトの名無しさん
09/03/22 20:23:44
C++Builder6だとプロジェクトのオプションとかで変えられたけど
2009は持ってない。

424:デフォルトの名無しさん
09/03/22 21:27:37
C++Builder2009でもプロジェクトオプションで変更できる

425:デフォルトの名無しさん
09/03/22 21:49:45
あーえっと。
新規プロジェクト→アイコン変える
のようにプロジェクトの作成のたびにアイコンを変えるのがめんどくさい。

アイコンを変えておく→新規プロジェクトうんぬん。

プロジェクトが作成されるたびにデフォルトで指定したアイコンになっていてほしい。

426:デフォルトの名無しさん
09/03/22 21:52:03


427:デフォルトの名無しさん
09/03/22 21:59:58
アイコンファイル自体を置換してしまえ

428:デフォルトの名無しさん
09/03/22 22:05:04
そそうか
デフォルトのオプション設定でアプリケーションの項目がないからあきらめてた
あまりにもダサいから必ず変えるように仕向けたいのか
残念だ
ありがとう

置換?できるのか?

429:デフォルトの名無しさん
09/03/24 20:16:41
どこかにアイコンのリソースはある筈だからそれを変えられればいいだよな

430:デフォルトの名無しさん
09/03/24 20:46:21
どこか知らないならレスするなよクズ

431:デフォルトの名無しさん
09/03/24 20:48:03
ヘタな釣りw

432:デフォルトの名無しさん
09/03/24 21:00:09
ちょっと探してみたけど.resや.icoの形ではないみたいだなあ
どこに組み込まれてるんだろ

まあ、そもそもそんな必要があるとは思えないけどね

433:デフォルトの名無しさん
09/03/24 22:22:18
DLLじゃね

434:デフォルトの名無しさん
09/03/24 22:35:27
そんな必死になることなのか

435:デフォルトの名無しさん
09/03/24 22:47:56
アイコンなんてクリック数回で変えられるじゃん。
だいたい、作るプログラムは全部デフォルトのままかよ。


436:デフォルトの名無しさん
09/03/24 23:11:22
別にいいじゃん
ネタとして話をしても

437:デフォルトの名無しさん
09/03/25 00:07:54
自分だけで使うものとかさ、アイコンを変更するまでもないんだけどあのアイコンはいやだから毎回変えているんだ。
WindowsフォルダのTASKMAN.EXEみたいなアイコンにしている。

438:デフォルトの名無しさん
09/03/25 14:15:53
グローバル変数の評価式だけ???やデタラメな数字になってしまうたすけてください

439:デフォルトの名無しさん
09/03/25 14:19:47
グローバル変数はなくすべきだろ、常考。

440:デフォルトの名無しさん
09/03/25 14:23:49
最適化が有効になってるんじゃねえのか。


441:デフォルトの名無しさん
09/03/25 15:42:08
もっかいBuild allしてみ

442:デフォルトの名無しさん
09/03/25 17:10:11
1行エディットして改行したただけで
それ以降のブレークポイントがみんなズレるんだけど
なんかいい方法ないかな


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch