トップページ⇒tech
988コメント332KB

C Builder相談室 Part3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
過去スレ・関連サイトは>>2-5あたり。
0494デフォルトの名無しさんNGNG
>>493
「brc32 generic.rc generic.exe」
これであってるはずだけど‥‥

何故かリソースのコンパイル自体は行われているがexeファイルにリソースがリンクされていないと言う現象が‥‥‥
(エラーメッセージは-v付けても特になし)

うわぁぁぁん!!
0495デフォルトの名無しさんNGNG
TStringsからAnsiStringへの代入はどうすればいいでしょうか?
static_castもdynamic_castも、コンストラクタも全部エラーになります。

StringGrid1->Cells[NumCol][i + 1] = CheckListBox1->Items[i];
0496デフォルトの名無しさんNGNG
>>495
CheckListBox1->Items->Strings[i]
0497デフォルトの名無しさんNGNG
>>496
ありがとうございます。うまくいきました!
どうやら Itemsプロパティの扱い方が、DelphiとBCBで違うようです。

BCBの方がより文法に厳しいように思います。これでやってみます!
0498デフォルトの名無しさんNGNG
>>494
なんか思い出してきた。それ BRC32 のバグだった気がする。

BRC32 は実際にはりソースコンパイルはBRCC32 を呼び出し、
.exe とのリンクは ilink を呼び出しているのだ。

BCC32 に .rc や .res を渡した場合にも、BRCC32 や ilink を
呼び出しているんだが。BRC32 に ilink の呼び出しの不具合があった気がする。

ilink を呼び出してリソースリンクできないかな?たしかそうやって解決した記憶があります。
0499デフォルトの名無しさんNGNG
質問です。

あるもらい物のソースを make すると

 [リンカ エラー] 外部シンボル 'System::__linkproc__ __fastcall GetMem()' が未解決
(C:\〜.OBJ が参照)
 [リンカ エラー] 外部シンボル '__fastcall Controls::TControl::ClientToScreen(const Windows::TPoint&)' が未解決
(C:\〜.OBJ が参照)

というようなエラーが 20 〜 30 くらい出ます。名前からすると、C++ Builder に付属の
ライブラリがリンクされてないようなことではないかと思うのですが、今まで C++ Builder
にさわったことがなく、どうして良いものかさっぱり分かりません。

上の情報だけで何らか原因/解決法が分かりますでしょうか?
0500499NGNG
あれ?
再構築したら通っちゃった。
0501デフォルトの名無しさんNGNG
4月からCを始めて今BCBをやっています
初心者板が無いようなのでここで質問させて頂きます

漢字の練習帳みたいなマス目を作って、そこをクリックや
ドラッグするとそのマスごとに線や○×などを
表示させたいのですがなにか良いコンポーネントはありませんか?
ループで線を引いて、Originで始点のマス目を割り出して、、、
と考えていました
よろしくお願いします
0502.NGNG
>>501

