[Tips]Borland C++Builder ちょいテク No.01at TECH
[Tips]Borland C++Builder ちょいテク No.01 - 暇つぶし2ch237:233
08/07/08 08:55:17
>>236
あ、断片化でOutOfMemoryが出ることがあるんですか。
勉強になりました。

BCB6なのでFasmMMは標準で入っていません。
数年以内には最新版に逝行するつもりです。

238:233
08/07/08 09:49:00
他にも、std::vector使いまくってるから、確かに断片化してるかも。
一応調査はこれで終わろうと思います。

が、この際周辺情報も入手しておきたかったり:
・断片化状態調査ツールなんかないですよね?
・断片化メモリを解放するメソッドはやっぱり無いですよね。
・FastMMにすると断片化を防げるわけですか。

239:デフォルトの名無しさん
08/07/08 16:19:35
断片化と言えば一部のMS-IMEが中途半端なアドレスに陣取ってて、1GB以上の物理メモリ積んだ環境でペイントソフトが起動しないってことがあったなあ‥‥

240:デフォルトの名無しさん
08/07/08 18:07:42
ページングでメモリ管理やってるんだからメモリ容量(仮想メモリを含む)
ぎりきりのメモリ確保をすれば連続したメモリ領域に確保され直される
と思うが

241:デフォルトの名無しさん
08/07/08 21:22:26
>238
FastMMでメモリアロケートの情報を取得できたような気もする。あとメモリ確保のストラテジが標準のものと
異なり、いまどきのメモリがそこそこある状況に最適化されていたはずなので断片化がおきにくいとは思う。
いずれにせよC++Builder 6でも使えるはずなのでまずは試してみてはいかがか?

242:233
08/07/10 10:32:26
>>239
メモメモ、すごい勉強になったけど、、、

そんなんあり?_? orz

>>240
そう思うんですけど、現象からはそれを破壊している何かが起きているような。。。

>>241
言われる通りです。
先延ばししても同じ問題が発生したら結局原因追究&対処しなきゃならないんですよね。

243:デフォルトの名無しさん
08/07/10 11:21:11
>>242
なんというか、MS-IME はこういう状況らしい。
URLリンク(magredirect.itmedia.co.jp)


244:デフォルトの名無しさん
08/07/10 11:53:15
日本語のMS-IMEを中国人に開発させるなよ・・・

245:デフォルトの名無しさん
08/07/12 00:16:20
毛唐は、日本語と支那語は似たようなものという認識しかねえだろ。


246:デフォルトの名無しさん
08/07/12 11:59:20
その前は韓国で作ってたし、レッドモンドの連中の認識はその程度かも。
「うちのほうが頭がいい連中が多いしIMEはまとめて作りますよ」とかいう言葉に乗せられちゃたんだろな。

247:デフォルトの名無しさん
08/08/01 11:28:41
コンピュータかコンピューターかなんて話よりそっちをどうにかしろってことだよな

248:デフォルトの名無しさん
08/08/09 23:26:48
さっき知って感動したこと。
試しに、プロジェクトにDelphiのソースを突っ込んでみたら
.hppファイルが自動生成されて、ビルドがちゃんと通った。
Delphiの変数宣言って、C++のポインタ宣言と同じで実体は生成されないんだね。
C++ならnewするのを、DelphiはCreateするって違いなんだね。
だから、VCLにはCreateメンバ関数が無いんだね。


249:デフォルトの名無しさん
08/08/10 01:24:36
>>248
単純なDelphiプロジェクトなら、プロジェクトマネージャに構成ユニット放り込めばビルド通るぞ。

250:デフォルトの名無しさん
08/08/15 15:45:38
だれかDMonkeyをBCBで使ってるやついない?

251:デフォルトの名無しさん
08/08/15 16:20:45
Monkey D るふぃー?

252:デフォルトの名無しさん
08/09/09 15:50:55
いま、BCB6で填まっているんですがどなたかお知恵を・・・

BCB6でサービスプログラムを作ったのですが、
有る処理で
Application->ProcessMessages();
と同様の処理をしないといけなくなったのですが、
Application->ProcessMessages();
を記述すると TServiceApplication のメンバーで無いと怒られてしまいます。

なにか他に ProcessMessages と同様の操作する方法ないでしょうか?。

253:デフォルトの名無しさん
08/09/09 15:55:51
ヒント: win32api アイドルループ

254:253
08/09/09 15:58:14
てか、検索書けると、
>C:\Program Files\Borland\CBuilder6\Source\vcl\forms.pas 6704: procedure TApplication.ProcessMessages;
まんまソース見えるじゃん。

255:デフォルトの名無しさん
08/09/09 16:12:04
ソースみれてもエラー出るつってんだよクズしねよ

