[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/04 19:56 / Filesize : 216 KB / Number-of Response : 976
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 09:06:16 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
C++Builder使いが優しくコメントを返しますが、
お礼はC++Builderの布教と初心者の救済をお願いします。

Embarcadero Home Page
www.codegear.com/jp/

<過去スレ>
くだすれC++Builder(超初心者用)
pc8.2ch.net/test/read.cgi/tech/1117225464/l50

くだすれC++Builder(超初心者用)その2
pc10.2ch.net/test/read.cgi/tech/1144308804/l50

くだすれC++Builder(超初心者用)その3
pc11.2ch.net/test/read.cgi/tech/1171219191/

<兄妹スレ>
くだすれDelphi(超初心者用)その50
pc12.2ch.net/test/read.cgi/tech/1246340765/l50


741 名前:デフォルトの名無しさん [2011/06/24(金) 12:03:14.22 ]
wcstombs_s使おうと思ったけどなんかこれ無いってエラーが出る
wcstombsならコンパイルは通るんだけど何故か実行時にエラーが出る。
setlocale( LC_CTYPE, "jpn" );これしてもエラーなんだけどなんでだろう?


742 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 12:52:35.16 ]
char *ってのはANSI文字列のポインタ?ならAnsiStringに代入してc_strでいいんじゃないか?

743 名前:デフォルトの名無しさん [2011/06/24(金) 12:56:32.62 ]
あ、ごめん言い忘れてたけどBuilder2010なのでAnsiStringってワイド文字なんですよねこれ


744 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 14:05:02.85 ]
えっ?

745 名前:デフォルトの名無しさん [2011/06/30(木) 13:34:35.00 ]
質問です:タスクバーに表示されているアイコンにマウスを近づけたときに発生するイベントを取ったり出来ますか?

746 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 17:11:22.25 ]
出来ます。


747 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 17:31:38.46 ]
タスクバーって、アプリの中の人じゃなくてWindowsの持ち物なんだけど、どーやったら取れるわけ?

748 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 17:42:30.35 ]
初心者なら、取り合えず下記でも読んどけ
www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/06.html


749 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 18:14:08.79 ]
グロバールフックってシステム全体を重くするから禁じ手でしょ、常考。。。



750 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 11:10:55.56 ]
昨日ビルダ購入しました。早速質問です。

StringGridの各セルをテキストとしてファイル出力ってどうやるんでしょうか?
SaveToFileのようなものが用意されていますか?

751 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 12:25:50.84 ]
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

752 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 15:12:02.10 ]
>>750
TStringGridIOというのを見つけますた。

StringGridにてCellの行数をボタンを押すごとに増やしていく
プログラムを書いてみたのですが、1回目のクリックで列側
(2列目)に作られてしまうのですが、k行1列のグリッド
を適切に作る方法をご存じの方いますか?

下記のようなソースを書いてます。
StringGrid1->Cells[k][0] = IntToStr(k);
StringGrid1->RowCount = k++;
StringGrid1->Refresh();

753 名前:デフォルトの名無しさん [2011/07/03(日) 17:55:04.22 ]
関数ポインタの作り方をご教示ください。
下の例では[C++ Error] Unit1.cpp(19): E2235 Member function must be called or its address taken.
のコンパイルエラーが出ます。
ヘッダーファイルには void Func();と void Func2();を書いています

//----------------------------------------
void TCTestForm::Func()
{
void (TCTestForm::*fpFunc1)() = Func2; <---Line 19
(this->*fpFunc1)();
}
//--------------------------------------------
void TCTestForm::Func2()
{
MessageBox(Handle,"Func2","Func2",MB_OK);
}

754 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 18:04:10.38 ]
メンバー関数を式で使うときは,呼び出すか,& 演算子を用いてアドレスをとらなければなりません。
メンバー関数が不正な文脈で使われると,このエラーになります。
次に例を示します。

class A

{
typedef int (A::* infptr)(void);
public;
A();
int myex (void);
int three;
} a;
A::A()
{
infptr one = myex; // 正しくない - myex を呼び出すかアドレスを取る
infptr two = &A::myex; // 正しい
three = (a.*one)() + (a.*two)();
}

755 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 07:20:09.52 ]
また質問させてください。

スターターを購入したのですが、
TextViewのようなコンポーネント、
出来ればフリーのものをご存じないでしょうか?

よろしくお願いします。

