C++Builder相談室 Par ..
362:デフォルトの名無しさん
09/03/03 05:37:46
まだ初心者なのですが、batファイルをC++builder6で
ボタンを押したら実行するようにしたいので
ShellExecute(Handle,"open",ファイル名.c_str,NULL,NULL,SW_SHOW);
と書いたのですが、うまくいきません・・・どなたか教えてくださいOTL
363:デフォルトの名無しさん
09/03/03 07:55:49
↑解決しました、スレ汚しすまそOTL
364:333
09/03/03 19:45:29
遅レススマヌ
>>334
ヘルプでTMutexで調べるとあるみたいだぞ?
365:334
09/03/04 09:24:55
orz
そうなんだ。
知らないから、Win32APIベタでコールしちゃってるよ。
366:332
09/03/05 19:13:35
>333
ありがとうございます。
末端のソケットに対するアクセスには排他はかけていませんでした。
同時にアクセスできるのは1スレッドだけというシングルコアに絆された思い込みがありましたので・・・。
早速試してみます。
バージョンアップ検討中の名目でEmbarcaderoにマルチコア対応状況を
ダメ元で確認してみたところ、かなり丁寧に教えてもらえました。
結論としてC++Builder6のTServerSocketとTClientSocketに関しては
マルチコア環境での動作保障をしていないとのことです。
以降のバージョンでこれらのコンポーネントが無くなっていた時点で気付くべきでしたorz
ちなみに現行バージョンではIndy系を推奨しているようです。
排他で解決できればとりあえず目的は達成されるのでここまでにしたいと思います。
ありがとうございました。
367:デフォルトの名無しさん
09/03/06 20:40:01
DLL内部の関数からDLLに組み込んだフォームやApplication->MessageBox()を呼ぶと、
通常の子ウィンドウと違ってウィンドウがタスクバーに表示されてしまいます。
DLLロード後にメインフォームのハンドルをDLLに渡してやることで
どうやらうまく行くようなのですが、手法的にスッキリしません。
もっとスマートに行う方法はないものでしょうか。BCB6を使っています。
368:デフォルトの名無しさん
09/03/06 21:15:46
>DLLロード後にメインフォームのハンドルをDLLに渡してやることで
十分スマートじゃないか?
つかそうするのが普通だろ?
369:367
09/03/06 22:25:48
>>368
やっぱりそうですか?
ロードと同時にDllEntryPoint()でなんとかできないのかなーと思ったんですが。
とりあえず邪道ではないようで安心しました。ありがとうございました。
370:デフォルトの名無しさん
09/03/06 22:55:50
ウインドウハンドルを要求するAPI関数が
どこからリンクされているか考えれば問題ないとわかるはず…
371:デフォルトの名無しさん
09/03/13 15:01:44
2007でwsprintfやlstrcpyが未定義エラーになっちゃうんだけど
オプションのどこいじればいいですか?
ちなみに、他のプロジェクトだとちゃんとコンパイル通ります。
なんか1つのプロジェクトだけこのエラーでるんです・・・
372:デフォルトの名無しさん
09/03/15 10:33:12
VistaでCB2007使い始めたんだがOpenDialogを開こうとしてもなぜか必ず失敗するorz
if(!OpenDialog1->Execute())return;
ShowMessage(OpenDialog1->FileName);
何も間違ってないはずなのに!
373:デフォルトの名無しさん
09/03/15 14:28:51
まあどう考えても
バグだらけだろ。
374:デフォルトの名無しさん
09/03/16 08:51:47
>>327
OpenDialogが開くダイアログ位置おぼえてるっぽくて、
全然開かない現象がBCB6+xpであった。
Project1.bpr/Project1.exe の組み合わせで発生して、
同じプロジェクト名だと再発するんだが、
違うプロジェクト名にしたら現象消えた。
まだ原因を追っかけてはいない。
375:デフォルトの名無しさん
09/03/16 10:39:42
2009って64ビットに対応してる?
376:デフォルトの名無しさん
09/03/16 11:09:52
対応している。
377:デフォルトの名無しさん
09/03/16 11:33:22
え”、ウソだろ?
そうなら、2009買って64bit調査開始しなきゃならんやん。
378:デフォルトの名無しさん
09/03/16 12:01:30
>>376
嘘つけ!
379:デフォルトの名無しさん
09/03/16 12:28:43
対応して犬
380:デフォルトの名無しさん
09/03/16 13:19:47
対応している言葉は間違えない
ただ、
64ビットのコードを吐くとは言っていない
381:デフォルトの名無しさん
09/03/16 13:24:34
対応してぬこ
382:デフォルトの名無しさん
09/03/16 13:40:32
>>380みたいなクズってまだいたのね
383:デフォルトの名無しさん
09/03/16 15:14:26
>>380
お前みたいなカスはレスするなよ
384:デフォルトの名無しさん
09/03/16 20:07:58
このスレはカスとクズとゲスで出来ています
385:デフォルトの名無しさん
09/03/16 22:42:12
正直、BCB2009自体がカスなんだがな。
386:デフォルトの名無しさん
09/03/16 23:13:55
もう注文しちゃいましたよ>>385
というかCCBが正しいのかな?
CODEGEAR C++ Builder2009
387:デフォルトの名無しさん
09/03/17 00:06:25
CordGuardが止まらない
388:デフォルトの名無しさん
09/03/17 00:16:31
それなんてロマンチック?
389:デフォルトの名無しさん
09/03/17 10:16:48
スペル違うし
390:デフォルトの名無しさん
09/03/17 19:46:26
くだすれの方で誰も答えてくれないのでマルチになりますが質問させて下さい
ウィキペディアに、
>C++ Builderの新しい版ではMFCやDirectXなどもサポートしている。
って書かれてるんですが、それって
URLリンク(www.clootie.ru)
このページで公開されてるライブラリ使わなくても、正規のDirectXを使えるってことですか?
391:デフォルトの名無しさん
09/03/17 22:25:52
>>390
半分は。
DirectX9が入っているが、d3d9x.libなどが無い。
チュートリアルの1は何とか何もしないでいける程度。
392:デフォルトの名無しさん
09/03/18 03:25:27
>>391
それはサポートしているとは言えないんじゃ…
393:デフォルトの名無しさん
09/03/18 16:47:33
2009のチラシが届いたんだが使い勝手はどんなもん?
未だBCB6の俺としてはそろそろOSも変わるかもしれんしバージョンアップ考えた方がいいかなと思ってるんだが
394:デフォルトの名無しさん
09/03/18 16:50:14
まだチラシが届きません(><;)
395:デフォルトの名無しさん
09/03/19 02:34:42
>>375
URLリンク(en.wikipedia.org) Builder
>A future version of CodeGear C++Builder (codenamed Commodore) will support x86-64 and create x86-64 Native code.
396:デフォルトの名無しさん
09/03/19 17:22:06
コンパイルするとたまに作成するアプリのアイコンがデフォのアイコンになっちゃうんだけど
これ原因わかる人いる?
ちなみに、他PCで同じプロジェクトを何度コンパイルしてもちゃんと指定したアイコンになってます。
397:デフォルトの名無しさん
09/03/19 17:24:06
ねーよw
398:デフォルトの名無しさん
09/03/19 17:28:40
いや、お前達みたいな奴に聞いても無駄だってわかってはいるんですが
もしかしたら同じ症状の人がいたらラッキーかなっておもったんで
399:デフォルトの名無しさん
09/03/19 17:41:03
>>396
Builderのバージョンとかは果敢機会?
400:デフォルトの名無しさん
09/03/19 18:18:30
>>399
あ、そういえばそうですよね。
まあ言っても無駄だとおもうけど。
C++Builder5 proですよ。
401:デフォルトの名無しさん
09/03/19 18:23:44
それって昔あったOSのバグだろ。
402:デフォルトの名無しさん
09/03/19 19:07:22
OSの方ですか・・・
OSはXPSP2なんですがSP1をアップデートしてSP2にしたんですが
これが途中でエラー出てあれなんだよばかなんですよね。
あ、そういやSP1のPCでやってもダメなのあったなあ
4台で試して2台が現象発生だこのやろう!!
403:デフォルトの名無しさん
09/03/19 19:09:39
C++Builder2009Proがきたぞ
インストールだ
404:デフォルトの名無しさん
09/03/19 19:32:08
2007と何処が違うのか教えてくれ
405:デフォルトの名無しさん
09/03/19 19:58:08
2007がない
406:デフォルトの名無しさん
09/03/19 20:54:26
強制的にユーザ登録ってなんだよ。
しかも登録先が英語・・・
407:デフォルトの名無しさん
09/03/19 21:16:23
何故に最新のSP3にしないのだろう。
408:デフォルトの名無しさん
09/03/19 23:41:02
C++Builder 6
ボタンとかタブのカラーは変えられないのですか?
409:デフォルトの名無しさん
09/03/20 00:00:31
BCBuilder5とC++Builder2009って同居させても問題ないよね?
410:デフォルトの名無しさん
09/03/20 00:12:19
2009のクイックスタートガイドに
実行環境っていうのがあるんだけど
作ったアプリケーションが動作する環境っていう意味なの?
411:デフォルトの名無しさん
09/03/20 01:04:25
>>409
OK
412:デフォルトの名無しさん
09/03/20 01:39:34
>>408
先に古い方からインスコ
413:デフォルトの名無しさん
09/03/20 20:52:33
別スレッドを動かしている時、スレッドが終了したかどうかを確認する方法を教えて下さい
お願いします。
414:デフォルトの名無しさん
09/03/20 21:06:00
TThread とかだったらHandleやThreadIDプロパティをチェックするとか
415:デフォルトの名無しさん
09/03/20 22:33:27
処理が終了したのか、スレッド自体が終了して消え去ったのかでだいぶ違うけど
後者なのかな。
416:デフォルトの名無しさん
09/03/20 22:56:41
>>396
遅レスだが、会社で組んだソフトがその現象になって困ったことがあったよ。
確か、プロジェクトファイル(.bprファイル)をテキストエディタで開いて、
<LIBRARIES value=だか<SPARELIBS value=の最初のlib
を最後に移動して保存して、BCB5で開いてリコンパイルしたら直ったと思うよ。
417:デフォルトの名無しさん
09/03/20 23:03:41
URLリンク(page4.auctions.yahoo.co.jp)
418:413
09/03/21 11:28:05
初心者なもので
>>414
HandleやThreadIDプロパティってどのように記述するのですか?
>>415
後者です
419:デフォルトの名無しさん
09/03/21 14:13:18
WaitForSingleObjectでTThread.Handleを待機。
420:デフォルトの名無しさん
09/03/21 17:55:06
>>418
TThread *Thread として(実際はTThreadの派生系)
方法は2種類あると思う。
1)待機関数、Handleを使う
if(WaitForSingleObject((HANDLE)Thread->Handle,0)==WAIT_TIMEOUT) { /* スレッドは実行中 */}
else { /* スレッドは終了している */}
2)OnTerminate イベントを使う
void __fastcall ThreadTerminated(TObject*){ /* スレッド終了時に処理をさせる。処理はメインスレッド内で実行される。*/}
Thread->OnTerminate=ThreadTerminated;
421:デフォルトの名無しさん
09/03/22 15:43:47
>>413
TThread.Finished プロパティを調べる。trueなら終了。
422:デフォルトの名無しさん
09/03/22 18:52:50
ちょっと質問。
C++Builder2009Pro。
アプリケーション作成時のデフォルトアイコンあるでしょ。
あれって変えられない?
デフォルトがヘッドギアってダサすぎです
423:デフォルトの名無しさん
09/03/22 20:23:44
C++Builder6だとプロジェクトのオプションとかで変えられたけど
2009は持ってない。
424:デフォルトの名無しさん
09/03/22 21:27:37
C++Builder2009でもプロジェクトオプションで変更できる
425:デフォルトの名無しさん
09/03/22 21:49:45
あーえっと。
新規プロジェクト→アイコン変える
のようにプロジェクトの作成のたびにアイコンを変えるのがめんどくさい。
アイコンを変えておく→新規プロジェクトうんぬん。
プロジェクトが作成されるたびにデフォルトで指定したアイコンになっていてほしい。
426:デフォルトの名無しさん
09/03/22 21:52:03
_
427:デフォルトの名無しさん
09/03/22 21:59:58
アイコンファイル自体を置換してしまえ
428:デフォルトの名無しさん
09/03/22 22:05:04
そそうか
デフォルトのオプション設定でアプリケーションの項目がないからあきらめてた
あまりにもダサいから必ず変えるように仕向けたいのか
残念だ
ありがとう
置換?できるのか?
429:デフォルトの名無しさん
09/03/24 20:16:41
どこかにアイコンのリソースはある筈だからそれを変えられればいいだよな
430:デフォルトの名無しさん
09/03/24 20:46:21
どこか知らないならレスするなよクズ
431:デフォルトの名無しさん
09/03/24 20:48:03
ヘタな釣りw
432:デフォルトの名無しさん
09/03/24 21:00:09
ちょっと探してみたけど.resや.icoの形ではないみたいだなあ
どこに組み込まれてるんだろ
まあ、そもそもそんな必要があるとは思えないけどね
433:デフォルトの名無しさん
09/03/24 22:22:18
DLLじゃね
434:デフォルトの名無しさん
09/03/24 22:35:27
そんな必死になることなのか
435:デフォルトの名無しさん
09/03/24 22:47:56
アイコンなんてクリック数回で変えられるじゃん。
だいたい、作るプログラムは全部デフォルトのままかよ。
436:デフォルトの名無しさん
09/03/24 23:11:22
別にいいじゃん
ネタとして話をしても
437:デフォルトの名無しさん
09/03/25 00:07:54
自分だけで使うものとかさ、アイコンを変更するまでもないんだけどあのアイコンはいやだから毎回変えているんだ。
WindowsフォルダのTASKMAN.EXEみたいなアイコンにしている。
438:デフォルトの名無しさん
09/03/25 14:15:53
グローバル変数の評価式だけ???やデタラメな数字になってしまうたすけてください
439:デフォルトの名無しさん
09/03/25 14:19:47
グローバル変数はなくすべきだろ、常考。
440:デフォルトの名無しさん
09/03/25 14:23:49
最適化が有効になってるんじゃねえのか。
441:デフォルトの名無しさん
09/03/25 15:42:08
もっかいBuild allしてみ
442:デフォルトの名無しさん
09/03/25 17:10:11
1行エディットして改行したただけで
それ以降のブレークポイントがみんなズレるんだけど
なんかいい方法ないかな
443:デフォルトの名無しさん
09/03/25 21:17:02
WSACreateEvent とか WSAEnumNetworkEvents あたりの関数が外部シンボルが未解決とリンカエラーでるのは何でなんだぜ?
444:443
09/03/25 21:54:34
自己解決。
Ws2_32.libをプロジェクトに追加したらリンクできた。
445:デフォルトの名無しさん
09/03/27 13:19:40
>>442
プログラムのフォルダをコピーしたりしなかったか?
446:デフォルトの名無しさん
09/03/27 21:33:32
起動時にオープンダイアログ開こうとしたらエラーになるんで
間にShowMessage入れて見たらオープンダイアログ開くようになったんだけど
これどういう事?
447:デフォルトの名無しさん
09/03/27 22:09:11
起動時ってどのタイミング?
エラーって何?
448:デフォルトの名無しさん
09/03/27 23:01:41
フォームのインスタンス?作成時
オープンダイアログが失敗した時やキャンセルした時に返るfalse
449:デフォルトの名無しさん
09/03/27 23:03:17
×インスタンス
○コンストラクタでしたw
1年ぶりに手を付けてますw
450:デフォルトの名無しさん
09/03/28 03:30:19
>>446
途中に関数挟むとスタックの状態が変わるので、それまで出ていたバグが
出なくなったように見える事があるよ。
OpenDialogが内部で利用するGetOpenFileName()は過去に何度か拡張されて、
関数が使用する構造体のサイズも変わった。それがエラーの原因じゃないかなあ。
_WIN32_WINNTとOPENFILENAME::lStructSizeがうまく対応取れていないような気がする。
解決しないなら、直接GetOpenFileName()呼んで回避してください。
もし単にXPスタイルのダイアログ開きたいだけならマニフェスト埋め込めば楽かと。
451:デフォルトの名無しさん
09/03/28 04:20:49
フォームのconstructor、特にメインフォームの場合は、色々な初期化が終わってないから、その辺りじゃないの?
ダイアログの親ウインドウがまだ使える状態じゃないとか。オープンダイアログがコンポーネントの事だったら、それ
の初期化完了も確認しないとまずいし。
OnCreateとか、OnIdleとか使った方がよさげ。
452:デフォルトの名無しさん
09/03/28 11:26:45
コンストラクタでやるのはせいぜいユーザ定義メンバの初期化
__publishedに触るのはOnCreateから
453:デフォルトの名無しさん
09/03/28 11:29:22
なんか昔マニュアルにOnCreateとコンストラクタに処理を書くと
不都合が生じるからコンストラクタに書いてくれって載ってた気がする
454:デフォルトの名無しさん
09/03/28 13:08:01
でもコンストラクタ内ではフォームの初期化が完了してないから
VCLをいじるような記述をすると高い確率で動作が変になる。
変数への代入程度で留めておくべきだろう。
455:デフォルトの名無しさん
09/03/28 13:20:53
メインフォームのコンストラクタであまりいろんな処理をするのはお勧めできない。呼び出し時点がApplication.Runより
前なんだから。
456:デフォルトの名無しさん
09/03/28 20:37:20
通信は独自の方法でしたい
HTMLの表示はコンポーネントを使いたい
なんてコンポーネントを使えばいいのかな?
C++Builder 2009
457:デフォルトの名無しさん
09/03/29 14:22:30
C++Builder2009買ったんだけど、
ユーザー登録カードのユーザーIDって
Developer Networkに登録したやつを書けばいいの?
458:デフォルトの名無しさん
09/03/29 17:36:23
いや、過去に買ったことがなければ空欄でいいと思う。過去に買ったことがあればDMとかに書いてあるやつ。
459:デフォルトの名無しさん
09/04/07 10:23:17
ワイド文字列定数を標準にできませんか?
460:デフォルトの名無しさん
09/04/07 13:29:53
C++Builder2007でwsprintf等のAPIを呼ぶと未定義のシンボルエラーがでるのですが
これはどこをいじくると正常にコンパイルできるようになりますか?
461:デフォルトの名無しさん
09/04/07 13:34:49
ちなみにWindows.hをインクルードしても同じエラーが出るのですが
他のプロジェクトだと普通にコンパイルが通ってます。。
他のプロジェクトとオプションを見比べてみたのですが同じでした。。。
何が原因なのでしょうか
462:デフォルトの名無しさん
09/04/07 22:52:45
user32.lib
463:デフォルトの名無しさん
09/04/08 09:56:10
あ、すんません。
>>460ですが、エラーの出るプロジェクトでも
記述するソースによってエラーが出たりでなかったりします。
5つcppファイルがあるのですが、そのうち1つのソースにwsprintfを記述するとエラーはでません・・・
その他の4つのソースに書くとコンパイルエラーがでます。もうわけがわかりません
464:デフォルトの名無しさん
09/04/08 10:23:57
まず間違いなく、単純ミス。
それ以上は、エスパーじゃないからわからん。
465:デフォルトの名無しさん
09/04/08 11:10:10
やっぱそう思いますよね・・・
単純なミスならシンボルエラーは出ないんだけど・・・
同じコードをコピペしてるからスペルミスは無いし・・・
466:デフォルトの名無しさん
09/04/08 12:20:26
プログラミング歴は長いのですが,正式に習っていないので,恐らく簡単と
思われることでつまずきました。最近 C++Builder 6 に代えて
Turbo C++ Explorer を使い始めたのですが,
[リンカ エラー] Error: ファイル 'UNIT1.DFM' を開けません
が発生したとき,これを解決する方法が分りません。お教え下されば幸です。
宜しくお願いします。
467:デフォルトの名無しさん
09/04/08 12:22:47
> 'UNIT1.DFM'
を用意する。
ってか、ファイル間違って消しちゃったんじゃないの?
そうなら、フォーム作り直しw
468:デフォルトの名無しさん
09/04/08 13:05:42
>>467
<466>です。早速コメント有難うございます。
'Unit1.dfm' は存在します。該エラーは,例えば作成した project を収めた
フォルダーを移動したり,別の場所にコピーして開いたときなどに発生します
が,そのような場合に必ず起きる訳でもなく,原因が分りません。
小生とは別の方の同様の質問が,
URLリンク(gimite.net)
にありますが,アドバイスは寄せられていません。
469:467
09/04/08 13:08:32
>最近 C++Builder 6 に代えて Turbo C++ Explorer を使い始めたのですが,
あ、BCB6なら使ってるけど、TCEは使ってないので分かりません。。。
470:デフォルトの名無しさん
09/04/08 13:25:16
>>469
<466>です。再々のレスポンス有難うございました。小生も当面,BCB6 に戻ろう
かと思います。
471:デフォルトの名無しさん
09/04/08 14:16:37
>>468
作成したプロジェクトを「別の名前を付けて保存」を選んで移動させた?
それともエクスプローラーで移動?
フルパスが書かれてるかも知れないからチェックした方が良い。
プロジェクトファイルをテキストエディタで開いてみ。
472:デフォルトの名無しさん
09/04/08 14:17:30
>>460
違うかも知れないけど
#include <tchar.h>
って書いてみて。
違ってたらゴメン。
473:デフォルトの名無しさん
09/04/08 14:34:20
>>472
情報ありがとうございます。
それをインクルードしてみましたが未定義のシンボルエラーがでます。。。
うーん、何で同じプロジェクトでコンパイルが通るソースと通らないソースがあるのだろうか・・・
474:デフォルトの名無しさん
09/04/08 14:58:34
コンパイルエラーなのかリンカエラーなのかちゃんと書きな。
475:デフォルトの名無しさん
09/04/08 15:07:25
>>474
ログもちゃんと読めない馬鹿はレスしないで下さいね。
お前みたいな奴のレスなんて期待してませんから^^
476:デフォルトの名無しさん
09/04/08 15:20:33
>>473
何か変わったことはやってますか?
たとえば、古いバージョンと共存させたりしているとか、
ダイレクトXを使っているとか。
477:デフォルトの名無しさん
09/04/08 15:39:00
バックグラウンドコンパイルって無くなったのか?
478:デフォルトの名無しさん
09/04/08 15:53:20
ヒント:高速コンパイルユニットに差し替え
479:デフォルトの名無しさん
09/04/08 16:03:36
>>476
あ、するどいですね!
DirectShow使ってます。
>>475
フォローありがとん
480:デフォルトの名無しさん
09/04/08 16:13:20
<466, 470>です。
>>471のヒント有難うございました。解決しました。
Project1.bdsproj をクリーンにするには,新たに簡単な
VCLアプリケーションを作って別のフォルダーに保存し,
そこにある unit1.cpp, unit1.dfm, unit1.h に前のものを
上書きして再コンパイルすればよいことも分りました。
数週間来の憂鬱から開放されました。
再度お礼申上げます。
481:デフォルトの名無しさん
09/04/08 16:30:24
bdsprojの中フルパスなんかな?
いやな仕様だね。
482:デフォルトの名無しさん
09/04/08 16:57:39
>>479
strsafe.h をインクルードしてるかどうかチェックしてみて。
多分それじゃないかなぁ?
そのヘッダの中を覗いてみ。
483:デフォルトの名無しさん
09/04/08 17:16:22
>>482
確かにDShow.hにstrsafe.hがインクルードされてました!
んでその中を見るとなにやらwsprintf等のAPIを
#undefしたり#defineしたり怪しい事やってますね・・・
484:デフォルトの名無しさん
09/04/08 17:23:50
>>483
それはセキュリティ的に非推奨のメソッドを削除しちゃってくれてる。
使わないか、ヘッダを変更するかはあなた次第。
485:デフォルトの名無しさん
09/04/08 17:29:48
>>484
なるほど原因がわかってスッキリしました!
ありがとうございます。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5404日前に更新/123 KB
担当:undef