くだすれC++Builder( ..
[2ch|▼Menu]
320:デフォルトの名無しさん
10/05/10 12:22:32
>>319
エラーはEAccessViolationって書いてあるダイアログが出るだけです・・・

321:デフォルトの名無しさん
10/05/11 11:07:17
C++Builder2007か2010でODBCを経由せずに直接DBアクセスする方法教えてください。
あ、DBはアクセスのmdbでいいです。

322:デフォルトの名無しさん
10/05/11 11:13:48
ADOならいいのか

323:デフォルトの名無しさん
10/05/11 11:24:26
dbgo とか ADOTable とか使ってみたら > 321

324:デフォルトの名無しさん
10/05/12 09:49:17
ppp

325:デフォルトの名無しさん
10/05/12 10:59:49
mdbファイル操作について質問ですが
Variant::CreateObject("ADOX.Catalog");を利用して
フィールドの型とサイズを取得する方法を教えてください


326:デフォルトの名無しさん
10/05/12 12:37:07
TMaskEdit の EditMask プロパティを実行時に変更すると
スタックオーバーフローとか例外を吐かれたので解決方法調べてたんだが
AutoSelect = false にすると収まったんで、とりあえずここにチラ裏していく。

ブレークポイント&ステップ実行使うと再現しなくなる例外でしたよ

327:デフォルトの名無しさん
10/05/12 13:28:04
      for col in rs.Fields:
        col.name, col.type, col.size


328:デフォルトの名無しさん
10/05/12 16:28:43
そんなバグだらけな製品よく使う気になるよな。


329:デフォルトの名無しさん
10/05/12 21:32:42
VCやGCCよりは遥かに少ないけどな

330:デフォルトの名無しさん
10/05/12 22:06:45
2011が出る前に2010買っておいた方がいいのかな

331:デフォルトの名無しさん
10/05/13 15:33:35
>>325を教えて

332:デフォルトの名無しさん
10/05/13 16:15:57
64bit対応版が安定するまでは6Pro使い続ける

333:デフォルトの名無しさん
10/05/14 12:17:12
bcb2007使用しています。
Memo1にAnsiStringに貯めこんだ改行含みの文字列を表示させて計算結果を表示しています。
数が多くなると処理が遅くなっています。高速化の定石があれば教えてください。

Ansi

334:デフォルトの名無しさん
10/05/14 12:20:47
enter押したら投稿してしまいました。

bcb2007使用しています。
Memo1にAnsiStringに貯めこんだ改行含みの文字列を表示させて計算結果を表示しています。
数が多くなると処理が遅くなっています。高速化の定石があれば教えてください。

AnsiString s="";
for(){

s+=文字
}

for(){

s+=文字
}

for(){
s+=文字

}

Memo1->Text=str;

このような形です。
Memoにはこだわっていません。sのサイズがわからないので、
とりあえず、AnsiStringを使っています。
よい文字格納変数型とよい表示コンポーネントはあるでしょうか?

335:デフォルトの名無しさん
10/05/14 16:26:25
IdUDPServerでいいからsrcポートとdstポートを逆にして送信する方法教えてよ

336:デフォルトの名無しさん
10/05/14 18:11:42
>>334
std::string str;
str.reserve(64*1024);
...
Memo1->Text = str.c_str();
でどうかね。

337:デフォルトの名無しさん
10/05/14 18:18:44
ああそうか
C++BuilderにはStringBuilderがないからか

338:デフォルトの名無しさん
10/05/14 18:28:43
>数が多くなると処理が遅くなっています。
どれくらいの量の文字列を扱っていますか?

文字列処理が遅いのか、描画が遅いのか。をまず分けたほうがよいですね。

Memo1->Text=str;

をコメントアウトして
あと、速度の話をするときは、ちゃんと時間を計りましょう。

LARGE_INTEGER _start, _end;
QueryPerformanceCounter(&_start);
QueryPerformanceCounter(&_end);

__int64 lap = _end.QuadPart - _start.QuadPart;

こんなんで、CPU のクロック単位の経過時間が計れます。

339:デフォルトの名無しさん
10/05/14 21:32:23
334です。
レスありがとうございます。
std::string str; を検討してみたいと思います。(BCBではつかえない?)
時間に関しては、文字蓄積時はあちこちなので、
時間がはかりづらいですが、

コンポーネントへの表示処理とそれまでの計算時間を
指標にして表示処理を時間的に評価してみたいと思います。

計算結果をテキストに表示する手法の常套手段が
知りたいのもありました。

なお計算は動的計画法なるもので、計算量はピンからキリまでありますので、
組み合わせが多い状態の高速化を図る予定です。

340:デフォルトの名無しさん
10/05/15 03:19:55
一般論として。
「速度をあげたい」と思ったら、まずそれを測定することを考えましょう。
測定するために対象を調査していく過程で、問題点そのものが分かってしまう場合があります。
定期的に速度を計測、比較することで、少なくとも、改造の結果かえって遅くなった。ということは
避けられるでしょう。

テストするときは単一データではなく、複数のデータを使うこと。テストデータの量を変えること。
10, 20, 50, 100, 200, 500.... といった (1, 2, 5) パターンがおすすめ。
時間がかかるので端折るときでも、桁が異なる複数のデータ量での計測を忘れずに。

ある程度、対象データ構造、アルゴリズムの癖が分かったら、本質的にどこまで速くなるのか。
を考えてみること。データが(毎回)ディスクから読み取られるなら、ディスクアクセス速度より
速くはできない。(キャッシュとか考えないと)
CPU のキャッシュを超える量のデータを扱うなら、メインメモリのアクセススピードを超えることはできない。
まぁ、ここら辺は厳密に計算する必要はなく、桁合わせ程度の概算で十分ですが、
原理上不可能な速度を追求して時間を浪費するのは避けたいですし、
逆に「もう一桁速くできるはずだ」となるかもしれません。




341:デフォルトの名無しさん
10/05/15 12:27:07
>>334
TStringStreamを使ってみてはどうだろうか?

342:デフォルトの名無しさん
10/05/17 22:05:25
TStringStream
ありがとうございます。
検討中なので結果報告できないですが、ご容赦ください

343:デフォルトの名無しさん
10/05/26 11:40:30
早く>>325を教えろつってんだ!!

344:デフォルトの名無しさん
10/05/26 21:21:46
調査中ですので、あと10年ほどお待ちください。

345:デフォルトの名無しさん
10/05/27 11:04:13
うるせー!

346:デフォルトの名無しさん
10/06/02 14:01:19
HDCをTBitmapにする方法教えて

347:デフォルトの名無しさん
10/06/02 17:25:05
SQLConnectionでmdbファイルをアクセスする方法とかを教えてくださいよ

348:デフォルトの名無しさん
10/06/02 22:59:11
>346
TImagePicture.Bitmap.HandleもHDCなので、ここに向かってBitBltすればいいんじゃない?

349:デフォルトの名無しさん
10/06/03 09:41:54
>>348
できました

350:デフォルトの名無しさん
10/06/04 15:55:05
2007でデスクトップのサイズ(横幅)を超えるフォームを作っても
実行するとデスクトップの横幅と同じサイズになってしまうのですが
これちゃんと指定したサイズになる方法を教えてください

351:デフォルトの名無しさん
10/06/04 18:06:02
さっさと教えやがれ

352:350
10/06/04 19:11:01
はよ、教えろや
役にたたん奴らばぁじゃのぉ
ウンコでも食うとれや

353:デフォルトの名無しさん
10/06/04 22:27:33
ウィンドウはデスクトップサイズを越えることができなかったはず。Windowsの制限。
クレームはゲイツかカトラーにどうぞ。

354:350
10/06/05 05:35:49
>>352
で?

355:デフォルトの名無しさん
10/06/07 10:03:47
VMなんかでホスト側の解像度を超えられないのは馬鹿じゃねとかおもう

356:デフォルトの名無しさん
10/06/11 19:36:52
C++Builderでバージョン情報の自動更新などもない状態で全く同じファイルを
コンパイルするとその都度違うファイルが出来ますがこれは何故なんでしょうか?

357:デフォルトの名無しさん
10/06/12 00:01:15
インクリメンタルリンクしてるからじゃね?
フルビルドすると同じになるはず

358:デフォルトの名無しさん
10/06/12 00:26:02
ビルドの日付が埋め込まれるから異なるとかそんな話か?

359:356
10/06/12 00:56:43
ありがとうございます
インクリメンタルリンクは切ってあります
ステートファイルの作成をしないにチェックが入っていて/Gnオプションがオプションソースに書かれています
でも毎回違うファイルになってしまいます

>>358
そういうことなのでしょうか?
どこかにオプションはありますか?

360:デフォルトの名無しさん
10/06/12 12:26:33
>>359
プロジェクト→オプション→バージョン情報とかじゃね?
ビルドの日付を埋め込むオプションは見つからんなあ

361:デフォルトの名無しさん
10/06/12 13:54:38
>>360
そうですか
バージョン情報のチェックは入ってない状態です

何で微妙に違うファイルが毎回出力されるんだろう
というかこれってうちだけの現象なんでしょうか

362:デフォルトの名無しさん
10/06/12 14:00:13
diffってみたら?

363:デフォルトの名無しさん
10/06/12 16:18:13
WindowsはPEヘッダにタイムスタンプ入るから同じEXEはできない
オプションはない
それでも2バイト前後だから10バイト以上異なるならデバッグ情報ジャマイカ?

364:デフォルトの名無しさん
10/06/12 20:30:52
成る程そういうことでしたか
大体10バイト程度ですが近くにPE\0の文字も確認できるのでそれで間違いなさそうです
勉強になりました
どうもありがとうございます

365:デフォルトの名無しさん
10/06/13 16:08:55
ようやく64bitに対応したね

366:デフォルトの名無しさん
10/06/13 16:12:43
あとはデバッガが動けばねぇ

367:デフォルトの名無しさん
10/06/13 17:11:23
すみませんが、BCB6でfastmmのフルデバッグモードを使うには
どのような設定が必要かご教示お願いします。
FastMM4.pasやFastMM4BCB.cppをプロジェクトに組み込んだのですが、
終了時にメモリリークのダイアログしかでてこないので、どこでリークしているのか
良く分かりません。


368:デフォルトの名無しさん
10/06/13 21:19:22
C++Builder使いじゃないからよくわからんけど、プロジェクトオプションでFullDebugModeを
定義済の状態にしてFastMM関係のソースをコンパイルすればいいはず(*.objか*.dcuを
一旦削除することで)。FastMM_FullDebugMode.dllを配置するのも忘れずに。

369:デフォルトの名無しさん
10/07/02 20:18:11
わかりました。


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

4407日前に更新/84 KB
担当:undef