256:252
08/09/09 16:14:52
誰でもいいからはよ答えんかいヴォケが
使えん奴ばっかりやのホンマに

257:デフォルトの名無しさん
08/09/09 16:27:58
>>255-256は僕じゃありません><
でも僕も同じ事を言いたいです><

早く教えてくださいこの役立たず共よ><

258:デフォルトの名無しさん
08/09/09 16:33:29
この糞共が
さっさと答えろっつーてんだろが

259:デフォルトの名無しさん
08/09/09 16:35:08
ほんとお前らって役にたたねーよな

260:デフォルトの名無しさん
08/09/09 17:23:41
>>253-259
ケンカをやめて、二人を止めて~わたしの為に争わないで~もう、これ以上~

って、すみません。
>>253,254 様の書き込みでソースパクって来たのですが、
Assigned() が判らない・・・検索に掛からない…
う~ん泣き

261:253
08/09/09 18:35:55
>Assigned()

これは、関数ポインタが設定(=アサイン)されているか?
ということを確認する関数。

どういうことかっていうと、OnClickみたいなイベントハンドラって関数ポインタ型になってるじゃん?

で、IDEでイベントハンドラ設定すると、

OnClick := ButtonClick;

みたいなコードで関数ポインタが設定されるわけ。

でコンポーネント側は、
>if (Assigned(OnClick))
> OnClick(self, , ,)
みたいにイベントハンドラが設定されてたら関数ポインタを実行(=関数を実行)するわけ。

262:253
08/09/09 18:37:49
ま、Assignedコールもできるでしょうし、意味的には、

>if (OnClick != NULL) {
> OnClick(self, , , );
>}

と等価です。

また、OnClickみたいな関数ポインタを使わず、
関数コール直接書いてもおk。

263:253
08/09/09 18:42:52
>で、IDEでイベントハンドラ設定すると、
>Button1.OnClick := Button1Click;
>みたいなコードで関数ポインタが設定されるわけ。

の方が正確かな。

ま、上記のような、コンポーネントがイベントハンドラを実行する仕組みは理解した方が良いが、
どーしても理解できない場合は、Win23APIべた書きして下さい:



URLリンク(www.m--takahashi.com)
// アイドリング処理 グローバル関数


264:デフォルトの名無しさん
08/09/09 21:39:44
>>261-263
すっげー。思わずコピペ保存しちまった。

>>252の者です。
ありがとう御座います、なんとか回避できました。
ていうか、元バグが原因で発生していたので、
ProcessMessages の様な事しなくて済みました。

今、社内では、誰だよこのアプリ作ったのは!!って騒ぎになってます。

265:デフォルトの名無しさん
08/09/18 20:10:21
だれなん?

266:デフォルトの名無しさん
08/09/19 08:49:35
作った本人何て言ってる?

267:デフォルトの名無しさん
08/09/20 19:37:43
ドキュメントどころかソースに名前がないのは酷いな

268:デフォルトの名無しさん
08/10/20 18:37:03
1ヵ月も前の話題にレス。

デバッグしてて VCL の中に入っていくといきなり Pascal になるからびびるよな。
しょーがないので、読める程度に文法知っておこうと文法書買って、せっかくだから
ちょっと書いてみるかで付属の Delphi(BCB 5 Pro には Delphi 4 が付属してた)使ってみたら
そのまま Delphi にハマってしまった。

269:デフォルトの名無しさん
08/10/21 02:28:29
C++Builderなら
プロジェクトにC++とDelphiを混在させることができるから便利。
Delphiで書きたいとこは、Delphiのファイルにする。
自動的にPascalファイルから、hppファイルを作成してくれる。
Delphiのサンプルソースはあるけど、C++での書き方がわからないという場合
無理してC++に書き換える必要はなく
そのままDelphiのソースが使えるのが、C++Builder


270:デフォルトの名無しさん
08/10/30 12:45:08
あらら、C++Builder使ってて、標準ライブラリのPascalコードに迷い込んだ私が通りますよ。

ところで、その標準ライブラリのソースを弄りたくなったんですが、
どうやってライブラリに反映させたらよいのでしょう?
ご存知の方、いらっしゃいませんか?

具体的には、...\source\Win32\vcl\Forms.pas ですけどね。


271:デフォルトの名無しさん
08/10/30 22:45:54
パッケージ作り直すか、自分のプロジェクトに直接放り込む。

272:デフォルトの名無しさん
08/10/31 09:32:45
>>271
やっぱそうなりますか……
ありがとう。やってみます。

273:デフォルトの名無しさん
08/11/04 18:40:45
Delphi の方法ですが、BCB にも dcc32 はあるみたいだし、使えないかな。
かの中村氏の ML への投稿です。

URLリンク(www2.big.or.jp)


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