くだすれC++Builder(超初心者用)その5

■ このスレッドは過去ログ倉庫に格納されています
2012/04/21(土) 13:26:14.76
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。

■C++Builder XE2 - エンバカデロ・テクノロジーズ
http://www.embarcadero.com/jp/products/cbuilder


<過去スレ>
くだすれC++Builder(超初心者用)その4
http://toro.2ch.net/test/read.cgi/tech/1256256376/
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
くだすれC++Builder(超初心者用)その2
http://pc10.2ch.net/test/read.cgi/tech/1144308804/
くだすれC++Builder(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1117225464/

<兄弟スレ>
くだすれDelphi(超初心者用)その54
http://toro.2ch.net/test/read.cgi/tech/1325028195/
2013/10/27(日) 16:20:24.52
そう言う場合はまず作ってるプログラムから離れて間違っているのか確認してから
そうでは無いなと確信してから自分のプログラムを疑う物ですよ
2013/10/29(火) 13:52:21.53
>>501
√に入れる変数にunsigned入れたらいいんじゃね?
2013/10/29(火) 14:24:43.48
何でもassert
2013/10/29(火) 15:07:07.12
デバッグすればいいだけじゃん
ループの100回目でブレークポントを張って
変数の値を確認すればよい
2013/10/29(火) 23:49:47.28
スタックでも壊してたりしてな
507デフォルトの名無しさん
垢版 |
2013/11/05(火) 17:38:05.77
void __fastcall TForm2::ButtonWRClick(TObject *Sender)
{
char *tmp;
CamRegInfo ci;
ci.devaddr = 0xba; // dev addr

unsigned short val[3];
int addr = 0;
int data = 0;

tmp = strdup(EditAddr->Text.c_str());
sscanf(tmp,"%02x",&addr);
free(tmp);

tmp = strdup(EditData->Text.c_str());
sscanf(tmp,"%02x",&data);
free(tmp);

ci.devaddr = addr;
ci.data = data;
USBWriteData((unsigned char *)&ci,6,0x07); // to I2C Controller
}

2010年くらいにいただいたビルダーのサンプルプログラムを今,実行しようとしていますが
[BCC32 エラー] Unit2.cpp(204): E2034 'wchar_t *' 型は 'const char *' 型に変換できない
[BCC32 エラー] Unit2.cpp(204): E2342 パラメータ '__s' は const char * 型として定義されているので wchar_t * は渡せない
というエラーがtmp = strdup(EditAddr->Text.c_str());に出ます.
調べるとこうするとエラーが取れました.tmp = strdup(AnsiString(EditData->Text).c_str());
しかし,新たに[ILINK32 エラー] Fatal: ファイル 'K.OBJ' を開けません
というエラーが出て困っています.
2013/11/06(水) 00:38:50.77
それは困りましたね。
2013/11/06(水) 09:22:42.32
Unicodeの意識が無さ過ぎ
2013/11/06(水) 10:02:11.48
>>507
http://docwiki.embarcadero.com/RADStudio/2010/ja/TCHAR_%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0
http://docwiki.embarcadero.com/RADStudio/2010/ja/RAD_Studio_%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B_Unicode
http://marupeke296.com/CPP_charUnicodeWideChar.html
http://www.watercolor-city.net/ct_delphi/delphi_tiburon/
511デフォルトの名無しさん
垢版 |
2013/11/06(水) 10:14:53.13
>>509 スレタイ読め
2013/11/06(水) 10:23:07.10
>>511
オマエのクソレスの方が何の役にもたってないことに気付けボケ
2013/11/07(木) 15:24:59.71
仮想デストラクタをcppに書くと必ず、
「ここには記憶クラス"virtual"は指定できない」ってエラーが出るんだけど
どうしたらよいの?
2013/11/07(木) 17:28:29.26
>>513
ヘッダに宣言書いているでしょ?
CPPに書くデストラクタの本体には virtual はつけない。
       ~~~~~~~~~~~~~~~~~~
もしCPPに書いているのがclass宣言で、その宣言に virtual をつけるのはOK

もしそのようにしているのに怒られると言うなら具体的にコードを書いてみて
2013/11/07(木) 17:32:54.63
>>514
ありがとう!ヘッダに宣言書いていました
2013/11/07(木) 22:21:46.25
System.DateUtils.hppをインクルードすると、
W8058 ヘッダーに初期化データが含まれているためプリコンパイルヘッダーを作成できない
ってエラーが出るのは、回避不可能なの?
2013/11/07(木) 22:38:52.41
>>516
そんなのしょっちゅうだよ
インライン展開はほんとうに控えめだし
2013/11/11(月) 13:09:32.22
継承される可能性のあるクラスは、仮想デストラクターを置けって言うけど、
ヘッダーファイルに↓の置いておくだけでよいの?
virtual __fastcall ~TSample();
2013/11/11(月) 13:32:23.26
>>518
それでもコンパイルエラーは出ないけど、いざ実行されるとランタイムエラーが出るんだっけ
確かそんなはず
2013/11/11(月) 15:07:57.54
>>519
特にエラーは何も出ずに実行できるのだが
2013/11/11(月) 16:58:02.35
>>518
本体(デストラクタの実体)がないからエラーになるはずだけど

[ILINK32 エラー] Error: 未解決の外部参照 '__fastcall TSample::~TSample()' が x:\xxx\xxxx\xxxx.OBJ から参照されました

宣言したけど使っていない場合はエラーも出ないし実行に支障はない
これはメンバ関数も同じだよね

ヘッダーに書きたいなら宣言にあわせて実体も書いておくものじゃないだろうか。

virtual __fastcall ~TSample() { }

抽象クラスでの純粋仮想デストラクタを考慮するなら

virtual __fastcall ~TSample() = 0;

になるだろうし。
仮にその(>>518)宣言で問題にならないにしても、継承したクラスで問題起きるかもしれないから書いておいたほうが無難だとは思う。
2013/11/11(月) 16:58:31.24
アプリの起動時に、しなきゃならない処理がたくさんあるんだけど
(INIファイルの読み込みとか)
メインフォームやスプラッシュフォームのコンストラクターとかに
書くと気持ち悪いから、アプリケーション初期化関連のメソッドを
並べたクラスを一つ作って、メインフォームのコンストラクターから
インスタンス作って全部やらせるのって、汚いやり方?
1つの仕事を順番にやるだけのクラスになるんだけど。
2013/11/11(月) 17:01:13.43
>>521
これだと、"純粋関数定義の構文が正しくない"と怒られてしまうのだけど。。
virtual __fastcall ~TSample() { }
2013/11/11(月) 17:46:35.14
>>522
別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出すだけじゃだめなの?

>>523
そのエラーがどういう状況で発生するのか良くわからないのでお役に立てない感じ。
どういうクラス宣言しているのかちょっと気になります。
2013/11/11(月) 17:52:53.52
>>524
ありがとう。

> >>522
> 別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出すだけじゃだめなの?
メインフォームに関係ない処理を、メインフォームクラスに置くのは気が引けて。。

> >>523
> そのエラーがどういう状況で発生するのか良くわからないのでお役に立てない感じ。
> どういうクラス宣言しているのかちょっと気になります。
ごめん。IDEを再起動してみたら、普通にコンパイルできた。謎だ。
2013/11/11(月) 18:15:55.83
共通なグローバルな初期化はメインのデータモジュール作って、データモジュールのコンスタラクタとかでやれば??
で、各フォーム特有の初期化は各フォームのコンストラクタでやる。
「プロジェクトオプション」の「フォーム」で指定する作成順序はメインデータモジュール->メインフォームの順で。
俺はだいたいそうやって作ってるけど。

大抵、データベースアプリとかで、グローバルな接続コンポはデータモジュール作って、そこに置くように、
その延長でそうしてる。
2013/11/11(月) 18:47:50.47
>>526
TSQLDataSetとかTSQLConnection とかでなく、
自作のクラスを包含させるっていうこと?
ド素人で申し訳ない。。
2013/11/11(月) 18:59:36.66
まず、データモジュールってコンポーネントはしってるんだよね??

グローバルな設定の初期化(終了化)するタイミングはデータモジュールのコンスタラクタ(デストラクタ)なわけで、
後は、君が書いたクラス次第でしょ。ここが何をして、どう使うクラスになってるのか全く想像できないから、
どう説明したらいいか・・
2013/11/11(月) 19:02:26.66
えらそうに言わないでください
2013/11/11(月) 19:05:13.57
それか、>>572はこういうことか。
もちろん、君のクラスはTComponent派生して、別にIDEに登録して使うわけじゃないと思うから、
TSQLConnectionみたく、IDEから貼り付けできないけど、そのクラスがインスタンスが
アプリの開始から終了までずっと、
存在する必要があるなら、データモジュールに、フィールド(プロパティ)を追加して、データモジュールの
コンストラクタ(デストラクタ)で作成・破棄してもいいし。そこはやっぱ、君のクラスが何してるか、どう使うか次第・・
2013/11/11(月) 19:14:23.95
>>528
> まず、データモジュールってコンポーネントはしってるんだよね??
知らないんだ。リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。

WinSocketの初期化、INIファイルのロード、各種スレッドの起動等を
メインフォームの表示前に終わらせてしまうのが目的。
元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
そのメソッドをコールしようと思っていたのだけど。。
2013/11/11(月) 19:29:42.48
>>リファレンスを見たところ、別のコンポーネントを一括管理するのかと思っているのだけど。
そう、それで、別にコンポーネントのためだけに使わなくてもいいわけで、そこに、グローバルなコンポーネント以外にも、
自作のグルーバルなクラスのインスタンスをプロパティ経由とかで、外部に公開してもいいわけで。そこはご自由にと。

>>元々やろうとしてたのは、この各処理を順々にやっていくパブリックメソッドを持った
>>アプリ初期化用クラスのインスタンスをメインフォームクラスで生成して、
>>そのメソッドをコールしようと思っていたのだけど。。
これをそのまんま使うなら、インスタンスの生成とメソッドコールを単にデータモジュールのコンストラクタに移動するだけ終わりじゃ?
2013/11/11(月) 19:33:15.87
>>522でキミが 「メインフォームやスプラッシュフォームのコンストラクターとかに書くと気持ち悪い」と言ったコードを「データモジュール」のコンストラクタに書けばいいんだよ。

データモジュールは、C++Builderのバージョンがわからないのであれだけど、
自分のものは 新規作成→その他→C++Builderプロジェクト→C++Builderファイル にある

データモジュール自身にそれらを実行する関数を持たせて「別の関数作ってそこにたくさんの処理を書いてコンストラクタからその関数を呼び出す」ってのでもいいけど。
2013/11/11(月) 19:35:02.08
クラス名は TDataModule ね
2013/11/11(月) 20:02:57.86
説明不足で本当に申し訳ない。
汚いやり方とか、気持ち悪いとか言ったのは、
クラス名を動詞にするなとか、データがなくで振る舞い(メソッド)だけのクラスは良くないって
CODE COMPLETEやら、ほかのWEBサイトに書いてあったからなのです。
そういうクラスを作ること自体が、オブジェクト指向と外れているのではないかと。
2013/11/11(月) 20:43:39.99
メソッドだけならクラスじゃなくて関数でいいしね。

データモジュールはヘルプみればわかると思うんだけど、
http://docs.codegear.com/products/rad_studio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/delphivclwin32/Classes_TDataModule.html
>また,データモジュールのユニットファイルにアプリケーション全体に適用されるものをすべて入れておくようにしてもよいでしょう。

っていう記述がある。
主に非ビジュアルコンポーネントを“一元管理する目的”の TDataModule なので、それはつまり複数のフォームやユニットからのアクセスを受けるということ。
そういう特性を利用して WinSocketの初期化、INIファイルのロード などのアプリケーション全体に影響する設定や処理をそこで行うということ。

ただし「各種スレッドの起動」に関してはそのスレッドが何をするものなのかにもよる気がするので。

データモジュールのユニットファイルにそれらを実行する関数を書く。
データモジュールのコンストラクタからそれを実行する。
537535
垢版 |
2013/11/11(月) 21:01:01.58
>>536
物凄くよく分かりました!ありがとうございます!
参考に一度実装してみようと思います!
538デフォルトの名無しさん
垢版 |
2013/11/12(火) 15:12:44.63
>>510
リンクありがとうございます.
一通り目を通しましたが,解決方法がわかりませんでした.
どの辺を特に見たらいいですか?
2013/11/12(火) 17:00:07.90
シングルトンデザインパターンで実装すると、

マルチスレッド アプリケーションのコンストラクタでローカル静的変数を使うことは危険です

という警告が出るのですが、どう危険なのでしょうか。
2013/11/12(火) 17:40:58.25
初期化コードが複数回あるいは同時に実行されることがある、という
2013/11/12(火) 17:42:13.78
この話かな?
ttp://d.hatena.ne.jp/A7M/20081027/1225088907
542539
垢版 |
2013/11/12(火) 18:39:32.34
ありがとうございます。
マルチスレッド化する前にインスタンスが作られるのであれば、
#pragmaで消しても大丈夫な警告なのでしょうか?
2013/11/12(火) 19:56:40.06
遅延生成をやめれば問題はない
544539
垢版 |
2013/11/12(火) 20:26:11.82
>>543
分かりました。ありがとうございます!

それから、関係ないのですが、クラス名の1文字目の"T"って何の略ですか?
"TApplication", "TForm", "TThread", "TCheckBox"等の"T"です。
2013/11/12(火) 20:44:20.00
昔、OWLを作った人がTypeのTだと明言してた
546デフォルトの名無しさん
垢版 |
2013/11/13(水) 16:44:57.65
XE4でTChartなくなった??
発見できないんだけど
547デフォルトの名無しさん
垢版 |
2013/11/13(水) 16:48:41.81
あ、あったわ。
変なタブに潜んでた
まあしかしお前等ってほんと糞の役にも立たないゴミ虫だよなww
548デフォルトの名無しさん
垢版 |
2013/11/14(木) 00:53:54.22
TurboApplication、TurboForm、TurboThread、TurboCheckBox。
2013/11/14(木) 19:23:35.13
XE4の品質は超クソだな
さすがにXE3から数ヶ月で出ただけのことがあるわ
で、このクソ品質を修正しただけのXE5に更新するには\40,000-って
どんだけクソな会社なんだよ…
今に分かった事じゃないんだけどさ
2013/11/14(木) 20:04:52.15
ボーランド時代は安くて痒い所に手が届く使い勝手の良いコンパイラを提供してくれていたのだが
2013/11/14(木) 20:20:27.22
それに無理があったからボーランドは手放したんでしょ?
2013/11/15(金) 01:00:43.35
とりあえず今のC++ XE4 Update1で発生する不具合

・ビルド時にsaveMemのエラー?でコンパイラが起動出来無くなる事がある
・インクリメンタルリンクを有効にしているとビルド後のバイナリ起動時にDelayLoaderのエラー発生
・突然プロジェクトファイルに不正なタグが書込まれる ProjectExtensions問題 XE2から
・デバッグ実行のプロセス起動時にアプリケーションエラーでIDEごと落ちる

こんなにクソなんです
QCに入れたって日本人担当者とさんざん英語でやりとりした挙げ句、
再現出来ずだしな
2013/11/15(金) 01:43:24.74
可哀想に。
あの「日本人担当者」はボランティアなので多くを期待するな
2013/11/15(金) 02:49:42.72
QC 入れるときに 「高橋さんはコメントしないでください」
って一文入れとけばいいと思う。

552 のバグレポートって、何番?
2013/11/15(金) 18:42:10.89
現象が再現しないってのはよくあることだわな
ちゃんと、再現性があるなら
その再現条件を明記しないからだろ
再現しないのは、特殊環境下でしか起きないこともあるしな
あるいは自作プログラムのバグが悪さをして不安定になってるとか
自分が遭遇したBuilderのバグは、ぐぐればまず間違いなく同じ現象が出てくるわ
2013/11/16(土) 02:04:02.26
それは甘え。
特殊なのは高橋さんのほうかもしれないしな
2013/11/16(土) 10:40:50.67
それは言いがかりに近いな
2013/11/17(日) 01:55:45.53
「再現できない」ってのは「バグがない」ってことではないのだよ
「テストケースエラー」でもない。

言いがかりをつけているのはどっちかな
2013/11/17(日) 10:25:05.81
キミだよ
2013/11/17(日) 10:52:17.44
558 支持。
2013/11/17(日) 13:08:08.46
言いがかりだよ
2013/11/17(日) 15:01:28.39
BCB6で32bitアプリを作る時にはどうすれば良いんでしょうか。
16bitしか作れないんでしょうか。
2013/11/17(日) 15:16:10.42
64bitアプリの間違いか?
BCB6ならすでに32bitアプリなんだが。
2013/11/17(日) 15:16:53.55
何か作ったexeが16bitになってるんですが、どうしたらよいんでしょうか
2013/11/17(日) 15:26:14.61
ああ、バージョン情報を含めるをチェックしたらバージョン情報が出てきました。

マイクロソフトのサイトに、exeファイルを右クリしてバージョン情報が出てこなかったら16bitアプリって
書いてあったんですが、右クリで出てきたので32bitなんですかね。
2013/11/17(日) 15:59:10.36
32bitになってました。どうもありがとうございました。
2013/11/17(日) 16:18:23.61
>>565
それはMSのアプリに限っての話だろう。
32bitアプリはバージョン情報を含める事も含めない事もできる。
16bitアプリはバージョン情報を含める事ができない。
MSは自社アプリには必ずバージョン情報を含めるからバージョン情報が出ないなら16bitアプリっていう判断なんだと思う。
あとMSでなくても市販のアプリは基本的にバージョン情報含めているから同じ。
個人開発だと必ずしも含めているとは限らないからその判定法は成立しない。

と、そういうことなんだと思う。詳しくは知らないのだけど。
2013/11/18(月) 10:49:06.19
>>567 の素晴らしい考察に感動したっ!!
そして >>562 のあまりのお粗末さにも感動したっ!!

でさ、みんなちゃんとバージョン情報付けてる?
どうでも良いツールなんか手抜きしてバージョン情報付けなかったりするけど、
>>562に16bitあぷりでつか?って言われちゃうのか
2013/11/18(月) 10:53:04.82
初心者版で初心者かもしれない人に何いってんだか・・
2013/11/18(月) 10:53:10.93
XE2以降ではバージョン情報の設定機能はダメダメになってるよね
プラットフォーム別にバージョン情報を別に出来るって言うのは理解できるけど、
そのおかげで全ビルド構成で別々にバージョン情報が作られてしまう
「ビルド番号を自動更新」にすると、DebugとReleaseで別々のバージョン情報になってしまうという…

一体全体どういう連中が作ってるんだろうか
2013/11/18(月) 12:01:26.40
XE2を使っています。
プロジェクトマネージャのウインドウで、各ユニットのフォルダ構造が
表示されていますが、この中でユニットになっていないものがあります。
(+ボタンを押すと、開くようになっていない)

プロジェクトファイルで、DependentOnタグが付いていないユニットが
該当するようなのですが、このタグを直接プロジェクトファイルをいじらずに
付ける方法はございませんでしょうか。
2013/11/18(月) 12:23:21.74
そこまで分かってるんならプロジェクトファイル直接書替えればいいじゃん?
あとは一度プロジェクトからソースを削除してもう一度追加してみるか

はっきりとは分からんけど、ヘッダファイルのインクルードガードのマクロ名で
ユニットになっているかどうかを判定しているように思えた
2013/11/18(月) 12:54:15.00
>>572
ありがとうございます。
プロジェクトから削除〜追加でユニット化されました。

インクルードガードのマクロ名で判定しているのは確かだと思います。
そのため、#pragma onceが使う機会を持てません。
2013/11/18(月) 18:10:46.44
> 16bitアプリはバージョン情報を含める事ができない。

含める事ができないんじゃなくて、32bitWindowsからは「16bitアプリのバージョン情報」は読めない(バージョンタブが表示されない)ってだけかもしれないな。
2013/11/20(水) 08:54:28.16
最近、XE2でコンパイルすると
[ILINK32 警告] Warning: プロジェクト名.ilc 0x00010000 / 0x08000000
[ILINK32 警告] Warning: unknown heap name : 0x08000000 / 0x08000000
[ILINK32 警告] Warning: エラーが検出されました(LME286)
[ILINK32 警告] Warning: インクリメンタル リンクを実行できません -完全リンクを実行中...
[ILINK32 エラー] Error: リンクを実行できません。

とか表示されてしまうのだけど、何故?
576575
垢版 |
2013/11/20(水) 09:11:06.26
ちなみに、PCを再起動するとコンパイルできるようになる。
IDE自体の再起動ではダメ。
2013/11/20(水) 12:13:11.66
XPじゃないのか?
XE3SP1だったかSP2はそれで動かなくなってたな
2013/11/20(水) 13:09:50.04
>>577
Win7
2013/11/20(水) 15:42:32.95
LME286でぐぐるとなんかあるっぽいが
2013/11/20(水) 22:55:34.09
>>575
Avastとかのアンチウィルス常駐してるなら一時的に無効にしから起動して作業しないとダメだよ
Avastが疑わしいexeとか強制でフックしちゃうから異常動作連発する
581デフォルトの名無しさん
垢版 |
2013/11/29(金) 18:01:14.70
DriveComboBoxでデフォルトドライブの変更方法教えて
DriveやItemIndexを弄っても全然変わってくれない
2013/11/29(金) 18:46:03.82
>>581
Drive プロパティに代入するだけで変わるけど。
wchar_t 型だけど char 型で代入しようとしてない?
Enabled プロパティとか false になってない?
2013/11/29(金) 23:14:08.18
何かiOSアプリの開発ができるようになるらしいが
2013/11/30(土) 01:50:47.22
BCB6で、リッチエディットの上にマウスが乗った時のマウスカーソルを変更するのは
どうしたら良いんでしょうか 右向きの矢印が出ます
2013/11/30(土) 12:42:42.49
リッチエディットのCursorをオブジェクトインスペクタで変更しておけばいいんじゃ?
2013/11/30(土) 21:32:02.58
マウスカーソルの変更出来ました。ありがとうございました。
587デフォルトの名無しさん
垢版 |
2013/12/02(月) 17:27:08.37
TImageで質問
ストレッチがtrueで
Image1->Picture->LoadFromFileで画像を表示させて
Image1->Widthを変更して再度表示させても以前のサイズのままで
更に読み込むと指定した大きさになるんですがこれすぐ正常なサイズで表示するにはどうしたらいいんですか?
Image1->Picture=NULLにしてもすぐには変わってくれなかったです
2013/12/02(月) 20:23:23.70
>>587
Image1->Picture->Bitmap->Height = height;
Image1->Picture->Bitmap->Width = width;

がいるんじゃないかな。
589デフォルトの名無しさん
垢版 |
2013/12/03(火) 14:45:38.60
>>588
ありがとうy、やってみる。
590デフォルトの名無しさん
垢版 |
2013/12/03(火) 14:56:18.60
ダメでした(´・ω・`)
591デフォルトの名無しさん
垢版 |
2013/12/03(火) 18:12:27.49
できますた( ´∀`)
592デフォルトの名無しさん
垢版 |
2013/12/06(金) 13:37:24.07
TJPEGImageでjpgを早く読む方法教えて
何かVBとか画像データの検証をオフにしてロードしたら早くできるみたいなんで
これにそういうのあったら教えてほしいですです
2013/12/08(日) 14:49:43.62
Form1.cpp の中で
自分で作った関数や変数の宣言をするのと、

Form1.h の中のprivate: や public: の所で
自分で作った関数や変数の宣言をするのでは、

メモリ使用量やプログラムの大きさ等が何か変わってくるのでしょうか。
2013/12/08(日) 17:09:11.28
オブジェクト指向プログラミング勉強してこい
595デフォルトの名無しさん
垢版 |
2013/12/09(月) 09:23:14.60
>>593
ヘッダに書くと小さいコードだとインライン関数になるか
メモリー使用量やプログラムの大きさは大きくなるけど速度は速くなる傾向。

>>594
オブジェクト指向プログラミングはあまり関係ないような気がする。
スモールトークにもJavaにもC#にもヘッダーファイルの概念は無いから。
596594
垢版 |
2013/12/09(月) 10:32:01.94
>>593の前者は非メンバで後者はメンバ、という読みだが >>595
2013/12/09(月) 11:28:50.09
エスパー検定勉強してこい
598デフォルトの名無しさん
垢版 |
2013/12/09(月) 13:21:54.02
>>596
そういう意味か!!
てっきり、インライン関数かそうで無いかだと思ったよ。
すまん。
2013/12/09(月) 14:18:39.89
オブジェクト指向はメモリやプログラムの大きさの事を考えて設計する方法では無い
そもそもオブジェクト指向勉強してこいとか、質問の答えにさえなってない
600594
垢版 |
2013/12/09(月) 14:42:09.84
じゃ質問に答えてやれよ
2013/12/12(木) 13:51:00.24
スレッドのExecute()内で、StringGridを動的生成しようと
以下の様にしました。

TStringGrid *SG = new TStringGrid(this);

[BCC32 エラー] Get.cpp(103): E2285 'TStringGrid::TStringGrid(Get * const)' に一致するものが見つからない

エラーの意味が分からないのですが、
スレッド内で動的に生成してはいけないのでしょうか?
アドバイス頂けると助かります。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況