- 1 名前:デフォルトの名無しさん [2007/09/01(土) 09:41:22 ]
- C++Builderに関する質問・回答や議論等を行う相談室スレッド。
【前スレ】 C++Builder相談室 Part17 pc11.2ch.net/test/read.cgi/tech/1162918887/ 過去スレ・関連サイトは>>2-7あたり。 ※Borland C++ Compiler 5.5.1についての質問は以下のスレへ タダで使えるBorland C++ Part5 pc11.2ch.net/test/read.cgi/tech/1135127048/ ※BDS(Borland Developer Studio)の総合スレはこちら Borland Developer Studio 2006 No.13 pc11.2ch.net/test/read.cgi/tech/1175861395/ ※CodeGear(Borland)関連はこちら 【Borland】CodeGearオッチャ その5【(ノ∀`)アチャー】 pc11.2ch.net/test/read.cgi/tech/1186333161/
- 809 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:16:25 ]
- ってことは、
std::sort( vec.begin(), vec.end(), sortNameAsc ); // 名前昇順 std::sort( vec.begin(), vec.end(), ! sortNameAsc ); // 名前降順 ですか?><
- 810 名前:デフォルトの名無しさん [2008/06/06(金) 23:53:10 ]
- >>809
それコンパイル通る? 通ればそれでいいんだけど
- 811 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:58:18 ]
- あれなんかageになってたごめん
- 812 名前:809 mailto:sage [2008/06/07(土) 06:48:02 ]
- 三番目の引数が関数じゃないって怒られました \(^o^)/
- 813 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 10:45:35 ]
- 関数オブジェクト使えよ
sortName(Asc) とか sortName(Desc) と書けるように
- 814 名前:809 mailto:sage [2008/06/08(日) 05:43:37 ]
- 関数オブジェクトが理解できません\(^o^)/
ヤバス
- 815 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:51:43 ]
- STLよく知らんがこんなんでいいんじゃないん?
struct CData { CData(std::string name, int value):Name(name), Value(value){}; std::string Name; int Value; }; struct CCompareTest { int mode; CCompareTest(int val) : mode(val) {} operator()(const CData& l, const CData& r) { if (mode == 0) { return (r.Value > l.Value) ? true : false; } else { return (r.Value < l.Value ) ? true : false; } } }; main() { std::vector<CData> test; test.push_back(CData("Item1", 0)); test.push_back(CData("Item2", 4)); test.push_back(CData("Item3", 2)); test.push_back(CData("Item4", 3)); test.push_back(CData("Item5", 0)); std::sort(test.begin(), test.end(), CCompareTest(1)); for(std::vector<CData>::iterator it = test.begin(); it < test.end(); it++) { std::cout << (*it).Name << ":" << (*it).Value << endl; } } Name基準でしかソートしないならoperator >(const FI&, const FI&)とoperator <(const FI&, const FI&)定義して std::greaterとstd::less使えば事足りるだろうけど。
- 816 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:41:25 ]
- 関数オブジェクトってのは単に operator() をオーバーロードしたクラスのオブジェクトってだけのことだ。
- 817 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:43:38 ]
- なんだ関数オブジェクト知らなかったのか
普通に関数呼び出すよりも関数オブジェクトの方が 最適化を掛けるとインライン化されて速度が上がる可能性が高い まあ中にはVCみたいに関数呼び出しまでインライン化するお馬鹿な コンパイラもある事にはあるが
- 818 名前:デフォルトの名無しさん [2008/06/10(火) 18:37:40 ]
- Variant型のvarDispatchタイプにバイナリデータが入ってるのですが
これをHEX文字に変換する方法を教えてください
- 819 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 06:39:17 ]
- ん。varDispatchってことは、インターフェースへのポインタが入ってるわけでしょ?
そのインターフェースに何かしらのデータ取得用のメソッドないの?? varByte || varArrayなどのSafe配列としてバイナリデータ格納されてるわけじゃないんでしょ?
- 820 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:02:23 ]
- HBITMAP Spi_LoadImage(LPSTR plugin,LPSTR filename)
というHBITMAPを返す関数があるのですが、これをフォームに表示する方法がわかりません>< HBITMAP bitmap = Spi_LoadImage( "c:\\ifjpeg.spi", "c:\\0.jpg" ); Image1->Canvas->CopyRect( Rect(0,0,bitmap->Width,bitmap->Height), bitmap->Canvas, Rect(0,0,bitmap->Width,bitmap->Height) ); とすると「E2288 -> か ->* の左には構造体のポインタが必要」ってエラーが出てしまうのです。 どうしたらいいでしょうか
- 821 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:08:16 ]
- TBitmap::Handleに戻り値のハンドルぶち込めばいいんじゃね?
- 822 名前:820 mailto:sage [2008/06/16(月) 20:13:17 ]
- >>821 TBitmapコントロールってないですよね?><
フォームにはTImageを張ればいいのでしょうか??
- 823 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:24:47 ]
- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{ HBITMAP hBitmap = Spi_LoadImage("IFPSD.spi", "test.psd"); Image1->Picture->Bitmap->Handle = hBitmap; } //--------------------------------------------------------------------------- __fastcall TForm1::~TForm1() { Image1->Picture->Bitmap->ReleaseHandle(); }
- 824 名前:820 mailto:sage [2008/06/16(月) 20:29:22 ]
- >>823 ひぃ〜、できました!!感動です!ありがとうございます!!
このスレはすぐ的確な回答が返ってくる素晴らしいスレだと思います!!
- 825 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:31:01 ]
- つーかちゃんとVCLのドキュメント嫁
- 826 名前:820 mailto:sage [2008/06/16(月) 20:34:02 ]
- bcbに関しては全部ネットで勉強してるので、
なんかとっかかりがないんです(汗 VBとかVCはIDEがナビゲートしてくれる感じなのですが。。
- 827 名前:820 mailto:sage [2008/06/16(月) 21:39:47 ]
- たびたびすみません;;
テキストボックスを入力不可にしてグレーにしたいんです。 VBとかだとenableをfalseにすると勝手にグレーになって編集不可になったと思うのですが、 bcbだとreadonly=trueにして、自前で色を変更しないといけないのでしょうか?;;
- 828 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:48:06 ]
- 自前でどうぞ。
- 829 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:49:33 ]
- 無効にすればそうなるはずだが
- 830 名前:820 mailto:sage [2008/06/16(月) 21:55:24 ]
- ああ、enabled=falseにすると、エディットボックスのテキストがグレーになりました!!
テキストボックス自体をグレーにするには自前でするしかなさそうですね。。
- 831 名前:デフォルトの名無しさん [2008/06/17(火) 15:36:15 ]
- 知らないならレスしないでください。
- 832 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:49:33 ]
- ベッキーのようにexeから関数をエクスポートしたいのですが、
exeとエクスポート先のexe両方ともコンパイルできたのたのですが、 呼び出しexeで初期化が失敗しましたとでます。 とりあえず、exeのlibを作って静的にリンクしています。 またソースは extern "C" __declspec(dllexport) char* __stdcall GetA(void); という形で両exeに宣言してます。
|

|