トップページ⇒tech
1001コメント234KB

C++Builder相談室 Part11

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-6あたり。
0652デフォルトの名無しさんNGNG
>>651
h抜きしてあって分からなかったか。
ほれ。
http://www.tt.rim.or.jp/~muramatu/delphi/Delphi.html
0653デフォルトの名無しさんNGNG
>>649
mediatorパターンで
0654デフォルトの名無しさんNGNG
素人な質問ですいません
C++Builderプロフェッショナル版を買おうかどうか迷っております
DelphiとC++Builderの違いはアプリケーションの実行速度ぐらいで
他はほとんど変わりないのでしょうか?
0655デフォルトの名無しさんNGNG
コンパイル速度は大幅に違うけど、
アプリの実行速度はどちらがどうとは言い辛いんじゃないかw
0656デフォルトの名無しさんNGNG
レスありがとうございます
うむむ、、、どうしよう・・・このままDelphiでいくべきか
勉強し始めたC++のために頑張って買おうかどうか・・・
0657デフォルトの名無しさんNGNG
すでにDelphiやってるなら、いろんなモッサリ感が気になるかもなぁ。
コンパイル速度やコード補完や…。まあその他のIDEの使い勝手はほぼ同じ。
0658デフォルトの名無しさんNGNG
>>657
非常に参考になりました
どもありがとうございました
0659デフォルトの名無しさんNGNG
BuilderとDelでは言語が全然ちゃうやん。
0660デフォルトの名無しさんNGNG
作りたいものが作れれば何でもいいと思うよ
0661デフォルトの名無しさんNGNG
作りたい物が作れればアセンブリが速いと思うよ
0662デフォルトの名無しさんNGNG
いや、機械語を直接書くのが一番速い。
アセンブルする手間もかからない。
0663デフォルトの名無しさんNGNG
いや、自分の脳を直接使うのが一番速い。
書く手間もかからない。
0664デフォルトの名無しさんNGNG
BCBは.hと.cppを行き来するのに難ありと思う
0665デフォルトの名無しさんNGNG
>>663
デバッグしきれないのですが、どうしたらいいですか?
0666デフォルトの名無しさんNGNG
zip32.dllの日本語説明が書いてあるHPを教えてください
0667デフォルトの名無しさんNGNG
VCはANSIに完全に対応していないが、BCBはANSI準拠として使えるからBCBを使用する
っていう理由で利用している人もいると思う。
0668デフォルトの名無しさんNGNG
今は完全に逆なんでないっけ?ANSI準拠度
0669デフォルトの名無しさんNGNG
CoolBarのバンド位置の設定&取得方法を教えてください
0670デフォルトの名無しさんNGNG
>>669
こうするらしい
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=15#0178.txt
0671デフォルトの名無しさんNGNG
>>670
ありが�dたすかりますた。
0672デフォルトの名無しさんNGNG
VC7で親和性が旧製品に比べて高くなったとはいえ、「逆になる」ということはないんじゃない。
「逆」になるとは、BCBがANSI規格へ近づく態度を180度変更した時に言えることだべ。
0673デフォルトの名無しさんNGNG
BCB5を使用しているのですが、Office関連のVCL(Servers/WORDGlobalとか)の
マニュアルやヘルプが見あたりません。
どこかにはあるのでしょうか。
また、参考になるページ等ありましたら、ご教授ください。
0674デフォルトの名無しさんNGNG
>>673
OfficeのVBAヘルプ
0675デフォルトの名無しさんNGNG
クラスのメンバ変数(intの配列とか)を初期化する方法を教えてくあdさい
0676デフォルトの名無しさんNGNG
>>675
C++の言語仕様上、クラスメンバである配列を初期化することはできません。
他の方法で解決してください。
0677デフォルトの名無しさんNGNG
>>675
std::fill()などで0を書き込む。初期化じゃなくて代入だけどね。
0678デフォルトの名無しさんNGNG
>>676
そうなんですか・・
>>677
あ、つか1,2,3,4,5とかで初期化ならそれってアレですよね?
0679デフォルトの名無しさんNGNG
>>678
std::generate
0680デフォルトの名無しさんNGNG
>>679
それも初期化じゃなくて代入だけどね。
0681デフォルトの名無しさんNGNG
uninitialized_fill
0682デフォルトの名無しさんNGNG
変数を使用する前にある値を代入することを初期化っていうんじゃないの?
0683デフォルトの名無しさんNGNG
少なくともC++ではそう言わない。
代入と初期化は明確に区別される…よね?エロイ人。
0684デフォルトの名無しさんNGNG
機械語レベルではどっちもオナニー
0685デフォルトの名無しさんNGNG
関東地方では、そう言うらしいね。
0686デフォルトの名無しさんNGNG
マジか!
関西ではコンストラクタの処理が初期化ってことでOK?
0687デフォルトの名無しさんNGNG
初期化、イニシャライズとは、プログラマにとって意図する初期状態に設定することを意味する。
ゼロクリアが初期化で、初期値に設定するのを初期化と言わないなんて大間抜けだね。
あくまで、設計上の初期値に設定することを初期化と言うのだ。
0688デフォルトの名無しさんNGNG
言う言わないの問題じゃなくてそもそも動作が違うだしょ。>C++の代入と初期化
誰もゼロクリアを初期化なんて言ってないし。
0689デフォルトの名無しさんNGNG
int i=0;
これは代入?
0690デフォルトの名無しさんNGNG
>>689
初期化
0691デフォルトの名無しさんNGNG
>>687
そういう場合はせめて、
「ここでいう初期化とは、C++用語の初期化ではなくて、設計上の初期化のことです。」
って書いてください。