756 名前:デフォルトの名無しさん [2011/07/04(月) 11:16:01.23 ]
うまくいきました!!!

>>754さん、ありがとう。感謝、感謝。

757 名前:デフォルトの名無しさん [2011/07/05(火) 14:45:28.83 ]
ファイル選択とかのコモンダイアログをStayOnTopできまつか?

758 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 16:03:39.13 ]
出来る


759 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 19:04:58.86 ]
やり方教えて下さいorz



760 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 21:02:38.94 ]
実際にやってみたわけじゃないけど。OnShowイベントとOnCloseイベントでSetWindowPosを呼んで
HWND_TOPMOSTとHWND_NOTOPMOSTをセットする。対象HWNDはHandle。

761 名前:デフォルトの名無しさん [2011/07/07(木) 15:57:07.59 ]
TOpenDialog
のOnShowでTOpenDialog::Handleを使ってWin32APIでTOPMOSTに変更してみましたが、
ダメっぽいですorz

762 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 17:21:28.35 ]
コモンダイアログの(プロパティにない)表示をかえるのと同じで、Hookしないとだめなんじゃないかな?

ttp://wisdom.sakura.ne.jp/system/winapi/common/common2.html
ttp://www.kanazawa-net.ne.jp/~pmansato/CommonDialog.htm

763 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 09:19:33.54 ]
あ、コモンダイアログのフックってダイアログ指定できるんだ。
これってローカルフックだおね。
一旦やってみるかなぁ。
コモンダイアログが他のウィンドウに潜ったら、
自分で浮かびあがるような処理。

764 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 11:24:12.75 ]
>>763
人呼んでお邪魔虫ダイアログ

765 名前:デフォルトの名無しさん [2011/07/08(金) 15:21:38.22 ]
TMyComboBox = class(TComboBox)
TComboBox = class(TMyComboBox)

みたいな感じで、継承してちょっとだけ弄ってそれを標準のコンポみたいに使ってる
Delphiのソースがあったのだけど、これってC++Builderでも可能?
区別が曖昧って怒られちゃう

766 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 15:35:58.43 ]
可能


767 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 15:57:08.17 ]
C++Builder 2009ってVS用のライブラリや
.NET Frameworkは問題無く使えますか?

768 名前:デフォルトの名無しさん [2011/07/08(金) 16:52:59.73 ]
できないのか、残念

769 名前:デフォルトの名無しさん mailto:age [2011/07/11(月) 15:49:37.12 ]
HDDのフォーマット種別(NTFS/FAT32・・・)を調べる方法を教えて下さい。
Win7+BCB2010です。

DriveInfoというのを見つけたのですが使えなさそうです。



770 名前:デフォルトの名無しさん mailto:sage [2011/07/11(月) 16:04:57.35 ]
>769
つ ttp://msdn.microsoft.com/ja-jp/library/cc429511.aspx

771 名前:769 mailto:age [2011/07/11(月) 17:34:16.65 ]
>>770

出来ました!!有り難うございます。

772 名前:デフォルトの名無しさん [2011/07/22(金) 17:30:25.07 ]
「asin: DOMAIN error」っていうのをトラップしたいのですが、
catch (Exception &exception)では、catchできないのですか???

773 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 21:29:11.88 ]
Winキー+Dで全部のウィンドウ非表示(デスクトップ表示)ですが
この操作が行われた時ってトップレベルウィンドウに何かメッセージ
が送られているんでしょうか?

774 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 22:46:03.43 ]
>>772
int _matherr(struct _exception *e) {
throw Exception(AnsiString(e->name) + " でエラーだお");
}

とか _matherr を自分で定義するべし

775 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 00:51:46.93 ]
ttp://www2.ttcn.ne.jp/tkky/Application/Launcher/launcher1.htm
全くの初心者で↑のサイトを見ながらランチャを作ろうとしているのですが、

[BCC32 エラー] Unit1.cpp(18): E2316 '_fastcall TForm1::Create(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(33): E2316 '_fastcall TForm1::Save1Click(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(50): E2316 '_fastcall TForm1::Delete1Click(TObject *)' は 'TForm1' のメンバではない
[BCC32 エラー] Unit1.cpp(59): E2316 '_fastcall TForm1::Image1Click(TObject *)' は 'TForm1' のメンバではない

というエラーがでます。
なぜでしょうか?

776 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 01:22:34.90 ]
さーよくわかんないけど、フォームデザイナのオブジェクトインスペクタでそれぞれのイベントを
ダブルクリックして作ったらいいんじゃないかな。

