C++Builder相談室 Part6
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG過去スレ・関連サイトは>>2-10あたり。
0478デフォルトの名無しさん
NGNG試してないけど、固定長配列でいいなら、
int i;
TStringList *strlist[100];
// 確保のコード
for( i = 0 ; i < 100 ; i++)
strlist[i] = new TStringList;
// 解放のコード
for( i = 0 ; i < 100 ; i++)
delete strlist[i];
じゃないかな?
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNG−−− ここから
class TForm1 : public TForm
{
__published: // IDE 管理のコンポーネント
TMemo *Memo1;
void __fastcall FormShow(TObject *Sender);
private: // ユーザー宣言
void __fastcall WMDropFiles(TWMDropFiles Msg); //←追加
public: // ユーザー宣言
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP //←追加
MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles) //←追加
END_MESSAGE_MAP(TForm) //←追加
};
−−− ここまで
Unit1.cpp
−−− ここから
#include <ShellAPI.h> //DragAcceptFiles()
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
DragAcceptFiles(Handle,true); //Drag&Drop許可
}
0483デフォルトの名無しさん
NGNGDragAcceptFiles(Handle,true);
では正常に処理されるのですが、たとえば
DragAcceptFiles(Button->Handle,true);
として、ボタンにドロップしてもWMDropFiles内に書いた処理をしてくれません
MLなんかにはここを変えるだけでいいようなことが書いてあるのですが、
何か他にしなければいけないことがあるんでしょうか
0484買ってきたばっか
NGNG簡単なフォームを作って実行させたところ
[リンカ 致命的エラー] Fatal: ファイル名が必要 :
わかんないっすTT
0485デフォルトの名無しさん
NGNGWM_DROPFILESはButtonに送られるんだから、
Buttonをサブクラス化するとか、TApplication::OnMessageでWM_DROPFILESを捕らえて処理しないと。
0486デフォルトの名無しさん
NGNG漏れもなったことがある。
フォームにボタン一個貼っただけなのに、保存してからコンパイルしようとすると
[リンカ 致命的エラー]が出たり。
再インスコしたら直ったけど
0487デフォルトの名無しさん
NGNG原因不明のエラーに対する自分なりの手順。
1)全て保存してやり直す
2)すべてのプロジェクトを再構築してやり直す
3)Builderを一度終了させてやり直す
4)OS再起動させてやり直す
個人的な経験では、再構築で直ること多し。
再インストールはやったことないな。。。
0489買ってきたばっか
NGNG再インスコでなおった@@;
アリガトン^^
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNGとGCCで書いてあるヘッダをC++Builderでコンパイルすると
[C++ エラー] test.h(38): E2293 ) が必要
となってエラーとなる...const が悪い??
ていうかこの部分が何を示しているのか良くわかってない^^;
C++Builderだとどうすれば良いのでしょうか?
0493デフォルトの名無しさん
NGNGtest.h 内で)が必要という意味みたいです^^;
0494デフォルトの名無しさん
NGNG0495_
NGNG0496デフォルトの名無しさん
NGNGtypedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
SYORI_Pはこんな感じです。
#define SYOTI_F(type)extern type
となっています。
中身は必要ですか?
0497デフォルトの名無しさん
NGNG#define SYORI_P(x) x
みたいになってるはず。
0498デフォルトの名無しさん
NGNGtypedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
では定義は不可能という事ですか?
>typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
これはSYORI_Pのtypedefではなく_rewriteのでは。
そしてSYORI_Pはマクロです。
#define SYORI_P(PAR) (anyfunc)PAR
こんな感じ
0502デフォルトの名無しさん
NGNGそれがないんですよね〜
SYORI_Pはヘッダファイルのみの使用なんですが
いくら検索かけてもないんですよね
typedef int SYORI_P_rewrite SYORI_P(( void *ln, unsigned lnf));
は理論上成り立つのかなと...SYORI_P_rewrite の別名定義ですよね..
これって,,どうなんでしょw
0503デフォルトの名無しさん
NGNGプロトタイプが有効なときには展開され、無効(古いコンパイラ)なときには空白にするっての。
だから>>497。
0504_
NGNG0505デフォルトの名無しさん
NGNG#ifdef ????
#define SYORI_P(arg) arg
#else
#define SYORI_P(arg) /* */
#endif
みたいになってると思うけど。
0506デフォルトの名無しさん
NGNG#define SYORI_P(proc)proc
って感じですが..
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGSYOTI_F( char * ) test_time SYORI_P(( const time_t *tp, char *buf ));
マクロとマクロに囲まれたtest_time が何者か分からないわけで..
とGCCで書いてあるヘッダをC++Builderでコンパイルすると
[C++ エラー] test.h(38): E2293 ) が必要
このエラーがなぜ発生するのか分からないわけで..
よろ..
0510デフォルトの名無しさん
NGNG>えっと別スレで聞いたのですが説明なしで自己満足で終わられたみ
>たいなのでこのスレに投げます。
すげーむかついたから、勝手にやってくれ。
0511
NGNG0512
NGNG0513デフォルトの名無しさん
NGNG分かっている事ばかり答えてもらってもしかたなか(-.-)
0514デフォルトの名無しさん
NGNGバカにして終わりww
自己満足の境地www
0515デフォルトの名無しさん
NGNGconfig.hならincludeする。
この程度が解決できないようじゃ、
どうせ他のところでもエラーが出て解決できないだろうがね。
>分かっている事ばかり答えてもらってもしかたなか(-.-)
0516デフォルトの名無しさん
NGNG時間の無駄だからこのスレにでてこないでください
0517デフォルトの名無しさん
NGNGあのね その程度でつまってるんだったら聞かないでしょって
いってるのに!
0518デフォルトの名無しさん
NGNG質問のレベルが高すぎたのかなあ...ww
0520デフォルトの名無しさん
NGNGこの情報でどうやってわかれって。
0521デフォルトの名無しさん
NGNGkoreigai naniga aruno?
質問に散々こたえたでしょw
0522デフォルトの名無しさん
NGNG0523_
NGNG0524477
NGNGその追加したクラスを取り出すとき、void*型を独自クラスの形式に変換することが出来ません。
独自のクラスに変換するにはポインタを解析して行くしかないのでしょうか?
0525デフォルトの名無しさん
NGNG"キャスト"という言葉はご存じですか?
0526デフォルトの名無しさん
NGNGクラスやコンポーネントは実際はポインタだから、普通にキャストできると思うが。
var
List:TList;
p:TForm1;
begin
List:=TList.Create;
List.Add(Form1);
p:=TForm1(List.Items[0]);
List.Free;
ShowMessage(p.Name);
end;
0527デフォルトの名無しさん
NGNGStrList->Add("abcdef");
delete StrList;
TList *List=new TList();
List->Add(StrList)
//↑の変数はPublic属性
TStringList* sl=new TStringList;
sl=(TStringList)List->Items[0];
ShowMessage(sl->Strings[0]);
delete sl;
delete List;
これでキャスト出来ないんだけど、ドコが悪いの?
0528デフォルトの名無しさん
NGNGStrList->Add("abcdef");
//delete StrList;
0529デフォルトの名無しさん
NGNGこうだよん。
0530デフォルトの名無しさん
NGNGフリーズしちゃうんですが…
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGList->Addしたあと、delete StrListしてました。
お手数おかけしました。
0533デフォルトの名無しさん
NGNGその回数だけdeleteする必要ってないんですか?
0534デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGパッケージが原因なんですか。
そういえばパーソナル版使ってるときに本やWeb上のサンプルをコンパイルしようとしたら
パッケージがないとか言ってコンパイルできないことが多かったよ。
あれはプロフェッショナル版の人が作ってたんですな。
まあ実行時パッケージを使って構築のチェックを外せばだいたいコンパイルできたけど。
でもたくさんコンポーネントが増えてうれしい。
ログが表示できたりCodeGuardが使えたりしてデバッグもぐっと楽になるだろうし。
秋葉原に買いに行ったらVC++.Netの2002年版のやつとVS.Net2003Professionl限定アップグレード版をセットで買うと
5万弱で買えるってお勧めの商品になってて迷ったけどこれでよかったんだよね、多分??
でも1万円以上高いのはちょっと痛いな。あっちはC++とC#とVBもついてるし。
0538デフォルトの名無しさん
NGNGこれからc++を始める人にとっては「c++builder」と「visual c++」の
どちらを選択すべきであろうか。
自分の中では「visual c++」がメジャーと思っていたので他の選択肢を考えていなかった。
「visual c++」の方が本や情報など探しやすい気がする反面で
「c++builder」を勧める人の方が多い気がもする。
先輩方のアドバイスを求む。
0539デフォルトの名無しさん
NGNG取り敢えず、このスレの主旨から言って、やはりBCBではないかと
ちなみに、VCのスレで聞かれたらVCを進める
理由は>>538だけじゃ、何に使うか分からんし
使い方によっては、gnuで充分だったりするので
0540538
NGNGまずはフリーソフトみたいな物を作りたいです。
考えているのはHP巡回ソフトの「WWWC」みたいなソフトです。
おそらくこれが完成するのにかなりの時間がかかるでしょう。
その後はDirectX関係を勉強してゲームもどきみたいな物を制作したいです。
単にキャラクターをパッドで操作できるだけの簡単な物でいいです。
こんな予定があるのですがどっちのc++がよいですかね?
0541デフォルトの名無しさん
NGNGそれからWindowsなりネットワークなりだな。
0542ミ,,゚Д゚彡 ◆A6VzDeLphI
NGNGWWWDってのもあります。
情報をたくさん集めて判断すると
より後悔しない選択が出来るんじゃないかな。
0543デフォルトの名無しさん
NGNGフリーの環境 BCC55/Delphi/Java落としていろいろやってみてから 有償のものを買えばいい。
よく、お金出した方が真剣になるからなんて言い方する奴がいるが、
そんなものは幻想だ。
0544デフォルトの名無しさん
NGNGそれらを標準入出力でなく、TMemoとかに出したいでつ。
BCBで出来ますか?
0545544
NGNG「cout << "Hello world." << endl;」
が、どこにも表示されません。
いったいどこに出力されてるのだろう?
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGコンソールアプリケーションを選択すれば出力される。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNGどういうこと?
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG怖くはないよ。すごく便利。
0552デフォルトの名無しさん
NGNGBCB4以降Enterpriseにしかつかなくなったけど
proで使えるSQLビルダーないですか?
0553デフォルトの名無しさん
NGNGって何するもんですか?
ウィザード形式で、
データを取得する表を選択して下さい
取得する列を選択して下さい
抽出条件を指定して下さい
→SELECT hoge FROM huga WHERE nullpo
みたいな?
0554デフォルトの名無しさん
NGNGまたプログラム実行しなくても、
SQLビルダー内でクエリの結果も表示できるし
その結果をエクセルなどに簡単にコピペできたので
ちょっとした抽出なんがすごく便利だった。
おまけに、そのSQL文もウィザード形式で
作ってくれた。
だからBCB3以降使ってない。
SQLビルダーの復活を願いたい。
0555538
NGNG>542
自分はwwwcよりwwwdを使っているのですがwwwdに不満があって作ってみようかと(笑
もうちょっと考えてみますね。
0556デフォルトの名無しさん
NGNGsl->Add("AAA");
ShowMessage(sl->Strings[0]);
sl=new TStringList;
sl->Add("BBB");
ShowMessage(sl->Strings[0]);
delete sl;
こんな事した場合、メモリは2回取得されるんでしょうか?
それとも、同アドレスの変数が初期化されるだけでしょうか?
0557デフォルトの名無しさん
NGNG意味はワカランが、とりあえずメモリリークしてる。
0558デフォルトの名無しさん
NGNG2回別々に確保され、一回目のものはリークして2回目のものだけ開放される
0559デフォルトの名無しさん
NGNGTListにドンドン追加してるんだけど、
追加し終わったあと(例えばTStringList)Deleteするとフリーズしてしまうんですが。
どうも、TListがコピーされたはずの物を参照せずに、コピー元ばかり見ているようなそんな気がします。
これじゃTListの意味がワカランのですが?
0560デフォルトの名無しさん
NGNGソース出せ。お前の日本語ではらちがあかん。
0561デフォルトの名無しさん
NGNGコピー・・?
ポインタはいくらコピーしても指す先の同じものしか参照しないし
TListに格納するのはポインタなわけだが・・
0562デフォルトの名無しさん
NGNGと、言うことはTListはポインタのポインタと言うことですね?
0563デフォルトの名無しさん
NGNG>>560
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGnew して追加した後、deleteしてないんですが…
0566デフォルトの名無しさん
NGNG気のせいでしょう。
0567デフォルトの名無しさん
NGNGforの所削ってました。(w
0568デフォルトの名無しさん
NGNGそうですか。
じゃ、構造体の問題かな・・・。
struct unko{
int i;
char hoge[8];
char chinko[4];
};
unko shitai;
strcpy(shitai.chinko,"chin");
strcpy(shitai.hoge,"hogehoge");
AnsiString aschinko;
aschinko=AnsiString(shitai.chinko);
ShowMessage(aschinko);
shitai.chinko の1バイト目が\0 になるんです。
基本的なことかもしれませんが、アドバイスあったらお願いします。
0569デフォルトの名無しさん
NGNGchar hoge[8]; // 8バイトである
char chinko[4]; // 直後にある
strcpy(shitai.chinko,"chin"); // 5バイト書き込む(最後は '\0')
strcpy(shitai.hoge,"hogehoge"); // 9バイト書き込む(最後は '\0')
ここで shitai.chinko[0]は '\0'になる
0570デフォルトの名無しさん
NGNGstrcpy(shitai.hoge,"hogehoge");
strcpy(shitai.chinko,"chin");
したらOKだ。
勉強しなおしてきまつ。
0571568
NGNGそうでした。ありがとうございました。
今、ソケットで上記shitai を送信して受信してるのですが、
受信先でかならずある特定のcharの頭が'\0'になるのに悩んでるのですが、
手がかりを見つけたようです。
ただ。。送信直前では'\0'は入ってないんです。もっかい見直しマス。
0572デフォルトの名無しさん
NGNG冗談はよせよ。あまりおじさん達をからかうなよ。
0573pp
NGNG横レス
冗談といいますとpp(興味津々)
0574538
NGNG決め手は
本家や ttp://www.borland.co.jp/cppbuilder/competitive/comparison.html
ここの ttp://www.zdnet.co.jp/developer/0307/04/dvn01_3.html
ページにある「visual c++」ではGUIアプリケーションの構築に労力がかかる、という点で。
なんか相手の罠にかかったような感じですが(笑)、「c++builder」でがんばってみます。
0575デフォルトの名無しさん
NGNGこうすれば、解放処理delete OpenDlg;しなくていいんですよね。
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGそれだけ教えていただければ十分です。
■ このスレッドは過去ログ倉庫に格納されています