そうじゃないと意味が通りません。
0692デフォルトの名無しさんNGNG
言うのだ。
0693デフォルトの名無しさんNGNG
 ・
 ・
 ・
 iPos = 0; //ポジションの初期化、ここでいう初期化とは、C++用語の初期化ではなくて、設計上の初期化のことです。
0694デフォルトの名無しさんNGNG
突然すみません。
ビルダー初心者です。質問させてください。
C++ Builder 6 をインストールしたんですが、
Builder の画面の、ツールバーの各ボタン(新規作成とか開くとか)や、
パッケージ選択のボタンに、黒の横線が表示されているのですが、
どうしてこうなるのか、分かる方います?
0695デフォルトの名無しさんNGNG
他のアプリの例えばフォームのボタンを勝手に押すとか
入力欄に文字列を勝手に入力しちゃうとかする
プログラムは作れるのですか?
0696デフォルトの名無しさんNGNG
つくれる
0697694NGNG
文章じゃ説明しずらいですね。
画像、アップしました。
↓こんな風になってしまうのです。
http://49uper.com:8080/html/img-s/17272.jpg
選択は可能なので、機能に支障はないのですが。
0698デフォルトの名無しさんNGNG
>697
いっぱい入れてる常駐ものを外せ。
0699デフォルトの名無しさんNGNG
↑
ブラクラ
0700デフォルトの名無しさんNGNG
>>697
nVidia ?
なら、ドライバーの問題だったような気がする。うろ覚え。
0701デフォルトの名無しさんNGNG
>>697
コントロールパネルの画面の設定の詳細のトラブルシューティングで
ゴミが出なくなるまでハードウェアアクセラレータを落とす。
0702デフォルトの名無しさんNGNG
グラボのファン外すとやけどするくらい熱くなったらそんな感じになるよ
0703694NGNG
皆さん、どもです。
とりあえず、いろいろやってみます。
ちなみに、グラボは、MatroxG550 です。
0704694NGNG
なんか、コーディング以外の質問で、すまんです。

グラボのアクセラレータ下げたら直りました。
また、アクセラレータ戻して、エアコン入れて
グラボ冷やしても、直りました。
なんか、G550 が悪いみたいです。