777 名前:772 mailto:sage [2011/07/25(月) 08:51:46.03 ]
つ d >>774
キャッチできないエラーって不便ですよねぇ。

778 名前:772 mailto:sage [2011/07/25(月) 13:10:32.01 ]
ついでですが、何でキャッチできないんでしょう?
キャッチする方法あるのかなぁ?

matherr.cを見たけど、良く分からない(><)

779 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 13:11:39.66 ]
>>776
ありがとうございます!
できました



780 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 13:22:52.77 ]
>>778
msdn.microsoft.com/ja-jp/library/k3backsw.aspx

781 名前:772 mailto:sage [2011/07/25(月) 13:32:49.36 ]
つ d >>780

つまり、キャッチしようにも、例外じゃなくて、Cランタイム系で動作が規定されている関数なのね。

782 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 13:56:35.50 ]
C++Builder XEで
ShellExecute(Application->Handle,
"open",
appname.c_str(),
NULL,
NULL,
SW_SHOW);

というコードで 'char const[5]' 型は 'const wchar_t *' 型に変換できない というエラーが出ます
これはUnicodeStringをAnsiStringに変換する事で直るのでしょうか?
もしそうならどう修正すればいいのでしょうか?

783 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 14:12:24.62 ]
"open"
->
L"open"


784 名前:782 mailto:sage [2011/07/25(月) 23:23:52.37 ]
>>783
遅れました
すみませんまだエラーが出ます…
'char *' 型は 'const wchar_t *' 型に変換できない とエラー内容が多少変わったのですが…

785 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 01:02:34.32 ]
>>784
appname が AnsiString なら UnicodeString にする

786 名前:782 mailto:sage [2011/07/26(火) 01:16:13.41 ]
>>785
ありがとうございます!
できました

787 名前:デフォルトの名無しさん [2011/07/26(火) 13:47:30.33 ]
C++Builder2010でADOTableについて教えてください
既存のmdbファイルがあって指定テーブルのフィールドの説明を取得する方法を教えてください
ADOTableでダメならSQL文でも構いません

788 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 01:22:03.91 ]
>>787
ttp://support.microsoft.com/kb/210314

789 名前:デフォルトの名無しさん [2011/07/27(水) 09:43:06.09 ]
>>788
ありがとう
これADOTableで表現するならどうやってやりますかね?



790 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 10:44:49.98 ]
RecordsetのProperties

791 名前:デフォルトの名無しさん [2011/07/27(水) 10:54:01.29 ]
>>790
更にありがとうございます
しかしこれどうやって記述したらいいのかわかりません

792 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 11:42:28.29 ]
丸投げイクナイ
少しは自分で考えな

793 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 11:57:43.94 ]
うるせー。
だまって教えろ。ゴラァ

794 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 12:38:03.73 ]
スレタイ読めない奴はレスしないで下さい

795 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 12:42:30.18 ]
そして誰も居なくなるというループ


796 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 12:47:03.76 ]
もう、終わりにしようよ。

797 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 13:33:29.25 ]
もう〜終わりだね

798 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 13:38:07.70 ]
君が

799 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 15:38:43.55 ]
マジコード教えてくださいよろしくです



800 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 16:19:22.92 ]
小さく見える

801 名前:デフォルトの名無しさん [2011/07/27(水) 17:24:20.80 ]
GetFieldDesc_ADO = MyTable.Columns(MyFieldName).Properties("Description")

これをどうやってADOTableの書式で表現するかわかりません


802 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 20:56:29.33 ]
>>801
まず、
1時間で正確に燃え尽きる蚊取り線香を3つ使って、1時間15分を計ってみてください。

803 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 01:36:46.64 ]
蚊取り線香ってなかなか着火しないから
火を同時に何ヶ所にもつけるのって難しいよね

804 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 06:05:49.85 ]
3人がかりだな

805 名前:デフォルトの名無しさん [2011/07/28(木) 23:45:07.35 ]
>>801を教えてくださいよ

806 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 00:59:27.92 ]
ADOTable,ADODataSetにRecordset_といかうプロパティがあって、内部の
オブジェクト公開されてるからそれから、辿っていってみて。

