1 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 03:39:51 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 C++Builder使いが優しくコメントを返しますが、 お礼はC++Builderの布教と初心者の救済をお願いします。 Borland Home Page www.borland.co.jp/ <過去スレ> くだすれC++Builder(超初心者用) pc8.2ch.net/test/read.cgi/tech/1117225464/l50 くだすれC++Builder(超初心者用)その2 pc10.2ch.net/test/read.cgi/tech/1144308804/l50 <兄弟スレ> くだすれDelphi(超初心者用)その39 pc10.2ch.net/test/read.cgi/tech/1169386914/l50
610 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:51:01 ] >>608 解釈が違うと思う。 c_str() で得られたポインタから strcpy 等で 「自分で確保したメモリにコピーする」っていう意味。 そうすれば、自分で確保したメモリの寿命は自分で決められるから。 ttp://www.ne.jp/asahi/nagoya/ahomaro/builder/cpb-016.html ↑も参照してみて。
611 名前:デフォルトの名無しさん [2008/07/25(金) 15:16:04 ] >>609-610 詳しい解説ありがとうございます。 入門書を見ると、「初心者はAnsiStringを使えば簡単」って書いてあるけど、実は取り扱いには注意しないといけないんですね。 暑くて頭があまり回っていませんが、がんばってみます。
612 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 15:20:45 ] >>611 基本的には常に AnsiString を使って、 API とのやりとりや、標準ライブラリの呼び出しだけに c_str() を使う、 って考え方が良いと思う。
613 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 15:48:01 ] >実は取り扱いには注意しないといけないんですね。 なことない。簡単。
614 名前:デフォルトの名無しさん [2008/07/25(金) 18:05:18 ] 今年買ったPCでTurboC++ Builder, WinXPでOpenGLに挑戦中なんですが, テクスチャについて質問があります。 今, 「C++ Builder 6 コンポーネント活用ガイド&実践プログラミング Vol.8 OopenGL プログラミング編」 の「53-2 Bitmap形式のファイルを利用する」のソースコードex19を試しています。 このex19で1枚のテクスチャにbmpファイルを貼り付けているんですが, サイズが 64*64, 128*128, 256*256ならうまくいくんですが, 512*512や1024*1024のbmpを利用しようとすると スタックオーバフローを検出して止まります。 これは, 256が4枚で512を表現したりするしかないのでしょうか? 512*512やそれ以上のサイズが使える解決方法をお願いします。
615 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:15:00 ] >>614 よくわからないけど、ファイル自体をスタックに積んでるのかねぇ? そんなコード見たことがないが。 その辺り調べてみた?
616 名前:デフォルトの名無しさん [2008/07/25(金) 18:37:34 ] 一様乱数を生成する関数のソースについて質問があります。y=1/sqrt(2)*exp(-1/2*x*x)の計算で In function `GaussRandom':: undefined reference to 'sqrt’と In function `GaussRandom':: undefined reference to `exp'というエラーがでて実行できません。もちろん<math.h>は定義しました。 レポート課題なのでマジで困ってます。是非教えてください。ソースを下に載せておきます。ちなみにxが一様乱数で、yが正規乱数です。 double GaussRandom() { double x; double y; x=UniformRandom(); y=1/sqrt(2)*exp(-1/2*x*x); return y; } double UniformRandom() { double x; int r=1; r=1229*r+351750; x=r/1664501; return x; } }
617 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:48:29 ] GaussRandom()の前にUniformRandom()が定義されてないからじゃないの
618 名前:デフォルトの名無しさん [2008/07/25(金) 18:54:34 ] >>617 今入れ換えて実行してみたのですが駄目でした。
619 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 20:02:44 ] おかしいね、うちはそれコピペしただけの通るよ math.hのincludeがうまくできてないのかね
620 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 21:11:48 ] マルチポストしまくりで解決済みなんでスルーでいいよ
621 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 21:04:15 ] >>615 スタックのサイズを大きくしたらいけました。ありがとうございます。
622 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 21:09:55 ] >>621 とりあえず載ってるコードがダメダメな気がするから自分で書き直すことをお奨めする
623 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:36:46 ] コンパイルするとError: 外部シンボル 'WinMain' が未解決(C:\BORLAND\BCC55\LIB\C0W32.OBJ が参照 とでるのですが、理由がわかりません・・・。 どなたかわかる方お願いします。
624 名前:デフォルトの名無しさん [2008/07/27(日) 14:51:31 ] フォームに配置したTButtonのOnClickイベントを、 実際にボタンを押してではなく、あるメソッド内から呼び出したいのですが そういうことは可能ですか?
625 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:12:14 ] TButton::Click()があるじゃない
626 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:43:56 ] >>625 おかげさまで解決しました。 ありがとうございました。
627 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:16:52 ] おすすめのエディタ教えてください! 今までC言語を始めよう!というフリーソフトを使ってきました
628 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:17:48 ] >>627 スレ違い
629 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:24:30 ] >>627 エディタ部分だけなら2006以降のエディタの方がいいかな ウィンドウ構成とかは6までのIDEのほうが好きだけど
630 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:25:09 ] C++Builder6からmecabを使いたいのですが、一週間以上格闘しても光が見えません(涙) mecabの初期化すら出来ない状態なので何かアドバイス頂ければ嬉しいです。 よろしくお願いします。
631 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:12:29 ] OpenProcessで使うPROCESS_ALLACCESSマクロだが、定義間違ってね? VCその他では #define PROCESS_ALL_ACCESS 0x001f0fff BCCでは #define PROCESS_ALL_ACCESS 0x001fffff になってる。 たぶん>>427 の問題もそのせい こういうバグってどこに報告すればいいん?
632 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:31:13 ] 普通に0x1F0FFFになってるが。 検証コードはprintf("%08X", PROCESS_ALL_ACCESS); 環境は6pro update4
633 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:37:38 ] winnt.h #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFF) #define STANDARD_RIGHTS_REQUIRED (0x000F0000L) #define SYNCHRONIZE (0x00100000L) どう見ても 001f0fff だわな
634 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:38:59 ] おっと、手元のが古いだけか 駄レスすまそ
635 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 11:28:57 ] そういうところまで疑わなきゃいけないんだな、面倒な
636 名前:デフォルトの名無しさん [2008/08/09(土) 21:33:14 ] TEditにある数値を入力して、OnExitイベントで入力された数値を チェックしてますが、入力値が異常でも、フォーカスが次のTEdit にうつってしまいます。 よく考えれば当然といえば当然の結果なのですが、どうしても正常値 を入力するまでフォーカスを保持させたいのですが、行き詰ってしまい ました。 よい解決方法がないでしょうか。よろしくお願いします。
637 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:19:30 ] できるじゃん void __fastcall TForm1::Edit1Exit(TObject *Sender) { TEdit* edit = dynamic_cast<TEdit*>(Sender); if (edit->Text != AnsiString("aaa")) { edit->SetFocus(); } }
638 名前:デフォルトの名無しさん [2008/08/11(月) 15:43:16 ] ScanLineとRGBTRIPLEについて質問です。 ネットで調べると、ScanLineで取り込んだ配列はBGRの順番に入っているのでRGBTRIPLEに入れればよいとなっていたのですが、 実際に使ってみるとずれており、4番目の数値(中身は0)があるような感じでした。 BYTEが4つある配列に入れることで動作させましたが、以下の書き方は間違っているのでしょうか? int i,j; int RoopMax=100; // ループ回数 DynamicArray<RGBTRIPLE*> slbuf; slbuf.Length=RoopMax; for (i=0 ; i<RoopMax ; i++){ slbuf[i] = (RGBTRIPLE*)ColPos[Num]->Picture->Bitmap->ScanLine[i]; } for(i=0;i<RoopMax;i++){ for(j=0;j<RoopMax;j++){ Ra[i][j] = slbuf[i][j].rgbtRed; Ga[i][j] = slbuf[i][j].rgbtGreen; Ba[i][j] = slbuf[i][j].rgbtBlue; } }
639 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:56:51 ] >>638 ビットマップが24bitならBGRの3bytes、32bitならBGRAの4bytes。
640 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:58:52 ] あと、今のPCだと32bitのほうが一般に処理速度早くなるから注意。 24bitだとワード+バイト転送なのに対し、32bitはダブルワード1回ですむ
641 名前:デフォルトの名無しさん [2008/08/11(月) 16:07:26 ] >>639-640 なるほど、ビットマップの形式によって変わるので処理としては間違ってはいないんですね。 BGRAがあることに気づきませんでした。 ありがとうございます。
642 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 17:02:27 ] サブのスレッド(TThread)でTNotifyEventを発生させて、そのイベントによりメイン側の関数が実行されたとき メイン側のメンバ変数の内容が見えないのですが、どうすればいいのでしょうか。 エラーが出るのではなく、関係ない数値が入っているので、別の部分を参照しているみたいです 具体的には メイン側クラス(MainClass)、サブのスレッド(SubThread) MainClass内で AnsiString a; SubThread->hogeEvent = (TNotifyEvent)&hogeFunc; さらに void hogeFunc(TObject* Sender) { MessageBox(Handle , a.c_str() , "",MB_OK); } として、hogeEventを発生させたとき、メイン側で既に代入したaの内容が読み取れていない といった感じです。 よろしくお願いします。
643 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:46:54 ] 実行コンテキストを無視しちゃだめ。メインスレッドに属するコード部分はメインスレッドのコンテキストで 実行する。PostMessageとかSynchronizeとかを使う。
644 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:13:49 ] >>643 ありがとうございます。 TNotifyEvent fOnHoge; __property TNotifyEvent hogeEvent = {read=fOnHoge,write=fOnHoge}; void __fastcall TSubThread::evHoge(TObject* Sender) { if(hogeEvent){ hogeEvent(this); } として、サブスレッド内で Synchronize((TThreadMethod)&evHoge); を呼び出しても、解決しません。 このような書き方ではメインスレッドのコンテキストで実行されないのでしょうか。 2度も申し訳ありませんが、よろしくお願いします。
645 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:47:21 ] アホな質問をお許し下さい。 Unit1.cppにくっついてるフォームForm1(Unit1.dfm)のMemo1に Unit2.cppの処理から文字を入れたいときはどうすればよいでしょうか… VBっぽくForm1->Memo1->Lines->Add(a);みたいにしたら出来るかなーと思ったけど駄目でした Turbo C++を使っています。
646 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:48:37 ] Unit2.hppに#include "Unit1.hpp"
647 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 18:50:14 ] ファイル→ユニットヘッダーファイルの追加の方が楽か
648 名前:645 mailto:sage [2008/08/14(木) 19:10:20 ] おおお 出来ました。ありがとうございます!
649 名前:デフォルトの名無しさん [2008/08/17(日) 03:27:01 ] NI社のUSB-6008という製品を使ったことのある方はいますか? これを使用してみたいのですが、最初にどこから手をつけていいのかわからなくって・・・。 とりあえず、DLLのインポートライブラリを作成してみようと、nidaq32.dllを使用してみたのですが、 Error nidaq32.dll: unknown file type と、なってしまいます。 NI-DAQのバージョンは7.2 XPでBuilder6.0を使用しています。
650 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:43:53 ] それインポートライブラリが悪いか、nidaq32.dll にパスが通ってない、とか。
651 名前:デフォルトの名無しさん [2008/08/18(月) 01:24:22 ] nidaq32.dllがあるフォルダで、コマンドプロンプトから実行したのですが・・・ これってIMPLIBの使い方間違ってます?
652 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:02:18 ] #include <stdio.h> #include <System.hpp> #pragma link "vcl.lib" #pragma link "rtl.lib" int main() { wchar_t col_caption[256]; int width; int r0 = swscanf(L"知名性 (20)", L"%s (%d)", col_caption, &width); printf("> %s : %d (%d)", AnsiString(col_caption).c_str(), width, r0); } 上のコードの実行結果が期待する結果の > 知名性 : 20 (2) にならずに > 知 : 4 (1) となるのですがRTLのバグのほかになにか原因はありますでしょうか 環境はBCB6Pro#4、Win2kです。
653 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:01:04 ] setlocale
654 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:09:17 ] >setlocale これって何のライブラリになるんでしょ?C++標準?VCL? それを知らないと、#includeできないので。 あと、getlocaleってのもあるんでしょうか?
655 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:18:02 ] ついでですが、 localelist みたいな1式も取れるんでしょうか?
656 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:35:41 ] setlocaleはswscanfには関係ないと思うんですの。VC2005だとちゃんと動くし。 BCBでも他の文字列ではちゃんと動いてるし。
657 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:50:06 ] 確かにBCBヘルプに >Standard C++ Library: Class Reference >locale ってのがありますね。 これはクラスだからいろいろメソッド使えるかも。 でも、これで切り替えても、 AnsiToUtf8/Utf8ToAnsiのロケールとは無関係なんかなぁ。 あ〜、テストプログラム作れば良いんだが、通勤時の暑さのせいでしんどい。
658 名前:デフォルトの名無しさん [2008/08/19(火) 23:14:53 ] >>650 インポートライブラリが悪いって、どのような現象があるのでしょうか? BuilderのバージョンはBuild10.166ですが・・・
659 名前: ◆jButlJVlzY mailto:sage [2008/08/19(火) 23:16:05 ] #include <iostream> using namespace std; int op; char a,b,c,d,f; int main(){ cout>>"物語の始まり">>endl; /* char a ="起"; char b ="承"; char c ="転"; char d ="結"; char f ="おまけ"; */ cout << "1目次1ページ目 目次2ページ 目次3ページ 目次4ページ 目次5ペーじ おまけ" << flush; cin >> op; {
660 名前:デフォルトの名無しさん [2008/08/21(木) 02:12:21 ] すいません、どなたか>>658 についてわからないでしょうか。 正解でなくても、何か参考になるようなことでもいいので意見を下さい。 よろしくお願いします。
661 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 07:47:42 ] implib nidaq32.dll nidaq32.lib と引数の順番を間違って実行して、nidaq32.dllが壊れて、その後 implib nidaq32.lib nidaq32.dll と順番を直したけどnidaq32.dllは壊れてるからエラー、とか? 一応本家にbcc用のインポートライブラリがあるみたいだけど。 ↓の一番下のzip digital.ni.com/public.nsf/allkb/7793F4D8AFC47C1E86256E84005BBBE8
662 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 20:09:54 ] >>649 NIDAQmxのDLLはnicaiu.dll見たいだよ? NIDAQmxをインストールするとc:\WINDOWS\system32あたりにnicaiu.dllがあるはずだから >implib nicaiu nicaiu.dll でnicaiu.libを作ってリンクしてみたら?
663 名前:デフォルトの名無しさん [2008/08/22(金) 02:33:44 ] >>661 すいません、一度壊してました・・・orz >>662 NIDAQではなく、NIDAQmxを使うのですか!! ありがとうございます、やってみます。
664 名前:デフォルトの名無しさん [2008/08/27(水) 17:23:50 ] メインフォームのForm1と、 処理中ダイアログ用のForm2があって、 次のように使っています。 void __fastcall TForm1::ShowDialog() { Form2->Show(); for (i=0;i<100;i++) {... ;ProgressBar1->Position=i; ...} Form2->Hide(); } このForm2が前面に表示されている最中は、 Form1上にあるボタンをクリックしても OnClickイベントが発生しないようにしたい(無視したい)のですが、 どうしたらいいのでしょうか? Form2表示中にForm1上のボタンをクリックしたことによる処理が、 Form2が隠れた後に 実行されて困っています。 よろしくお願いします。
665 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 19:58:48 ] ShowModalでもしておけば?
666 名前:664 mailto:sage [2008/08/27(水) 20:39:55 ] >>665 ありがとうございます
667 名前:デフォルトの名無しさん [2008/08/28(木) 03:05:24 ] 8点ほど計測して、下の脳波測定のように境目をボカしたいのですが、何か良い方法はありますでしょうか? www.speedreading.co.jp/read/riron07.html 8つの円を描き、全体をぼかすように前後左右の平均を取るように処理してみたところ、何度もやるとものすごく時間がかかるので・・・。 ぼかし処理は下のものを使用しました。 gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=135
668 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:15:29 ] 全然ダウンロードできないのですが、今日だけの現象ですか? update.codegear.com/forms/jp_cpp_download_reg ここに何度登録したことか。。。。
669 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:34:00 ] now.eloqua.com/e/f2.aspx サーバーが見つかりません
670 名前:デフォルトの名無しさん [2008/08/31(日) 00:08:20 ] そうだね
671 名前:デフォルトの名無しさん [2008/09/06(土) 08:25:00 ] TurboC++ Professionalは、もうどこにも売ってないのですか?
672 名前:デフォルトの名無しさん [2008/09/06(土) 10:46:04 ] 初心者質問すいません 英単語の文字数を数えるにはどうすればいいですか?
673 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:52:49 ] AnsiString::Length()
674 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:57:35 ] C++とC#は別物ですか?
675 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:04:33 ] 別物
676 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:15:14 ] >>675 ありがとうございました。ここではC++という文字をよくみるのに本屋ではC#をよくみたので一緒かなと思いました ありがとうございました
677 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 17:27:47 ] 実は # は ++ ++ だったんだよ!
678 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 01:24:48 ] >>677 C++が一つ増えるなら、 C#は半分だけ増えるっていうイメージなんだけど。 それだと、2つも増えてるな。
679 名前:デフォルトの名無しさん [2008/09/07(日) 02:35:29 ] >>677 その発想は無かったわ
680 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:30:34 ] エクスプローラの「表示」→「縮小版」みたいに、複数の画像を サムネイル表示したいと思っています。 ttp://www2.ttcn.ne.jp/tkky/Tips/DrawGrid/drawgrid1.htm を参考にDrawGridを使って実現しようかと思っていたのですが、 DrawGridコンポーネント1個に対して, 1つの画像しか表示できないんでしょうか?
681 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:31:12 ] サムネイルはListView使っとけ
682 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:57:33 ] Buliderっていう名前が明らかにマッチョ男性専用ソフトですっていってるようで怖い。 アメリカ人は本当にマッチョが好きだよな。サンフランシスコ。
683 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 04:41:14 ] >>681 そうします。ありがとうございます
684 名前:680 mailto:sage [2008/09/09(火) 07:34:14 ] 追加の質問ですみません。 ListViewでサムネイル表示を試してみようと、 下の(1)〜(6)の手順でやってみたのですが、ビルド中に固まります。 アイコン画像サイズ256×256を越えているせいみたいなのですが, 表示されるサムネイルの画像サイズを320×240で表示するには、どうしたらいいんでしょうか? アドバイスよろしくお願いします。 ----- (1)Form1にImageList1を貼り付ける (2)オブジェクトインスペクタからImageList1のプロパティをWidth=320;Heiht=240;に変更 (3)ImageList1ダブルクリックして, 「追加」押して320×240の画像1枚を選択して「OK」押す (4)Form1にListView1を貼り付ける (5)オブジェクトインスペクタからListView1のLargeImagesプロパティでImageList1を指定 (6)オブジェクトインスペクタからListView1のItemsプロパティで「新規作成」押して「キャプション」にテストと入力して「OK」押す
685 名前:デフォルトの名無しさん [2008/09/22(月) 10:04:17 ] メニュー項目を設定する TMenuItemのCaptionにて 開く(&O)... と設定されますけど、 このピリオド3個の意味を教えてください。
686 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 12:43:51 ] 押すと他のウィンドウが開くって意味がほとんどじゃ?
687 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 20:03:06 ] >>685 ピリオドがないのは、処理がすぐ終わるけど ピリオドがあるのは、ダイアログが出るでしょ。 それだよ。
688 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 23:25:23 ] >>686 >>687 れすありがとうございます。 確かに...なのは、ダイアログが開く系ですね。 (& みたいな特別な機能がある訳ではなく WindowsのUIの作法みたいなものなのですね。 とても参考になりすた。
689 名前:デフォルトの名無しさん [2008/09/28(日) 23:08:48 ] 質問です。 TFontのStyleがSet という特別な型だったのですが 設定は、Font->Style << fsBold のようにすれば良いのはヘルプに記載があったのですが FontにfsBoldが設定されているかを調べる方法がわかりません。 どうすればいいのでしょうか。
690 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 23:34:45 ] if ( Font->Style.Contains(fsBold) )
691 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 23:45:56 ] >>690 できましたーーー。超ありがとうございます。
692 名前:デフォルトの名無しさん [2008/09/29(月) 23:49:18 ] いろんなほかのプログラムのボタンを押すプログラムを作るにはどうすればいいのでしょう? 具体的には mplayerの再生ボタンや巻き戻しボタンを押したり、mediaplayerの再生ボタンを押したり その他新しいプログラムの再生ボタンを簡単に登録して押せるようなそんなプログラムを くみたいのですが。
693 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 00:17:51 ] ウィンドウハンドル持ってるコントロールならBN_CLICKEDをPostすればいいじゃない。 メニューバーから操作できる機能なら、コマンドIDをメニューリソース見るか、SPY++やWinspectorでコマンドID調べてWM_COMMANDでPostすればいい。 どっちもだめならSendInputでがんばるしかない。
694 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 00:18:33 ] 簡単に説明すると、ウインドウを列挙して、中の再生ボタンのハンドルを取る。 ハンドルが取れれば、APIでごにょごにょできるでしょ。 あとはがんばれ。
695 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 10:50:39 ] あぁ!そっか、難しく考えすぎてた。 ありがとうございます。
696 名前:デフォルトの名無しさん [2008/09/30(火) 20:54:22 ] 質問です。 リストボックスにD&Dでリストボックスにファイルパスを表示する プログラムをどうすれば言いか教えていただけないでしょうか?
697 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:04:17 ] をぃ、日本語が不自由な奴よ。 マルチポストはルール違反だぜよ。
698 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 22:44:16 ] >696 "C++Builder" ファイル ドラッグアンドドロップ でぐぐれ
699 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:15:22 ] test
700 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:19:19 ] ごめんなさい、プロバイダが規制くらってたのでtest書き込みしてしまいました。 質問なんですが、フォームを使ってアプリを作っており、 デバッグで配列の中身や変数を見たく、printfなんかでコンソールに表示させたいのですが 何か方法はありますか? インスペクタ?みたいなのはどうも使いにくくて・・・ ちなみに、C++Builder6を使ってます
701 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:32:28 ] これでどうでしょ? ttp://msdn.microsoft.com/ja-jp/library/cc428973.aspx でもIDEのデバッガ機能をちゃんと勉強して使ったほうが楽だと思うけどね。
702 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:08:53 ] >>700 AllocConsole()でコンソールが開きます。コンソールのハンドルをGetStdHandle( STD_OUTPUT_HANDLE )で取得したら SetConsoleTextAttribute()とWriteConsole()で好きな文章を色つきで出力できます。 printf() っぽく使うならこんな感じ #include <stdio.h> int __stdcall con_printf( const CHAR* Format, ... ) { const int nLengthMax = 1024; int nLength = 0; HANDLE hConsole = ::GetStdHandle( STD_OUTPUT_HANDLE ); if( hConsole != INVALID_HANDLE_VALUE ){ CHAR Message[ nLengthMax ]; va_list List; va_start( List, Format ); nLength = vsnprintf( Message, nLengthMax - 1, Format, List ); va_end( List ); DWORD dwLengthWritten; ::WriteConsole( hConsole, Message, (DWORD)nLength, &dwLengthWritten, NULL ); } return( nLength ); } IDEが入ってない環境とかで使えるよ。
703 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 02:04:16 ] _open_osfhandle()とかdup2()とかを組み合わせれば 普通にそのままのprintfが使えるようになるんじゃないかね。 知らないけど。
704 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 02:44:28 ] IDEでデバッグしてるならOutputDebugString使えばイベントウィンドウに出力されるぞ
705 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 10:34:03 ] 複数のフォームを持ったアプリを作っています。 メインフォームの初期化ルーチン(FormCreateとか)から他のフォームの初期化ルーチンを呼び出したいが、 それがまだ生成されていないのでエラーになるというケースが多くて困っています。 全てのフォームが生成された後で一括して初期化を行いたいという時にはどうすればよいのでしょうか? どなたか教えて下さい。
706 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:02:22 ] メインフォームのコンストラクタで他のフォームnewすれば?
707 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 12:46:22 ] >>700 解決したかも知れないけど、 TMemo 貼って Add で俺はやってる。
708 名前:デフォルトの名無しさん [2008/10/02(木) 17:46:19 ] コンパイルした時に作成される実行ファイルの名前を、プログラム側で変更することってできます? #ifdefで二種類作るので、間違えないようにしたいのですが・・・
709 名前:700 mailto:sage [2008/10/02(木) 18:59:26 ] なるほど、色んなやり方があるんですね。 しかしこのスレ非常にやさしいw ありがとうございました〜、色々とやってみて合うもの見つけてみます
710 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 19:43:14 ] >>708 #pragma optionでできないものリストに「-efilename」が書かれてるから無理 objファイルならできるけど。