http://pc.2ch.net/test/read.cgi/hack/1024113956/
0503501NGNG
>502
リンク先の>36ですか?w
使いようではそう言う動きも可能かと
0504501NGNG
2,3人友達に聞いてみたけどBCBを誰も知らなかったw
BCBって一般的じゃないんだ;´Д`) 
0505デフォルトの名無しさんNGNG
>>504
BCBとDelphiは内容的にはほとんど同じだと思うが、BCBがC++なので、
初心者に対して敷居が高いからのように思う。
0506デフォルトの名無しさんNGNG
言語としてはC++の方が一般的だから、C++を採用している方が敷居が低いのが普通と思うけどな。
0507デフォルトの名無しさんNGNG
初心者が見てC++のほうが敷居が低いと思うだろうか。
0508デフォルトの名無しさんNGNG
>>504
やっぱVC++があるから
0509デフォルトの名無しさんNGNG
すんませーん。TImageについて教えて下さい。

やりたい事はImage上にマウスカーソルが来たらImage上のBMPを別のBMP
に変化させるだけです。勿論、マウスカーソルがImage上に居なくなった
場合は元のBMPに戻すと言う事です。

よくある奴ですね。でも分からない・・・
たったこれだけの事がわからない・・・ あぁなんと情けなや・・・

どなたかご存知ありませんか? 説明が面倒くさければ、その説明のWebPage
だけでも・・・

BCB5+Win2000+SP1
0510デフォルトの名無しさんNGNG
と、、すいません。何が分からないのかを記載していませんでした。

Image1とImage2があり、それに既にBMPを読み込んで配置しています。
Image1にマウスカーソルが来た場合の判定方法と言う事です。
Leaveした時も判定したいです。
0511デフォルトの名無しさんNGNG
>>510
TImageをサブクラス化してWM_MOUSEHOVERとWM_MOUSELEAVEイベント拾えばいいんでないの?
TImageにWM_MOUSEHOVER飛んでくるかは知らんが。
0512デフォルトの名無しさんNGNG
うぉ〜ぅ。了解です。スグサマやってみます。
0513デフォルトの名無しさんNGNG
Delphiで悪いんだけど・・・なんかあまりにもソックリなんで

http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/browse.cgi?index=9631
0514デルファイの名無しさんNGNG
TImageはグラフィックコントロールなのでWM〜は来ないのでは?
CM〜なら来るかも
0515510NGNG
くぅ〜 感謝感激雨あられ。皆さん、やさすぃ〜
ありがとうござまーす。

この感激〜♪を何時までも♪
0516デフォルトの名無しさんNGNG
Delphiでメッセージに応答させたい場合は message 文を書けば
いいですが、BCBでこれに対応した構文はあるのでしょうか?
0517デフォルトの名無しさんNGNG
BEGIN_MESSAGE_MAP
 MESSAGE_HANDLER
END_MESSAGE_MAP

というやつ。
0518デフォルトの名無しさんNGNG
>>517
なるほどマクロで定義されているのですね。ありがとうございます。
しかしDelphiよりかなり汚いプログラムになってしまいますね。

C++にはもともとイベントハンドラという概念がないのでifやswitch
で分岐させるか、throwで処理するしかないわけですね。でも
throwは非効率的なので分岐処理となるわけですか。
0519デフォルトの名無しさんNGNG
汚いと言われれば確かにそうかも。
でもまあ仕方なさげ。
0520デフォルトの名無しさんNGNG
>>519
DelphiはWindowsに特化して作ってあるので、これの真似をC++で
しようとすれば、どうしてもあちこちにアラが見えてくるのは仕方ない
ですね。

最近なぜ私はDelphiに移行せずBCBにこだわっているのかわからなく
なってきました。MFCでさんざん苦労してきたからかもしれません。
0521デフォルトの名無しさんNGNG
俺の場合はやっぱC++が好きだからかな >Delphiに移行しない理由
Delphiもフリー版のおかげで触ることが出来たけど、やっぱC++の方が好きだったんで。
C++ & RADってことでBCB。
0522510NGNG
   ((( )))
   (  ´Д`)
   ⊂  ._つ
   人 Y
    し'(_)

出来ねぇ・・・ 

void __fastcall TForm1::OnMouseEnter(TMessage & msg)
{
if (msg.LParam == long(Image20))
{
ShowMessage("MouseEnter");
}
}

msg.LParam がいつも0・・・ どんなコンポーネントでもマウスを合わせ
たら拾ってきやがる・・・
誰かHELP ME・・・
0523デフォルトの名無しさんNGNG
>>522
それはフォームのCM_MOUSENTERを処理してるの?
サブクラス化してるようには見えないし、
そのコードだけだとよくわからない・・・。
0524デフォルトの名無しさんNGNG
>>521
私も同じです。元々C言語で仕事してきたので(今はC++MFCメイン)、
BCBの方がすんなり入れました。VCL使う時はどうしてもDelphiの参考書を
読むしかないですね。

BCBの本がほとんど無いのは悲しいです。

>>522
たった今作り始めてみました。出来たらうpします。
0525510NGNG

すんません。CM_MOUSEENTERです・・・

private:// ユーザー宣言
void __fastcall OnMouseEnter(TMessage & msg);
void __fastcall OnMouseLeave(TMessage & msg);
public:// ユーザー宣言
__fastcall TForm1(TComponent* Owner);

protected:

BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, OnMouseEnter)
VCL_MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, OnMouseLeave)
END_MESSAGE_MAP(TForm)
0526デフォルトの名無しさんNGNG
>>524
ぐわぁ〜
つ、作って頂けると・・・
なんともありがたや、ありがたや・・・