レスありがとうございました。
0705デフォルトの名無しさんNGNG
>>704
おまえの部屋の風通しが悪い
0706デフォルトの名無しさんNGNG
ってかこの季節にエアコンって、どんなとこに住んでるんだよ。
0707デフォルトの名無しさんNGNG
漏れもG450で変になってたよ。Matroxはだめみたいだね。
今はRADEONでOK。
0708デフォルトの名無しさんNGNG
>>414-415
BCB6はインライン展開がアフォ過ぎるからSTL使うと糞遅くなる証明
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
#include <windows.h>
#include <string>
int compare(const void* a, const void* b) { return strcmp(((std::string*)a)->c_str(), ((std::string*)b)->c_str()); }
struct Compare :
public std::binary_function<const std::string&, const std::string&, bool>
{
inline bool operator ()(const std::string& a, const std::string& b) const
{ return strcmp(a.c_str(), b.c_str()) < 0; }
};
const int ssize = 1000000;
main()
{
std::string *s = new std::string[ssize];
for(int i=0;i<ssize;i++)
{
for(int i=0;i<16;i++)
{
s[i] += char(rand() % 26 + 'a');
}
}
DWORD t = GetTickCount();
//qsort(s, ssize, sizeof(std::string), compare);
std::sort(s, s+ssize);
printf("%dms\n", GetTickCount()-t);
delete[] s;
}
0709デフォルトの名無しさんNGNG
ちなみにうちの環境だと
bcc -O2で

qsortで301ms
qsort(s, ssize, sizeof(std::string), compare);

std::sort(s, s+ssize);で
3851ms

std::sort(s, s+ssize, Compare())で
3385ms

だった。
qsortよりstd::sortの方が11倍も遅いというのはBCBの糞最適化ならでは。
0710デフォルトの名無しさんNGNG
bcc32のバージョンは5.6.4ね。
0711デフォルトの名無しさんNGNG
>709 バカ?それとも知恵遅れ
なんでこんなこと言われているか理解できるか
君、アホ杉
0712デフォルトの名無しさんNGNG
>>711
まともな反論もできないらしいな
0713デフォルトの名無しさんNGNG
>>708
やってみた。
悲しくなった。
0714デフォルトの名無しさんNGNG
>712 重傷だな。マジ病院逝った方がイイよ。
悲惨やね
0715デフォルトの名無しさんNGNG
BCBの最適化が無いに等しいのは前々から散々言われてるし、
何を今更って感じだが…
0716デフォルトの名無しさんNGNG
age
0717デフォルトの名無しさんNGNG
>>708って
なんでこんなにstd::sortが遅くなるの?
comparatorが展開されなかったとしても、
qsortの方も元々インラインにはならないから、
インライン展開されなかったとしても同じ様な速さになるんじゃないの?
0718デフォルトの名無しさんNGNG
C++ではqsortよりstd::sort使えという根本を覆す結果だな
0719デフォルトの名無しさんNGNG
binary_functionの引数がおかしくないかというツッコミは置いておいて、
漏れも試してみたらやはりstd::sortの方がずいぶん遅いのう。
0720デフォルトの名無しさんNGNG
初心者ですいませんが、qsort()とstd::sort()の速度の違いが、BCB6はインライン展開がアフォ過ぎるからという理由になる理由がわからないのですが・・・エロイ方解説おながいします
0721デフォルトの名無しさんNGNG
>>708
ループ引数がおかしいよ。
直してもstd::sortの方が遅かったけど。
0722デフォルトの名無しさんNGNG
>>720
inline bool operator ()(const std::string& a, const std::string& b) const
{ return strcmp(a.c_str(), b.c_str()) < 0; }
};
これが展開されないって言いたいんじゃないの?
0723デフォルトの名無しさんNGNG
STLPortのソートアルゴリズムはquicksortじゃなくてintrosortってやつらしいけど、
この大きな差はソートアルゴリズムのせいって事はないん?
0724デフォルトの名無しさんNGNG
-D_USE_OLD_RW_STLしたらもっと差が付いたよ
0725デフォルトの名無しさんNGNG
速度なんて気にする香具師はBCB使うなという事で
以下何事も無かったようにどうぞ