807 名前:デフォルトの名無しさん [2011/07/29(金) 11:44:01.13 ]
Builder2007でUTF-8にURLエンコードする方法を教えてください。
HTTPEncodeを使っても正常にUTF-8になってないみたいなので

808 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 13:44:29.96 ]
俺がアホだけかもしれないけど
UTF-8にURLエンコード
の意味が分からない

809 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 20:12:08.80 ]
アホはレスしないでください。
ウザいだけです。



810 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 17:38:44.67 ]
超初心者用なんだから分かるんなら説明してくれてもいいじゃん

811 名前:デフォルトの名無しさん [2011/08/01(月) 17:24:56.85 ]
>>806
辿ってみましたがフィールドのコメントを取得するようなのを発見できませんでした。
ぶっちゃけコードを教えてください

812 名前:801 [2011/08/03(水) 20:43:32.92 ]
まじでさっさと教えてください。


813 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 21:07:55.33 ]
______  ___________
         V
    _____
   /::::::::::::::::::::::::::\                  _
  /::::::::::::::::::::::::::::::::::::::\             /  ̄   ̄ \
  |:::::::::::::::::|_|_|_|_|           /、          ヽ はぁ?黙ってろデブw
  |;;;;;;;;;;ノ   \,, ,,/ ヽ          |・ |―-、       |
  |::( 6  ー─◎─◎ )          q -´ 二 ヽ      |
  |ノ  (∵∴ ( o o)∴)          ノ_ ー  |     |
/|   <  ∵   3 ∵>          \. ̄`  |      /
::::::\  ヽ        ノ\           O===== |
:::::::::::::\_____ノ:::::::::::\        /          |

814 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 06:27:21.25 ]
C++Builder2007で、Access2000形式のDBにアクセスしたいんですが、簡単に実現できるクラスライブラリありますでしょうか?

815 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 09:48:01.54 ]
dbGo(ADO)

816 名前:デフォルトの名無しさん mailto:sage [2011/08/04(木) 10:47:18.89 ]
簡単すぎてうんこが漏れそうになった

817 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 19:06:57.41 ]
C++Builder5を使っています。

#include "ABCDEFGH.h" ←空のファイル
#include "ABCDEFGHI.h" ←存在しないファイル

上のようなCPPをコンパイルするとエラーもなく通るんですが、
これって基本先頭8文字しか確認していないってことでしょうか?
また、C++の仕様上では正しいのでしょうか?


818 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 23:18:23.60 ]
ファイルシステムのせい
仕様上問題ない

819 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 12:28:32.91 ]
>>818
8文字ってことでDOS形式のファイル名か何かが
絡んでいるだろうとは思っていましたが、仕様上
問題ないというのは驚きです。
となると、ヘッダーファイル名は先頭8文字をユニ
ークにしなければいけないんですね。




820 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 14:01:34.81 ]
仕様がMS-DOSも前提にしてるからさ

821 名前:801 [2011/08/11(木) 17:05:51.55 ]
さっさと教えてくださいよ

822 名前:デフォルトの名無しさん mailto:sage [2011/08/11(木) 20:26:49.25 ]
______  ___________
         V
    _____
   /::::::::::::::::::::::::::\                  _
  /::::::::::::::::::::::::::::::::::::::\             /  ̄   ̄ \
  |:::::::::::::::::|_|_|_|_|           /、          ヽ はぁ?黙ってろデブw
  |;;;;;;;;;;ノ   \,, ,,/ ヽ          |・ |―-、       |
  |::( 6  ー─◎─◎ )          q -´ 二 ヽ      |
  |ノ  (∵∴ ( o o)∴)          ノ_ ー  |     |
/|   <  ∵   3 ∵>          \. ̄`  |      /
::::::\  ヽ        ノ\           O===== |
:::::::::::::\_____ノ:::::::::::\        /          |

823 名前: 忍法帖【Lv=16,xxxPT】 mailto:sage [2011/08/14(日) 15:48:26.79 ]
日本語版で開発したアプリケーションを英語版Windowsに持って行くと、エラーメッセージが日本語で表示されるのですが、
エラーを英語で表示するにはどうしたらいいのでしょうか?独島は日本の領土

824 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 03:24:59.36 ]
ヘルプの「国際化対応アプリケーションの作成」を読むといいよ
BCB5の場合だけど


825 名前:801 [2011/08/16(火) 16:26:08.12 ]
とっとと教えてくださいよ