と言いますか・・・ 漏れ、なんて情けなや・・・
0527511NGNG
作っては見たものの、マウスの動きが早いと取りこぼす‥‥鬱だ。
VCLのサブクラスがイマイチ解らなくてSetWindowLong使ってるしw
0528510NGNG
>>527様
成る程・・・ BCBでの実装は難しいのですかねぇ〜
うーんと。ToolBarで代用とか他の道を模索してみましょうか・・・
0529デフォルトの名無しさんNGNG
>>525
>>524さんがコード書いてくれてるみたいだけど(サブクラス化の方かな?)
それはTImageを継承してコンポーネントを作るときに使う方法。
0530510NGNG
>>529
コ・コンポーネント作成ですか!!
そこまでしないとBCBでは実装出来ないと!
簡単だと思っていたんですが・・・ 大甘だったと言う事ですか・・・
0531デフォルトの名無しさんNGNG
どうやらできました。
サブクラス化までは必要ないです。TFormが受け取るメッセージをディスパッチ
すれば十分なようです。

ただし、DelphiのMLにもありますように、Panelの上にImageが乗ってたりすると
うまく行きません。

protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, CMMouseEnter);
VCL_MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave);
END_MESSAGE_MAP(TForm);

void __fastcall TForm1::CMMouseEnter(TMessage& Msg)
{
// Image1 にマウスが入った?
if (reinterpret_cast<TComponent*>(Msg.LParam) == Image1) {
// 赤く塗る
Image1->Canvas->Brush->Color = clRed;
Image1->Canvas->FillRect(Rect(0, 0, Image1->Width, Image1->Height));
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CMMouseLeave(TMessage& Msg)
{
// Image1 からマウスが出た?
if (reinterpret_cast<TComponent*>(Msg.LParam) == Image1) {
// 白く塗る
Image1->Canvas->Brush->Color = clWhite;
Image1->Canvas->FillRect(Rect(0, 0, Image1->Width, Image1->Height));
}
}
0532デフォルトの名無しさんNGNG
ほんとだ。パネルに乗ってると駄目だね。
サブクラス化したほうはOKでした。
0533501NGNG
>>501ですがもう一度同じ質問宜しいですか?

漢字の練習帳みたいなマス目を作って、そこをクリックや
ドラッグするとそのマスごとに線や記号、○×などを
表示させたいのですがなにか良いコンポーネントはありませんか?

皆さん社会人のようで、土日と平日のレスの量に差がありますねw
0534デフォルトの名無しさんNGNG
>>532
サブクラスにした方がきっちり動くのは、Delphiでも同じですね。
これで胸がすっきりしました。

>>533
TLabelのCanvasに描画するだけのというのはダメ?
0535510NGNG
>>531
ぐぉーーーーーーー 本当だーーーーーーーーーーーーーーーーーー!!
出来たーーーーーーーーーーーーーーーー

んですが、Panel上に乗ってるんですよね・・・ バッチリと・・・
これは弱った・・・ いや、、、ゲームを作ってまして・・・
操作系は全てPanel上にのせてるんですね・・・ これがまた・・・

そうですか・・・ サブクラスを勉強します・・・

お付き合い下さった方、誠にありがとうございます。
0536デフォルトの名無しさんNGNG
>>535
サブクラスについてはまた後ほど書いてみます。
ただ、テレビで見たい番組があるので、ちと遅れます。

サブクラスを書くと、friend class宣言をしないと不便なことがあるかも
しれません。これは書いてみてまたお知らせします。
0537デフォルトの名無しさんNGNG
>>533
Canvasがあれば何でもいいけど、絵を保持してくれるTImageでどう?

>>535
>>530でびっくりしてるけど、コンポーネント作りは難しくないよ。
サブクラス化でやるならこんな感じ。

--- .h ---

TWndMethod OldImageWndProc;
void __fastcall ImageWndProc(TMessage& Msg);

--- .cpp ---

※置き換え
OldImageWndProc = Image1->WindowProc;
Image1->WindowProc = ImageWndProc;

※置き換える必要がなくなったら
Image1->WindowProc = OldImageWndProc;

void __fastcall TForm1::ImageWndProc(TMessage& Msg)
{
if (Msg.Msg == CM_MOUSEENTER)
{
ShowMessage("Mouse Enter");
}

OldImageWndProc(Msg);
}
0538デフォルトの名無しさんNGNG
         ∧_∧ >>536
         (´Д` ) 書き終わってリロードせずに貼ってしまいました。
         /  y/  ヽ 切腹しますた。
    Σ(m)二フ ⊂[_ノ
        (ノノノ | | | l )
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0539510NGNG
>>537
ウワァァァァァァァァァァァァァァァァァァァァァァァァァァァァァン!!! わかりません〜〜〜〜 ・・・・

・・・
・・・

.hの部分はどこに追加しますか?・・・
.cppの置き換えって・・・ ・・・なんでしょう?

ってレベルなんですね・・・ いや、、、 もっと調べまする・・・
すんません。VBからの移行組なもんですから、そこら辺りはさっぱり・・・
0540511NGNG
とりあえずWin32APIで。
VCLは初心者レベルなので勘弁w

//---------------------------------------------------------------------------
//フォームの配置はForm1(TForm)->Panel1(TPanel)->Image1(TImage)。
//動作にはWin98/NT4以降orWin95+IE3以降必須
//
TForm1 *Form1;
WNDPROC oldProc;
BOOL tmeFlag = TRUE;

LRESULT APIENTRY MyProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
/*
case WM_MOUSEHOVER://TPanelにセットしているせいか、Panel上にマウスがある時に常時流れているので使えない(;´Д`)
break;
*/

case WM_MOUSELEAVE:
//マウスが離れた時の処理
Form1->Image1->Picture->LoadFromFile("適当0.BMP");
tmeFlag = TRUE;
break;

}

return CallWindowProc(oldProc, hwnd, msg, wParam, lParam);
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
oldProc = (WNDPROC)SetWindowLong(Form1->Panel1->Handle, GWL_WNDPROC, (UINT)MyProc);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
if (tmeFlag == TRUE) {
//マウス進入時の処理
Image1->Picture->LoadFromFile("適当1.BMP");
tmeFlag = FALSE;
}

TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = Panel1->Handle;
tme.dwHoverTime = HOVER_DEFAULT;
_TrackMouseEvent(&tme);

}
//---------------------------------------------------------------------------

0541510NGNG

いや、漏れが甘い夢を見ていたようです。
大人しく別の方法を模索します。

ありがとうございました。
0542デフォルトの名無しさんNGNG
なんか入り乱れてるけど、とにかく全部貼っちゃいます
>>539
ヘッダはこんな感じ

class TForm1 : public TForm
{
__published:
TImage *Image1;
private:
TWndMethod OldImageWndProc;
void __fastcall ImageWndProc(TMessage& Msg);
public:
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1();
};

cppソースはこんな感じ

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
OldImageWndProc = Image1->WindowProc;
Image1->WindowProc = ImageWndProc;
}

__fastcall TForm1::~TForm1()
{
Image1->WindowProc = OldImageWndProc;
}

void __fastcall TForm1::ImageWndProc(TMessage& Msg)
{
if (Msg.Msg == CM_MOUSEENTER)
ShowMessage("Mouse Enter");

OldImageWndProc(Msg);
}
0543デフォルトの名無しさんNGNG
とりあえず茶でも飲め
     旦~
 旦~     旦~
     ヽ )ノ    ビュンビュン
旦~ ⌒(゚д゚)ノ 旦~
    /. ( ヽ
 旦~     旦~
     旦~
0544デフォルトの名無しさんNGNG
  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・) < たまに突然盛り上がるね。
 (つ旦と)   \______________
  と_)_)
0545511NGNG
   | \
   |Д`) BCBでWin32API直叩きはやっぱり邪道かな?
   |⊂
   |
0546510NGNG

>>536様 >>511様 >>542様

出来ました〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ウキィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィィ

はぁ〜 苦節1日・・・ ようやく出来ますたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

ご迷惑をお掛けいたすますたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
ぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

うれすぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
ぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
0547デフォルトの名無しさんNGNG
>>545
そんなことないですYO
APIも使えた方がいいに決まっとります (´・Д・`)ゝ
漏れはAPIあまり分かりませんけど…
0548510NGNG


ボソボソ・・・





何個もある場合はどうしたらいいんでしょう・・
Imageが40個もあるんですが・・
0549デフォルトの名無しさんNGNG
>545
俺もAPIで組める人尊敬ですよ
>546
おちけつ
0550デフォルトの名無しさんNGNG
>>548



                          ヤッパリw

コントロールに頼らず、画面サイズのテーブル作ってボタンの情報を格納、MouseMoveイベントで自力チェックしたほうが簡単な(・∀・)ヨカーン
0551510NGNG

ImageListからImageへの読み出し方ってご存知ないですか?
BCB使い初めてからずっと疑問なんですが、、、 わからない・・・



教えられついでにご質問します・・・
0552510NGNG

ここまで出来ればもう・・・ 出来たも同然なんですが・・・

>>550 それを言わないで・・・ 悲しくなって来ますので・・・

ウワァァァン!!!!
0553デフォルトの名無しさんNGNG
>>551
ヘルプのTCustomImageList::GetBitmap()
0554510NGNG
くっ・・・ 出来たと思ったのに・・・

後、もう少し情報をくださーい。
ImageList2->GetBitmap(1,Image165->Picture->Bitmap);

で、、、今までの関連TImageで交互に変化させようとしました。
すると、拾ってきません。いや、正確には拾ってくるのですが、ブレークポイント
を置いてF9すると変化します。
ですが、何もしないまま素通りさせると拾ってきません・・・

タイミングの問題なんでしょうか・・・
0555510NGNG
いやもう少し具体的に・・・

CM_MOUSEENTERでImageList2のindex0のBITMAPを。
CM_MOUSELEAVEでImageList2のindex1のBITMAPを。

となっています。

で、今まで御教授頂いたCODE上でBITMAPを変化させようとしています。
所が、何も変化しなくなってしまいました。
イベントには飛んで来ています。デバッグでは変化は成功しました。

ブレークポイントも何も置かない場合のみ変化しません。
と言う事です。
0556デフォルトの名無しさんNGNG
>>554
TImage::Refresh()で再描画させてみれば?
0557デフォルトの名無しさんNGNG
ちらつくようなら、
0558510NGNG

ってか、、、、 ここにいる方達は天才ですか?
と言いますか、漏れのつたない文章を理解し更に解答まで素早く用意する・・・

マジで天才ですか? いや、言わせて下さい。



出来ました!!!!! と!




おいおい、、、漏れの3ヶ月って一体何よ・・・
VBでの . が -> に変わっただけで分からないとか。

ImageListからBITMAPが取れないとか。 なんなんだ、漏れ。
本当に自信を無くしました・・・
0559510NGNG

これで漏れの殆どの疑問が解決してしまった・・・
凄い人達もいるもんだ・・・

世の中広いなぁ〜
0560デフォルトの名無しさんNGNG
   A
  (゚o゚)<よくわからないけど、おめでとう
  (ー)ー
   ))
0561デフォルトの名無しさんNGNG
Imageのサブクラスを作成した場合(例えば名前をTMyImageとする)、
これをIDEに登録(Register)してから、Formに貼り付けて使わないと
いけませんね。
0562510NGNG
何から何までありがとうございます。

全然、関係は無いのですがBuilderはINIファイルの書き込み・読み出しとかが遅
いとかを昔MLで聞いた事があるのですが本当なのでしょうか?
また、INIに書き込む事が出来ない事があるとも聞きましたが・・・

他にゲームの設定とかを暗号化したファイルに記憶させたいのですが、私のゲーム
はインストーラを使いません。インストーラを使わなくて暗号化したファイルを作
成する事って可能なのでしょうか?
0563TeamB/2ch ◆SE69s0c2 NGNG
>BuilderはINIファイルの書き込み・読み出しとかが遅
>いとかを昔MLで聞いた事があるのですが本当なのでしょうか?
>また、INIに書き込む事が出来ない事があるとも聞きましたが・・・

CBuilder 1 のバグ。といわれると否定できませんが、まずガセでしょう。

どちらの ML でしょうか。
0564510NGNG

http://dev.sfdata.ne.jp/cbuilder/
のMLでそのような事を仰っていた方がいました。

in,outの部分を一から作った方もいらっしゃったとか。
0565デフォルトの名無しさんNGNG
>>564
ML の番号とかお判りになりますか?
http://www.sfdata.ne.jp/windev/cbuilder/
で閲覧できます。
0566TeamB/2ch ◆SE69s0c2 NGNG
おっと。名無しさんになってしまった...

".ini" で検索した結果を見る分には問題となるような投稿記事を見つけることは
できませんでした。

NT で管理者権限云々の話は、OS のセキュリティ機構の問題ですからバグとは
いえないでしょう。書込み禁止の FD に書き込めないのはなぜだ?というような
話題ですから。
0567デフォルトの名無しさんNGNG
>>562
速度とか不安があるなら↓見ておくと良いのでは

・INI ファイルを扱うもう1つのクラス
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=5#0287.txt
0568510NGNG
>>566
申し訳ございません。私も探す事が出来ませんでした・・・
見たと思ったのですが・・・

関係無い事で時間を取らせてしまいました。この場にてお詫び申し上げます。

>>567
Tmeminiですか・・・ 初めて知りますた。
iniファイルが存在してそれを初めに読み込んでキャッシュすると言う認識
で大丈夫なんですよね。

成る程。こう言う物もあるのか・・・ 速そう・・・

全然話は違いますが、ファイルを暗号化する一般的な手法ってご存知無い
ですか? 解読をやろうと思えば何でも出来るので仕方無いのですが、素
人に有効であれば良い程度の暗号化なんですが・・・
0569デフォルトの名無しさんNGNG
XORでもやっとけば?
0570デフォルトの名無しさんNGNG
pascalコードでよければ 前に書いたのがあるから使って

http://pc.2ch.net/tech/kako/1017/10178/1017803412.html
77,84
0571510NGNG
>>570
う、、、うわぁ〜 む、難しい・・・

ぜんっぜん理解出来ません。これは・・・
Delphiだからとかではなく、、、、 例えBuilderだったとしてもさっぱり・・・

XORの原理から勉強しないと・・・ 漏れの脳みそでは・・・・
0572他のプログラムの起動NGNG
簡単なプログラムランチャーを作ろうと思っています。
あるプログラムから他のプログラムを起動するのってどんな関数
がありましたっけ。DOS時代には子プロセスの起動の関数が
あったように記憶しているのですが。。。

よろしくお願いします。
0573デフォルトの名無しさんNGNG
execXX系/WinExec/CreateProces
0574510NGNG

すんません。またまた質問です。

VBとかで言うPublic変数とかグローバル変数ってBuilderではどうやるん
でしょ。hのPublicに記載するんでしょうか。前やろうとした時に全然う
まく動作しなくて。

具体的にはForm1とForm2の両方が1つないしは2つの変数の値を参照します。
変数の値により何かを分岐させようと思っているのですが・・・

XOR・・・ 難しいですねぇ〜
0575デフォルトの名無しさんNGNG
>>574

C++とは言わん。最低限Cくらいは勉強しとくことをお勧めする。
とりあえずexternを検索しる。

XORはビット演算知ってれば簡単だと思うが。というか言語ガイド読んだか?
0576デフォルトの名無しさんNGNG
>>574
Form1かForm2のどちからのヘッダーファイルのグローバル部(クラス宣言の外)
に変数を定義する。

もう一方のグローバル部にはexternを付けて変数を外部宣言する。
0577510NGNG
>>575
そうですよねぇ。VBからCを素っ飛ばしてC++に来ましたから・・・
知識が滅茶苦茶飛んでるんです。

Builderで業務アプリは組んだんですが・・・ ま、小さい小さい物ですが。
どっちにしても知識不足は認識しておりますので、勉強いたします。

ありがとうございます。
0578510NGNG
>>576
ありがとうございます。スグサマ試してみます。
0579510NGNG
ウゥ・・・ 拾ってこないっす・・・

Form1のヘッダー・・・ つまり
extern PACKAGE TForm1 *Form1;
の下に
int phensu;
と記載しました。

そして、Form2のヘッダー extern PACKAGE TForm2 *Form2;
の下に
extern phensu;
と記載しました。

そして

Form1側で phensu = 1; Form2->Show(); として

Form2のFormActivateイベントでphensuが1であればこれ、phensuが2であれば
これと分岐させようとしました・・・ 

がphensuは 0 となっており、どれにも引っ掛かりません。

この場合の期待値は 1 です・・・ 何が悪いんでしょう・・・
0580デフォルトの名無しさんNGNG
>>579
ん?俺の所で試してみたけど動くぞ。

--form1.h--
int sema;

--form1.cpp--
void __fastcall TForm1::Label1Click(TObject *Sender)
{
sema = (sema == 1) ? 0 : 1;
Form2->Show();
}

--form2.h--
extern int sema;

--form2.cpp--
void __fastcall TForm2::FormActivate(TObject *Sender)
{
if (sema == 1)
Label1->Caption = "Active";
else
Label1->Caption = "Form2";
}

form1のラベルをクリックする度に、form2のラベルのキャプションが変わる。
0581510NGNG
すんません。やっぱり漏れの方では動きませぬ・・・ 理由がわからない・・・

余計なものを除いてとりあえず記載しときます・・・

Form1.h

__published:// IDE 管理のコンポーネント
private:// ユーザー宣言
public:// ユーザー宣言
protected:
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
int phensu;
//---------------------------------------------------------------------------
#endif

Form2.h

__published:// IDE 管理のコンポーネント
private:// ユーザー宣言
public:// ユーザー宣言
__fastcall TForm8(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
extern int phensu;
//---------------------------------------------------------------------------
#endif
0582510NGNG
Form1.cpp

phensu = 1; Form2->Show();

Form2.cpp

void __fastcall TForm2::FormActivate(TObject *Sender)
{

ShowMessage(phensu);

if (phensu == 1)
{
}
}

上記のShowMessageでは 0 となりまする・・・
記載する場所を間違えているのでしょうね・・・ 多分・・・
0583デフォルトの名無しさんNGNG
>>581
うーんこのソースからだけではおかしなところはないですねえ。
強いて言えば"TForm8"かな?TForm2なのに?

どこかいいうpろだ教えてくだされば、こちらで試作したファイルを
まるごとうpしますよ。
0584510NGNG
>>583
ごみんなさい。Form2ですた・・・

すんません。うpを知らないんですぅ〜〜〜〜〜〜〜〜〜〜〜〜
はふぅ〜 どーしよ

探してきます。
0585510NGNG
とりあえずざっと調べてみますた。

http://50megs.com/
50MB
http://angelfire.lycos.com/
50MB・FTP
http://elitecities.com/
5MB・FTP・MAIL
http://esmartstart.com/
20MB・FTP・MAIL
http://fortunecity.com/
25 MB・FTP
http://fsn.net/
30MB・FTP・CGI
http://geocities.com/
15MB・4月からFTP有料化・MAIL
http://graffiti.net/
20MB・MAIL
http://homestead.com/
12MB
http://internettrash.com/
10MB・FTP・MAIL
http://redrival.com/
20MB・FTP
http://tripod.lycos.com/
20MB・FTP・CGI
http://web1000.com/
50MB・FTP・広告無し・アダルト向け?
http://webprovider.com/
20MB・FTP・CGI
http://www.port5.com/
portland系・15MB・FTP・CGI・SSI・PHP・SENDMAIL・広告無し
<中国語>
http://heha.net/
不明
http://uhome.net/
38MB・FTP・CGI・SSI・PHP・SENDMAIL
0586デフォルトの名無しさんNGNG
>>585
せっかくうpロダを紹介していただきましたが、どれも登録が必要な
ようですので、2ch系のうpロダにうpしました。
番号は85のDoubleFormsです。
ZIPで圧縮しました。

http://hikky.tsukaeru.jp/clip/clip.cgi
0587510NGNG

http://kari.to/upload/index.cgi
って遅かった・・・
0588510NGNG

うぅ・・・ >>586様へ

>>586様のCodeでは動きます。確かに・・・
でも漏れの方では全然・・・

試作で別の奴を作ってみました。それは動くんです・・・

でも本番の奴では動かない・・・ あぁ・・・ 理由がわからない・・・
こうなると設定がらみでしょうか・・・ 
念の為に再構築もやってみましたが変わらず・・・

こんな所でつまずくとは・・・

0589デフォルトの名無しさんNGNG
>>588
外してるかもしれんけど、intの前にvolatile付けてみるとか。最適化で
うまくいってないのかもしれないから。
0590510NGNG

何から何までありがとうございます。

volatileを付けると・・・
「phensuが複数見つかった」とコンパイラに怒られますた・・・

タイミングとかの問題でしょうか・・・ もしかして・・・
0591デフォルトの名無しさんNGNG
>>590
volatile int phensuは一つだけ、後のファイルは全部
extern volatile int phensuにしてみたら?
0592510NGNG

こいつは手強い・・・

Form1.h

volatile int phensu;

Form2.h

extern volatile int phensu;

としますた。ダメっす・・・

宣言は上記2つしか今は無いっす・・・
0593510NGNG
Form1.h側の

volatile int phensu = 100;

とかにすると100を拾ってこれるんですがねぇ〜 これじゃ〜・・・
■ このスレッドは過去ログ倉庫に格納されています