--------------------------------------------------------

0726デフォルトの名無しさんNGNG
文字列を初期化する内側のループのiをjに変える。
つまり16文字×ssize個の文字列を作る。

結果
qsort 3093
sort(s, s+ssize) 4562
sort(s, s+ssize, Compare()) 3250

やっぱ>>708の条件(16個の超長い文字列と999984個の空文字列)
がクイックソートに有利だっただけってことじゃないかなぁ。
0727720NGNG
>722 すんませんが教えてください
inline bool operator ()・・・が展開されるされないとqsort()とstd::sort()の速度の違いは直接は何の関係もないと思うのですが・・・
つまりinline 部が展開されなくて遅いということを示しているとは言えないのではと・・・
0728デフォルトの名無しさんNGNG
元記事はstd::sortの弱点知っててわざとああ書いた臭いな。
0729デフォルトの名無しさんNGNG
長さ16,000,000の文字列16個と空文字列999984個のソートってなぁ
0730デフォルトの名無しさんNGNG
int rnd = rand()%30+2;
for(int j=0;j<rnd;j++)
{
s[i] += char(rand() % 26 + 'a');
}

こんな感じでちょっと長さを散らしてみたらこんなもんだった。

qsort:1963ms
std::sort(Compare()):2673ms
std::sort:3395ms
0731デフォルトの名無しさんNGNG
で908の見解は
0732デフォルトの名無しさんNGNG
>>908
期待してるぞ
0733デフォルトの名無しさんNGNG
訂正するスキもないなw
0734デフォルトの名無しさんNGNG
>>908
マジで?出島?
0735デフォルトの名無しさんNGNG
>>908 なるほど。
で>>708の見解は
0736デフォルトの名無しさんNGNG
>>708はstd::sortの弱点を利用して
BCBを陥れようとしていたんだな。ひどいな。
0737デフォルトの名無しさんNGNG
stlportって案外ショボイんだな。
0738デフォルトの名無しさんNGNG
>>737
いやソートなんてアルゴリズムとデータの組み合わせで大きく速度が変わるんだから、
別にSTLPortがしょぼいってわけじゃないと思うよ。
0739デフォルトの名無しさんNGNG
>>653
Thanx
簡単に実装できました
0740デフォルトの名無しさんNGNG
stringgridのFixedColsにフォーカスをあてることはできますか?
0741デフォルトの名無しさんNGNG
できません
0742デフォルトの名無しさんNGNG
やっぱ2chはレベル低いねw
MLで聞くからいいよ
0743デフォルトの名無しさんNGNG
ここは釣堀じゃありませんよ。
0744デフォルトの名無しさんNGNG
C++Builder6へIndy9をインストールしようとしたのですがエラーが出てうまくいきません。
成功した人インストール方法を教えてください
0745デフォルトの名無しさんNGNG
>744
ググれば方法なんていくらでも出てくるぞ。
自分で調べれ。
自分で調べてわからないとこを聞け。それが礼儀だ。
わかったか。
0746デフォルトの名無しさんNGNG
>>745
知らないならレスしないでください。おまえみたいなカスはウザイだけです
0747デフォルトの名無しさんNGNG
>746
君はちんカスレベルだな。
クレクレちんカス君は来るな。
0748デフォルトの名無しさんNGNG
>744
エラーが出たならどんなエラーが出たのかくらい書け。
情報小出し野郎が一番嫌われる。
0749746NGNG
相変わらずここは入れ食いだなプッ
0750デフォルトの名無しさんNGNG
やっぱ2chはレベル低いねw
MLで聞くからいいよ
0751デフォルトの名無しさんNGNG
↑なにこれ
流行ってンの?
■ このスレッドは過去ログ倉庫に格納されています