826 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 15:20:16.08 ]
BCB2010を使用しています。
pragmaでインクルードファイルのパスは指定できるのでしょうか?



827 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 15:57:39.79 ]
おそらくできない。
つ ttp://docwiki.embarcadero.com/RADStudio/ja/Pragma

828 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 16:03:16.21 ]
docwiki.embarcadero.com/RADStudio/ja/Pragma_option
#pragma option で使用できないオプションは以下のとおりです。
のところに
-Ifilename

829 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 16:22:12.53 ]
>>827,828

有り難うございます。
すっぱり諦めます。



830 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 14:02:57.71 ]
ビルダーで、計算した計算結果を
データ入力値や計算結果・図示などの
印刷を行いたいのですが、
ページは数ページから数十ページ程度の出力となりうるもので
ビルダーでするにはどのコンポーネントをつかう必要が
あるのでしょうか?
QuickReportを検索したのですが、
フリーであればよいのですが、
有償問わず教えてもらえたらと。

831 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:13:46.14 ]
csvファイルにしてOpenOfficeで読み込んじゃったり

832 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 00:52:22.10 ]
FastReportsかQuickReportsだろ

833 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 16:50:07.99 ]
いまさら、BCB5update1 つかってます。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString str1 = "test1";
AnsiString str2 = Caption;

AnsiString dummy1;
AnsiString dummy2;
AnsiString dummy3;
AnsiString dummy4;

#if 1
AnsiString tmp = (str1.Length() ? str1:Caption );//EAccessViolation
#else
AnsiString tmp = (str1.Length() ? str1:str2 );//OK
#endif
}

↑で、EAccessViolation が発生するのは、なぜなんだろ?
コンパイラが腐ってるという噂もありつつ...

834 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 18:57:56.44 ]
確かに、その辺のバージョンで、?:演算子で
?の右(どちらか)にデストラクタが必要なオブジェクトを置いたとき
変なコードを吐いたのを覚えてる。

危険と認識したので、俺的には
?の右に置くものは組み込み型のみで、かつ2つの型を統一にするようにしている。

835 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 19:01:09.08 ]
一応。
暗黙の型変換とデストラクタとで
どちらが原因でバグにぶつかるのか深く追求しなかったから、
両方を避けるようにしてる、ってこと。
特にコンストラクタを介する暗黙の型変換は確実にとぶだろうと。

836 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 05:22:23.39 ]
BCB6 でも再現するがな
さすがに XE2 では正しく動いた。テンポラリのオブジェクトを適切に破棄しておる

>コンパイラが腐ってるという噂もありつつ...
それが正解

837 名前:833 mailto:sage [2011/09/10(土) 19:35:16.92 ]
はぅ、やはりそうなのか...

マシン語がよめれば、確信がもてたんだろけど、
よめないので、吐かれたコードが怪しいとおもいつつ、確信がもてなかただ
やっぱ、最後はマシン語よめないとなぁ...勉強しろよ>自分

if文に書き換えりゃいいだけだから、まぁ、大した話ではないんだけど、
失った時間が...

↑のは、dummy をはさんでるから、当該文で、例外がおきるけど、
スタックの状況によっては、全然離れたところが壊されて、
意味不明の動作になるから、けっこうたちがわるい...


838 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 19:55:35.09 ]
機械語読めないならCとかC++とか使わないほうがいいよ。MSのドットネットとか使ったほうが安全だと思う。その例だとどうみたってコンパイラのバグだとしか
思えない。ただ、バグを回避するコーディングもテクだとは思うが。

839 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:18:11.84 ]
いまどき機械語読める奴なんていねえよ。
8086の時代じゃあるまいし、バカかよ。
32bitのあのやたら長いバイナリを読める奴なんいるんかよ。
アセンブラ読めれば十分だろ、阿呆。




840 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:31:35.14 ]
ナニを切れてるんだか。デバッガの逆アセを読めるかどうかを言ってるんだろ、たぶん。
「C3がRETだ」とかそういうレベルで機械語が読めるとでも思ったのか??コンパイラが
吐くコードがイメージできないと辛いってことだと思うが。

841 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 13:34:30.72 ]
機械語
e-words.jp/w/E6A99FE6A2B0E8AA9E.html
マイクロプロセッサが直接解釈・実行できる言語。数字の列で表現され、人間が簡単に理解できるような形式にはなっていない。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<216KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef