- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:39:51 ]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 C++Builder使いが優しくコメントを返しますが、 お礼はC++Builderの布教と初心者の救済をお願いします。 Borland Home Page www.borland.co.jp/ <過去スレ> くだすれC++Builder(超初心者用) pc8.2ch.net/test/read.cgi/tech/1117225464/l50 くだすれC++Builder(超初心者用)その2 pc10.2ch.net/test/read.cgi/tech/1144308804/l50 <兄弟スレ> くだすれDelphi(超初心者用)その39 pc10.2ch.net/test/read.cgi/tech/1169386914/l50
- 220 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:23:58 ]
- >>219
それBorlandのメールニュースで読んだきがする
- 221 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 09:18:18 ]
- あったあった
転載していいかどうか判らんから紹介だけ ボーランドのニュースグループ borland.public.cppbuilder.japanese の10月26日の投稿 『C++Builder2007になってからSTLの実行速度が遅くなっているのでしょうか?』 のレスに細かい手順があるよ Builder単体では出来ないので結構面倒
- 222 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 09:30:28 ]
- >>220
219です。できました! ありがとうございましたm(_ _)m
- 223 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 15:52:28 ]
- STLportはなぜかランタイムDLLの名前がgcc(MinGW)のものと同一に
なるのでバッティングして同居できないんだよ。
- 224 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 15:55:37 ]
- >>221のやり方みたら謎が解ける
- 225 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 16:13:34 ]
- >>221はヘッダファイルいじってコンパイラのバージョン番号変えてるだけ
ライブラリ名までは変わらない
- 226 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 23:10:33 ]
- C++Builderでボタンを押すたびに画像が変わるようにしたいんだけど
誰か分かる方いますか?どんなコード書いたらいいんでしょう。 イメージ的にはローカルに画像保存しておいてボタンを押したら そこの保存してある場所から持ってくるって感じなんだろうけど 上手くいきません。お願いします。
- 227 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:16:00 ]
- どこがうまくいかないの?を具体的に書いたほうが回答がつきやすいと思うよ。
- 228 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 08:07:53 ]
- std::vector<AnsiString> files; //読み込むファイルの配列
std::vector<AnsiString>::iterator files_it = files.begin(); //イベントハンドラ Image1->Picture->Bitmap->LoadFromFile(*files_it); files_it++; if (files_it == files.end()) files_it = files.begin();
- 229 名前:sage [2007/11/06(火) 16:00:03 ]
- C++Builder6を使用しています。
今回初めてスレッドプログラムを組んでいますが、 スレッドに対してパラメータを渡すにはどの様にすれば良いのでしょうか? DWORDとメモリのポインタを渡したいと思っています。
- 230 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 16:21:02 ]
- ターゲットスレッドのオブジェクトのメソッドコールしてやる。
- 231 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 16:21:14 ]
- TThreadならコンストラクタなりプロパティなりメンバ関数なり定義すればいいだろ。
フォームがTFormから派生してるように作成したスレッドもTThreadから派生してるだけだし。
- 232 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 16:25:06 ]
- スレッドクラスの派生にプロパティ付ける手もあったか。
- 233 名前:デフォルトの名無しさん [2007/11/07(水) 09:00:30 ]
- 最近、C++Builder 6 を使い始めた。
TXMLDocument の使い方教えてけろ。 EAccessViolation とかになっちゃうもんで。
- 234 名前:デフォルトの名無しさん [2007/11/07(水) 09:49:01 ]
- C++Builder 6を買おうと思っている初心者だけど、Personal版とProfessional版で何が違うの?値段が違うっていう回答はなしね
- 235 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 11:47:13 ]
- >>234
TurboC++でもDLして使っとき
- 236 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 11:48:30 ]
- >>234
VCLのソースの添付。
- 237 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 11:55:54 ]
- >>234
商利用の可否 DBコンポーネントの有無 紙のマニュアルの有無 tasmの有無(なくてもPascalソース上でインラインアセンブラ使用可能)
- 238 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 11:58:36 ]
- ま、Personalは体験版、Proは通常版、Entは資金提供版。
- 239 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:34:44 ]
- 初心者ながら古株のbcb5を使っています。
フォームを動的に表示する場合、 モーダルで表示したら次の行でデリートするのは わかっているのですが、 普通にショウする場合、 動的フォームを閉じた場合のデリートは どのタイミング(どのイベント)で 行えばよいのでしょうか? 動的フォームのcpp hにデリートを書く? 動的フォームが閉じた時の報告が親フォーム にくればいいんですが・・・ いろいろ調べたのですが、どうも。 教えてください。
- 240 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:32:07 ]
- 動的フォームのCloseイベントでthis->Release();じゃなかったっけ。
あとTCustomForm派生クラスはdeleteとかでデストラクタ直接呼び出したらだめ。
- 241 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:18:04 ]
- どうもです。
試してみます。
- 242 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:27:26 ]
- VCL6のソース読んだらCloseイベントでActionにcaFree突っ込めば勝手にRelease呼んでくれるっぽい
- 243 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:55:30 ]
- CBuilder 6を使っていますが、randomize()関数を呼び出しても乱数発生ルーチンが
初期化されていないようで、プログラムを実行するたびにrandom()関数が同じ値を 返してきます。RandSeed変数に出鱈目な値を入れてもrandomize()を呼び出しても 結果は変わりません。どんな原因が考えられるでしょうか。尚、Randomize()関数は フォームのコンストラクタの中で呼び出しています。
- 244 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:16:37 ]
- >>243
randomizeとRandomize両方表記してるけど、どっち? BCBにはどっちも存在して、random()に対応するのはrandomizeだけど、それは合ってる?
- 245 名前:デフォルトの名無しさん [2007/11/12(月) 21:20:33 ]
- >>243
種をstaticで保持しておかないとだめなんじゃないの?PCの乱数なんて周期があってそこから切り出すだけなんだから。
- 246 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:22:06 ]
- レス有難うございます。
Randomize()を呼んでも"r"andomize()を呼んでも結果は同じでした。実際の乱数 発生はrandom()関数を呼び出しています。尚、randomize()に対応するのはrandom() とのことですが、Randomize()に対応するのはrandom()とは別にあるのでしょうか。
- 247 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:29:34 ]
- >>246
System::Randomizeは下の関数に対応 System::RandG System::RandomFrom System::RandomRange randomize, srandはrandom、randに対応 上がVCLの乱数ルーチンで下はC標準関数。 で、乱数の初期化はsrand((unsigned)QueryPerformanceCounter());ならまず重複しないかと。 (パフォーマンスカウンタの戻り値が64bitだから桁あふれの警告出るかもしらん)
- 248 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:35:29 ]
- む、参照返しで戻り値がBOOLだた。
LARGE_INTEGER seed; QueryPerformanceCounter(&seed); srand(seed.LowPart); 大抵は srand(GetTickCount()); で十分だが。
- 249 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:41:31 ]
- 有難うございます。
早速RandomFrom()を使ってみたところ、コンパイルエラー(未定義の関数)が出てしまいました。 Randomize()に関してはエラーは出ません。プロジェクトに何かライブラリを追加しなくては ならないのでしょうか。
- 250 名前:249 mailto:sage [2007/11/12(月) 21:47:06 ]
- 失礼。
RandomFrom()ではなくRandomRange()でした。
- 251 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:51:54 ]
- >>249
ヘルプ見れ。 Pascalソースでuses MathってやるようにC++ソースだと#include <Math.hpp>が必要。 ヘルプの読み方は覚えておいたほうがいい。
- 252 名前:249 mailto:sage [2007/11/12(月) 21:53:23 ]
- 自己解決しました。
RandomRange()はvcl\math.hppで宣言されていますね。プログラムの先頭でこのファイルを インクルードしたらビルドできるようになりました。又、乱数発生機構もきちんと初期化 されているようです。プログラムを走らせるたびにRandomRange()から違う値が返ってきます。 どうもありがとうございました。
- 253 名前:249 mailto:sage [2007/11/12(月) 21:54:08 ]
- >>251
失礼、かぶってしまいました。
- 254 名前:デフォルトの名無しさん [2007/11/13(火) 03:52:42 ]
- 超初心者質問失礼します。classの練習で数字の合計値をdisplayする問題を、
classをいくつか作ってやろうとしたのですがどうしてもうまくいきません。 結局自分は下のようにmainでdisplayするよう作って動いたのですが、 classによって合計計算とdisplayを実行するにはどう作ればいいでしょうか。 class basic { int no; public: int accept() { cin>>no; return no; } }; void main() { int a[5],sum=0; basic ba[5]; for(int i=0;i<5;i++) { a[i]=ba[i].accept(); sum=sum+a[i]; } cout<<sum; }
- 255 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 09:10:37 ]
- BCB5の者です。
趣味でフリーソフトつくっていますが、 オプションフォームをnewで呼び出すか 起動と同時にロードしておくか どちらがいいのか迷っています。 ソフト自体の大きさは単体のみの動作で 1MB程度です。 一般配布を意識した場合、 オプションフォーオムはバックグラウンドに 待機させておくものでしょうか? それとも呼び出し毎にロードするものでしょうか? なお、常駐ソフトです。 オプションはダイアログ形式で 部品の数は20個ほどです。
- 256 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 09:37:11 ]
- >オプションはダイアログ形式で 部品の数は20個ほどです。
今のPC/dozなら、リソース的には無問題だが、 >起動と同時にロードしておくか コード的に素直じゃない。 さらに、オプション内容をフォームに保持させたりすると、プログラムが崩れてきたり。 フォームを開く時点でnewしてグローバルはなるべく無い方が良い。 どうしても消せないグローバルはあると思うが、グローバルフォームっていうのは...
- 257 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 10:31:17 ]
- よくわかりました。
一般作法ってのは聞かないと わからないものですから。 助かりました。
- 258 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 10:42:24 ]
- Win9xを考慮しなくて良いなら別に動的に作らんでも良いんじゃないの〜
- 259 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 10:59:08 ]
- 別に全部グローバルで良いんじゃないの〜
ってこと?
- 260 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 08:03:49 ]
- >>258
VB or JAVA プログラマみたいな発想でつな
- 261 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 10:56:40 ]
- BuilderはVB感覚で使ってるからね〜
- 262 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:42:39 ]
- VB->BCBはまったく違和感がない。
最近ここに張り付いたBCB5厨だけど、 ヴァーアップを考えています。 ターボCとBCB2007のどちらかとおもっています。 ベンダーのページみたら ターボCでもいけそうな・・・ どうなんだろ。 用途は、ちょっとしたアプリ程度で、通信なんか使わない。
- 263 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 13:17:22 ]
- >用途は、ちょっとしたアプリ程度で、通信なんか使わない。
今の時代超便利だお。 だってIndyをポトペタしただけで、データ渡しの手段が増えるんだから。
- 264 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 19:20:09 ]
- へぇ。
ターボCでもOK?ですか
- 265 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 19:47:34 ]
- って、言ったけど・・・。
ターボCの情報はスレチガイでつか?
- 266 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 19:47:51 ]
- YES
- 267 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 21:15:22 ]
- んなこたーない
TurboC++Expはコンポーネントの追加ができないからプロジェクトにIndyのユニット追加してソース上で自分で宣言/newしないとダメ。 Pro買うんなら2007かっとけ(TurboC++ = C++Builder2006 = C++Builder10)
- 268 名前:デフォルトの名無しさん [2007/11/16(金) 08:33:42 ]
- SQLでLIKE %あ%としたときに
パソコンによって あ ア ア が対象になるパソコンと あ しか対象にならないパソコンがありますが なにか環境が必要になってくるのでしょうか? いろいろ調べてますが決め手がわかりません よろしくお願いします。
- 269 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 11:12:43 ]
- >あ ア ア が対象になるパソコンと
>あ しか対象にならないパソコンがありますが んなこたーない LIKE '%あ%' クォートつけるべし スレ違いだ
- 270 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:20:19 ]
- static_castって、何をするものなのですか?普通の型変換と何が違うのでしょうか。
コードを書いていて、うまくいくのだけど、何をしているのか分からないと気持ち悪いし、問題もあるだろうし。
- 271 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 10:19:20 ]
- ttp://ray.sakura.ne.jp/tips/cast.html
- 272 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 22:27:43 ]
- >>271
トン。読んでみます。
- 273 名前:デフォルトの名無しさん [2007/11/27(火) 10:42:05 ]
- 質問です。
TStringList* lst; lstに文字列をセットして char* p=lst->Text.c_str(); として文字列先頭アドレスを求めて処理をしている部分があったのですが ある特定文字列のときに、pがNULLになります。 でも、 AnsiString str=lst->Text; char* p=str.c_str(); とすると正常に文字列先頭がセットされます。 この二つで違いが出る理由は何故なのでしょうか。
- 274 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 10:51:04 ]
- 物が違うから。
- 275 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 11:12:57 ]
- pがNULLってのは勘違いのはず。ただ無効な領域を指しているのでアクセスした時の動作は不定。
p = lst->Text.c_str()の実際の動作は、p = lst->GetTextStr().c_str()なので、 pはGetTextStrが返す一時オブジェクトが持つバッファを指していることになる。 上の式の評価後に一時オブジェクトは破棄されてpの参照先も無効になる。
- 276 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 15:04:54 ]
- ひさびさにくだスレが正常に機能してる例をみた
- 277 名前:273 mailto:sage [2007/11/27(火) 20:10:11 ]
- >>275
超ありがとうございます。 とてもよくわかりました。 ちゃんと表示されていないのは大きな文字列のときでした。 小さな文字列のときは、一時的なバッファがたまたま破壊されなかったので 正常に動いているように見えたのですね。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 23:56:19 ]
- 質問です。
下記 __finallyの中のA位置で、返そうとしている戻り値を知りたいのですが result変数を作る以外の方法はないでしょうか? int hoge() { try{ if(...) return 1; if(...) return 2; if(...) return 3; if(...) return 4; throw; }__fianlly{ (A) } }
- 279 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 08:05:12 ]
- fianlly
- 280 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 08:47:01 ]
- 無理でしょ
- 281 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 10:21:32 ]
- むしろresult作らない理由がないとおもう。
コスト云々なら例外処理やめてgotoで(A)に飛ばした方がはるかにコスト低いし。
- 282 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 10:28:46 ]
- どちらかというと、finallyはDelphi用であって、C++には元々無いもの。
Delphiにfinallyが必須なのはFreeのためであり、C++ではローカルオブジェクトの使用が推奨されている。 try finallyとtry except(←こっちはC++標準)のネストやその中でのthrow や return は言語規定されてないんじゃないかと思うのでやヴぁ目。 逆にローカル変数やローカルオブジェクトは推奨なので、 >result変数を作る以外の方法はないでしょうか? という考えがワケワカメ。
- 283 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 10:34:18 ]
- C++でもWindowsAPIのハンドル閉じたりするのにfinallyは有用よ。
最近のC++処理系は大抵__finally使えるし。
- 284 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 10:37:50 ]
- finallyが有用なのと各種処理系で実装されているのは認めますが(実際自分も使ってる)、
finallyと例外catch(上では間違えてexceptって書いちゃった)系や、returnを組み合わせちゃダメ。 何でかっていうと、tryを2つ組み合わせて、その中でreturnすると、一番外のfinallyを通過しない。 ソースコードを読む上ではfinallyは必ず通るって頭で読むから、バグの元になるだけだお。
- 285 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 11:50:46 ]
- むしろreturnできる処理でどう__finally使うのか
- 286 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 11:59:47 ]
- その通り。
・finallyするなら複数箇所でreturnするな ・複数箇所でreturnするならfinallyするな あと、プログラミングテクニック的には、 関数やメソッドから抜ける箇所は1箇所にするとコーディングバグを防げる。 つまり、複数箇所returnはやめるべき。 (これも適材適所で、使い方によっては便利なときもあるけどね)
- 287 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 12:23:07 ]
- >>285
Delphi で Exit の後に finally が実行されるのを利用するのと同じで ローカル変数のデストラクタは return の後に実行されるのだろ?
- 288 名前:209 mailto:sage [2007/11/28(水) 14:22:59 ]
- TListBoxのn行目を「マウスでクリックした状態」にするにはどうすればいいのでしょうか?
- 289 名前:デフォルトの名無しさん mailto:sage [2007/11/28(水) 16:12:00 ]
- SelectedIndexプロパティ とかなかったか?
- 290 名前:288 mailto:sage [2007/11/28(水) 17:53:35 ]
- Selected[n]でいいようです。ありがとうございました。
- 291 名前:278 mailto:sage [2007/11/28(水) 20:50:41 ]
- >>280-287
有難う御座いました。 各種参考にさせていただきます。
- 292 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:09:08 ]
- GetWindowLong(hwnd, nIndex)を使って、
すでにわかっている他アプリの子ウインドウ(ツールバー)の 位置変更およびサイズ変更をフックしたいと考えています。 フック自体良くわかっていません。 別に横取りして変更を加えるつもりはありません。スルーします。 単にバーの座標と幅・高さがユーザによって変更されたことの 通知がほしいだけです。 WM_MOVE WM_SIZE をつかって云々と他板での情報ですが、 WinAPIプログラマーリファレンスを見ても、 GetWindowLongとWM_MOVE・WM_SIZEのつながりが見えてきません。 再度申しますが、ユーザの変更知りたいだけで、座標データ等は取得済みです。 環境WinXP BCB5
- 293 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:17:45 ]
- GetWindowLong(HWND, GWL_WNDPROC)は対象が自プロセスじゃないと使えない。
SetWindowsHookEx使ってフックDLLからフックしないと無理。
- 294 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:35:17 ]
- なるほど。ますますわからん。
bcbのコード少ないからなぁ。 タイマーなんか使って こちらからアプローチすれば、座標データが わかっているんで、比較するだけで変更こそは 感知できるんですが、 ユーザーの変更を感知したいんですよね。 もう少し精進してみます。
- 295 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:45:19 ]
- BCBじゃなくてWin32APIの問題
- 296 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:00:56 ]
- 292です。
マルチいやだから書くけど、 Win32APIスレに転載して もまれて来ます。 とりあえず、一日放置してから 明日くらいにカキコしてみます。
- 297 名前:デフォルトの名無しさん [2007/12/08(土) 10:37:10 ]
- WinExecを使って自アプリAから他のアプリBを起動しています
アプリB処理完了後に自動で終了するものなのですが アプリAからアプリBが終了したのを調べる方法はありませんか? Aからデータを渡しながらBを順次稼動させたいのですが
- 298 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:06:25 ]
- CreateProcessをどうして使わないの?
どうしてもWinExecって事だと実行ファイルを開いてみてロックされてるかどうか見るか パソコン上のプロセスを列挙させるかだけど、他に実行されてると厄介だし 手間はズーっと大変だろうに
- 299 名前:297 mailto:sage [2007/12/08(土) 12:50:35 ]
- 単純に知りませんでした
CreateProcessなら簡単にできるのかな 少し調べてみます
- 300 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:54:23 ]
- CreateProcess()
WaitForSingleObject() CloseHandle() このあたりでしょうかね?
- 301 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:53:47 ]
- プロジェクト開こうとしたら、プロジェクトルールがみつかりません
って出るんだけど、これ何が原因ですかね?
- 302 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 14:04:15 ]
- TForm上に配置した複数のTCheckBox同士をDnDして位置を変えたいのですが
Checked値を変える為にクリックしただけでOnDragOverイベントに飛んでしまいます。 これらを切り分けるにはどうすればいいのでしょうか。
- 303 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 17:25:00 ]
- TMemoryStream::LoadFromFile にて大きなファイルを読み込もうとすると
「メモリストリームの拡大中にメモリが足りなくなりました」と言われます OSはXP、ファイルの具体的なサイズは1,382,526,976バイトです 確かにちょっと大きめのファイルですが何とか読み込みたいのですが BCBでは読み込めないサイズなのでしょうか
- 304 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 18:52:11 ]
- 搭載メモリは1GBという落ちか
- 305 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:08:12 ]
- ストリームなんだからファイルストリームでシークしてアクセスすればいいと思うんだけどな
どうしてわざわざメモリに読むのだろ?
- 306 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:20:11 ]
- メモリに取り込みたいって、高速処理したい以外に理由はあるんかね?
- 307 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 20:03:55 ]
- >>303の環境に十分な空き領域があっても、仮想メモリ空間内で"連続して"1.3GB分の空き領域がないと
メモリの確保には失敗する。どうしてもメモリに置きたいなら、小さいブロックに分けないと。
- 308 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:35:44 ]
- 私もオフセット指定でシークするのを薦めるな
- 309 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 08:56:45 ]
- 303です。
暗号化させるのにどかんと読んでどかんと処理させたかったのですが 僕のやり方は非常識だったんですね(苦笑)方針を変更してみます ありがとうございました
- 310 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 09:41:41 ]
- 大きなファイルはメモリに読むだけでも処理時間がかかるし、その間操作出来ないから
ユーザにはストレスがかかるだろ? それに仮想記憶の機構ってのはHDDのキャッシュの機構でもあるから、 ハードディスクをブロック的にアクセスするのもメモリに読むのもそうスピードは変わらない。 ブロック単位に読んで処理するのが一般的だし最速だと思うよ。 途中でユーザーはキャンセルも出来るしね。
- 311 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 10:58:30 ]
- データベースをパソコンで動かすようになってから、巨大ファイルは
一度にメモリに読み込んで処理するような機会は無くなってきたと思う。 1レコードが固定長ならランダムアクセスが出来るし、必要なインデックス 番号でシークすればいいのだから。
- 312 名前:デフォルトの名無しさん [2007/12/14(金) 20:32:36 ]
- ボタンを押したら、あらかじめbuilderで作っておいたexeファイルを実行(開く)にはどうすれば良いですか?
- 313 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 20:45:49 ]
- 他のプロセスとして実行させるなら
1, ShellExecute CreateProcess WinExec の windowsAPI 2,execl / execv とかのprocess.h どっちか
- 314 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 14:14:59 ]
- >>311
固定長じゃなくてもインデックス作っとけばランダムアクセスできるじゃん
- 315 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 14:22:03 ]
- 可変長だと読み込みはよくても、書き込み時にサイズ変わると大変だな
- 316 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 12:05:19 ]
- ちょっと良くわからないなりに
以下のようなソースを 書きました。 ColorDialog1->Color=(TColor)iFontColor; if(ColorDialog1->Execute()){ iFontColor=ColorToRGB(ColorDialog1->Color); } #255255255 or #FFFFFF のような値を得たいのですが、 どうしたら得られるでしょうか?
- 317 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:14:02 ]
- このコードならiFontColor にその形式で入ってる筈だけど?
- 318 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:39:20 ]
- とおもうんですが、
B R Gそれぞれ0-255の値がほしいのです。 逆に言うと、#FFFFFFから ColorDialog1->Color=hoge(FFFFFF); か ColorDialog1->Color=hoge(FF,FF,FF); か ColorDialog1->Color=hoge(255,255,255); のように扱いたいのです。 iFontColorの値がいまいち理解できていないと おもてまする。 今はカラーダイアログを使いとそれなりに動くので、 いいのですが、カラーピッカーからの数字データを 手入力でカラーダイアログもしくは、フォントカラーに 反映させたいのです。 iFontColorを16進法に酢りゃいいのでしょうか? 未熟で申し訳ないです。
- 319 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 13:49:21 ]
- char 配列とのunion かchar ポインタでアクセスするか
iFontColor & 0xff; (iFontColor>>8) & 0xff; (iFontColor>>16) & 0xff; とやるか
- 320 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 14:32:22 ]
- やっぱり深みにはまってしまった模様。
即レスいただけると大変ありがたいのですが、 内容が理解不能ならあせりますね。 iFontColorの構造をもう少し調べてみます。
|

|