C++Builder相談室 Part21
Win10 2009でデバッグしようとしたらフォームを閉じた後 bds.exe - bordbk120N.dll Assertion failure:"(!"SetThreadContext failed")" in ..win32src\thread32.cpp at line 434 Continue exection? と聞かれてYESでもNOでも再起動するしかなかった。 ググったらdllのバイナリ書き換える方法が載ってた。 ひやひやしたけどなんとかなった。 なんでこんなバグ直さないのかな? C++Builder 10.4 hotfix3 でデバッグ実行時 「〇〇〇.exe エントリポイントが見つかりません」 「プロシージャエントリポイントILfreeがダイナミックライブラリ〇〇〇.exe から見つかりませんでした。」 というエラーが出ます。 ilink32ではエラーが出ておらず、再ビルドするとエラーが消えて暫くすると再発します。 何か解決方法はないでしょうか? onidleの使い方がよくわかりません。 助けてエロい人 Builder2009で質問です。 OnIdleの使い方がよくわかりません。 http://docwiki.embarcadero.com/Libraries/Sydney/ja/Vcl.Forms.TApplication.OnIdle アプリケーションがアイドル状態になった際に発生します。 OnIdle イベント ハンドラを記述すると、アプリケーションがアイドル状態になった際に、特別な処理を実行させることができます。 アプリケーションは、コードを処理していないときに、アイドル状態になります。たとえば、アプリケーションは、ユーザーからの入力を待っている際になどアイドル状態になります。 OnIdle は、アプリケーションがアイドル状態に移る際に、一度だけ呼び出されます。Done パラメータが false に設定されない限り、継続して呼び出されることはありません。Done を false に設定したアプリケーションは、過度の CPU 時間が消費されるため、システム全体のパフォーマンスに影響がでます。 うーん。 読んだんですが実例コードないから、よくわからないんですよ。 使い方がよくわからないから助けて、と言うのがよくわからない 使いもしない機能の使い方を知らなくても困らないのでは? TActionの更新などはOnIdle イベント 内ではないけど、OnIdle イベント が呼ばれるプロシージャで行われている 直ちに更新する必要があるわけじゃないけど定期的に更新する必要がある場合に使う感じかね 同じ用途でTTimerなんかもあるけど、TTimerの場合アプリがなんか他のメッセージ処理していても時間が来れば呼ばれるのに対して OnIdleは他のメッセージ処理をしている間は呼ばれない ユーザの操作(入力)に対してアプリが応答、その最後に状態を更新するなんてのが使い方としては適正かなと思う ただ場合によってはいつまでたても呼ばれない可能性もあるのと OnIdleに時間のかかる処理を入れるとアプリの応答性が悪くなるので注意が必要 >>158 一秒間60フレーム(古いかな)とかを実現するのにタイマーより(精度が)良いのかと思ってます。 使ってみたいだけで確かに困ってはいないです。 >>159 精度はないよ 言った通り、アプリのメッセージループでウインドウメッセージが空だった時に実行される つまりずっとメッセージが届けばいつまでたっても実行されない可能性がある 一定時間に動作することを期待するのは無理 入力待ちのように「空いた時間に処理をさせる」ための仕組み .net用に作られたCOMコンポーネントをbuilderからアクセスできる? 調べてもbuilderからCOMは作れるってくらいしか見つからないんだけど。 C++Builder10.4.2でSDL2を使用したいのですが .includeの段階で躓いています。 includeとlibのパスは何処を指定するといいのでしょうか? 最近のバージョン使ってる人ってどのくらいいる? 10.4.2でWin64使ってるけど品質がクソ過ぎてイヤになってくる 10年前のXEから付いてくるCodeSiteを初めて使ったんだけど、 すっげー便利だな 10年間も知らずにテキストのログファイルにシコシコ出してたのが悔しいのう 10.4.2使ってるよ デバッガがダメダメなのもそうだけど、TwineCompileを有効にすると落ちやすいのと ヘッダを書き換えるとクリーンアップせざるを得ないのが悲しい サードパーティーコンポーネントのインストーラが残念なのも何とかして欲しい TwinCompileは何ともないな GetItのフリーのコンポーネントはC++向けの設定をちゃんとやってくれない物が多いね 前のバージョンではそんなこと無かったんだけど、10.4ではTurboPack系のコンポーネントは全滅してる Win64 C++では実行時パッケージを使わないとデバッグ中の例外でブレークしない(直ったことになってる) TwineCompile何ともないのか。じゃあこちらの環境依存かな こちらは逆に10.4.2にしてからTurboPack系が良くなった 実行時パッケージをリンクしない様にするとトラブル多いね ブレークが効かないのはこちらも困ってる ステップ実行もおかしくなるし、この辺は早急に直して欲しいね。 後、エディタの「定義の検索」が全く効かないのだが、これもおま環なのだろうか エディタの支援機能はC++では2009の頃から使い物にならない TurboPack系は10.4.2でC++のライブラリパスの設定が漏れてて静的リンクできない >>169 普段から実行時パッケージ使ってるの? 俺は使わない主義だけど >>170 すまん、今日入れ直したらできなくなった 前は自分でパス通してたのかもしれん BPLはVCランタイムと違ってどの環境にも入っている訳じゃないから 実行時パッケージは通常使わないね でもFireMonkeyだと10MB超えるから悩ましいところ 仕方ないからデバッグビルドでは実行時パッケージ有りにしてる 今のプロジェクトは16MBにもなる 客がなんか言ってきたら、EXCELは22MBだよって言おうと思ってる お前のソフトはEXCELほどの機能があるのか?と言われると困るけどw 10.4.2入れ直したらエクスプローラからのドラッグ&ドロップで WM_DROPFILESメッセージが飛ばなくなってるな 昔からある BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles) END_MESSAGE_MAP(TForm) でもイベントハンドラに飛ばない 過去できていたプロジェクトでも再構築すると同症状になるが、これはおま環なんだろうか >>173 俺の所ではちゃんと動く IDEは確かにクソだが出来上がるコードについての問題には遭遇した事は無い DragAcceptFiles()を呼んでないか、 フォームの別の階層にDispatch()があってそれが呼ばれてるか、ではないか? 原因はVMWare workstation playerのVMWare Toolsで、再インストールしたら治った 後出しで申し訳ないが、VMにインストールしてあるんだよ 最近になってやっとFiremonkeyへ移行するべく動いているのだが グラフィック周りはこちらの方がいいね 画像をファイルから読み込むだけでもパフォーマンス差があるのは驚いた SynEditのようなVCLしかないコンポーネントもそろそろこちらをサポートしてくれないかね sqlite3.dll を使ってみようと思ったんだが まずは簡単にsqlite3_openとsqlite3_closeだけを使ってみるのが目標 implib.exe 使って同梱のdefファイルからlibを生成 で、libをプロジェクトに追加したんだけど [リンカ エラー] 外部シンボル '_sqlite3_open' が未解決(C:\CBUILDER5\TEST\UNIT1.OBJ が参照) [リンカ エラー] 外部シンボル '_sqlite3_close' が未解決(C:\CBUILDER5\TEST\UNIT1.OBJ が参照) これが出る 他にしなきゃいけないことってなんだろうか? 単にシンボル名が違うんじゃね。tdumpでリスト出してみるとか。 まさかextern "C"忘れてるってのはないよな。 インクルードヘッダーファイルの方 もともとextern "C" { } で括られてたのもあるけど 括るのはダメかもと思って関数のほうにextern "C" 付けてみたけどダメだった implib使う方法でダメならコッチは ttp://docwiki.embarcadero.com/RADStudio/Sydney/ja/チュートリアル:VCL_アプリケーションから_SQLite_データベースに接続する とりあえず、implib -? してオプションの説明の意味を考えてみたかから どうもありがとうございました 解決しました 本体側のアンダースコアを消すことばかり考えていてインポートライブラリ側にアンダースコアをつけると言うことを失念していました リンカの出すエラーメッセージ見りゃわかるけど UNIT1が参照しようとしているシンボル名にはおかしいところは無いからな ならばimplibで作ったシンボル名が何か違うはずって気づく そしてimplibのオプションを確認するところに行き着く まあ冷静に考えましょってことで C++ builder 2009 pro使いこなしたくて、C++ builder5 learningについてた 開発者ガイド読んでるんですが、半分もわからない。 読解力ないのかなぁ。 そのC++Builder5は半分以上理解してたのかな 今ならネットに転がっている情報を拾う方がいいような気がする 特にUnicode周りは慣れておくといいよ 勉強不足もあって多言語対応で結構躓いた そうですね。2009から文字コード変わってるんですよね。 Ansistringのメソッドとかももう一度覚えたいから5をいじってます。 (開発者ガイドよりヘルプのほうが勉強になります) 今は2009で C++ BuilderでWindowsゲームを作ろうって本 使ってます。 DirectXなんか全然使わないのですが色々と勉強になります。 Comunity入れるまではbprファイルを自動変換してくれてたのですが、 Javaがらみっぽいエラーが出て変換できなくなりました。 5を使うってどこにも書いてないんだが 2009を使いこなしたいってあって、Community Editionもインストール済みみたいだけど、 だったらCommunity Editionだけで掘り下げればいいと思うけど そうですね。 5は使わないでいいですね。 5はヘルプだけ使います。 あと、頭は悪いと思います。 そんな卑下しなくても、5から使っているなら突き進めばいいのでは BCB5からBCB6に乗り換えのメリットが感じられなくて無理やり WinXP上のBCB5で「Win10で動作させるUSB-IO2.0(AKI)を制御するソフト」を 作ったりもしたけど、ECB10への移行は大した苦労はなかった AnsiStringとUnicodeStringの変換は、慣れればいいし >>190 ありがとうございます。 また質問なのですがHotKeyがヘルプ見てもよくわかりません。 どういうものなのでしょうか。 ここで聞くべきか分からないんだが質問。C++Builder2009 typedef std::pair<UnicodeString,int> TPair; TPair P0[3] = { TPair(L"ABCDEF",20) , TPair2(L"JKLJM",40) , TPair2(L"BMNJKLOI",60) }; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { TPair P1[3] = { TPair(L"ABCDEF",20) , TPair2(L"JKLJM",40) , TPair2(L"BMNJKLOI",60) }; } //--------------------------------------------------------------------------- こんな感じのコードとしてP1のほうはちゃんと初期化されるんだけど P0[0]のintが正しく初期化されない P[0].second=36974812 ってなる ただしstd::pair<int,int>やstd::pair<int,UnicodeString>だと大丈夫 何が原因なのかわかりますか? 直し忘れた TPair P0[3] = { TPair(L"ABCDEF",20) , TPair(L"JKLJM",40) , TPair(L"BMNJKLOI",60) }; でお願いします Qtが商用に傾いてきたからCommunity Editionでもと思ったが、 年間売り上げ55万円までって・・・実質商用利用出来ないやん 日本で現行版使ってるのって、俺以外にいるのかしら? ってくらい話題にあがらないな 使ってる人は未だに5とか6使ってる感じ 縺セ縺菴ソ縺」縺ヲ繧九h縲ょョカ縺ィ莨夂、セ縺ォ1縺、縺壹▽縲 莨夂、セ縺ッSymantecEP縺悟�縺」縺ヲ縺縺ヲ 菴懈�縺励◆繧「繝励Μ縺御ク肴э縺ォ豸医&繧後◆繧翫@縺ヲ繧仇 縺薙�繧ヲ繧」繝ォ繧ケ縺ィ隱、隱崎ュ倥☆繧句撫鬘御ス輔→縺九@縺ヲ谺イ縺励>繝サ繝サ繝サ 何故か文字化けしてる まだ使ってるよ。家と会社に1つずつ。 困っている事といえば SymantecEPがコレで生成した実行ファイルを ウィルスと誤認する事がある位かねぇ 10.4つかってるよ。メイクがまともに動かないのはなんでだろうねw a.h修正してもa.cppしかコンパイルしない。他のa.hをインクルードしてるcppは無視。 その動作は、「普通の」makeなら普通だろ a.cppがa.hに依存しているというのは、Makefile内に依存ルールが書いてなければmakeにはわからない borlandは.objのコメントを使って依存関係をobjに埋め込んで全てのファイルの更新を確認する機能をつけたけどね .autodependってやつ それが無くなってるかoffになってるかってことじゃね 11のTwineCompile早よクレ 後これだけあれば移行できる 本当に誰も買ってないと思うよ 俺は2009から使ってるけど 質問です。 TListBoxで最初から、二番目の項目を選択状態にしておく方法がありますか? ListBox1->Selected[1]=true; すいません、できました。 M$に開発者を刈り取られても頑張っているから応援したいが、 高杉てとても手が出ないよ コミュニティ版はエラーが出て落とせないし その通りだよ 20万近く払って買った開発ツールのヘルプが前バージョンのまま しかも報告されたissueは、won't fixでクローズだぜ ホントにupdate2でも直ってない コソッとファイルだけリリースして、自分で上書きしてレジストリを書換よ、だと 確かに高いですね。 C++Builder6 pro ヤフオクで28000円位で二件見つけたけど全然売れてない。 さすがに6は古いのかな。 >>212 同感です。 とても良いツールで価値があるのは分かりますが、もう少し個人が手を出せる価格に下げてもらわなければ、どんどんユーザーが離れてしまうことが気がかりです。 以前CB使ってたけどVCに乗り換えたと言う話は残念ですが、たまに聞きます。 自分は会社でエンタープライズ版使っていましたが自分のPCにはCommunity版です。 誰でもいいですから、Lazarus C++Builder版を仕上げて下さい。 おねがいします。 C/C++おぼえた後に他の言語おぼえるのって苦しいです。 自分はあとはPHPでお腹いっぱい。 PythonもやるけどアプリはまだC++Builderだなぁ 逆にWeb系は全然やる機会が無い >>211 GetItがあるから頻繁にBug fixのアップデートしてくれるのかと思ってたら Hot fixが1、2度出るだけであとは次のバージョンが出るまでお預けだもんな Visual Studioの更新頻度と比べるとしょぼい 漫☆画太郎先生に土下座してパイゾーンって作品を描いてもらっては。 ティム・クックCEOとのランチには5,500円ではなく5,500万円以上必要! Appleのティム・クックCEOとのランチをする権利のチャリティーオークションが終了しました。 結果は51,500ドル以上(約5,500万円以上)で落札されたそうです。 このオークション、落札者にはティム・クックCEOとランチができる権利とAppleイベントの 基調講演に参加できるVIPパス2枚がついてきます。 2013年は約6,200万円、2014年は約3,300万円、2015年は約2,400万円で落札されていました。 今回は約5,500万円なので高値で落札されていますね。 しかしお高いランチ代。いったい誰が落札したんでしょうか。 質問です。 https://www.gesource.jp/programming/bcb/116.html ここを参考にしたのですが、 D&DするファイルがL"C:\\test.txt"なら動作しますが、 L"C:\\sample\\test.txt"にするとうまく動作しません。 どうやったら動きますか。 TConboBoxで右クリックしてもOnContextPopupイベントが発生しません。 TEditでは正常にOnContextPopupが発生します。 TConboBoxはOnContextPopupを発生させるためにプロパティ等の設定がありますか?バグですか? C++Builder10.2 >>221 もうそのバージョンは使用していないので正確には分かりませんが 11では問題無いのでバグではないでしょうか? 今更なんだけどC++Builder6 コンポーネント活用ガイド&実践プログラミング vol.1読んでます。 Cしか知らなくってわからなくて放置してたけど C++を覚えてはまった。 今は2009使ってるけど参考になる。 ただデータベースとかはバージョンにより使えなさそう。 トレイアイコンとかも、簡単に色々できてすごい。最新版10万以内くらいなら買うのにな。 商用じゃなければCommunity版でもいいのだろうけどね。 俺も長らくBCB6で作ってたが、Unicode対応に迫られて10.2へアップグレードしたよ。 この時はまだそんなに高額じゃなかったと思うんだが・・・今の価格は高過ぎるね。 フォルダ選択ダイアログって今でもwin3.1のやつ? すいません 試せばわかることでしょうけど、 TImageにTBitmapをストレッチドロー って拡大も縮小もオーケーですか? VCでCSVエクスポートした時何か随分苦労した記憶ありますが、BCだとコンポーネント数個配置して数行のコードでできたのにはビックリです。 インポートならともかく、出力で苦労することなんてあるのか? C++Builder Community EditionでC++Builderの普及のためyoutubeにハウツーなんかをup loadすることはエンバカさんに対し違法になるかなー。こんなにいい開発環境なのに、全く個人のyoutubeが無いのには何かしらの規制に引っかかるから? 誰も使ってないからだよ、俺以外には 普及のためにとか、奇麗事言うなら自分でやれよ VCLの仕組みは素晴らしいが、商用のIDEとしては最低最悪のクソだ キーのカスタマイズは出来ない フリーカーソル強制 支援機能は応答しない 定義の参照も効かない 64bitデバッガはローカル変数の値が最新じゃない時がある Delphiと併せて毎年10万も取られるのに >>231 きれいごと言うつもりはないし、自分も以前のエンタ使っているけど、とにかく高くてverupできないので、奇跡的にバズってくれれば少しは売れて安く ならんもんかなーと思った次第でございます。Turbo Cからのユーザーですがこんな素晴らしいビジュアルプログラミング開発環境があるのに高いせいで世間に普及しないのが余りにも残念でなりません。 >>233 俺はDelphiは2から、C++は2009から使ってるが 今の品質ではとても人には勧められん 今でも生き残ってるのが不思議でしょうがない Delphiはロシアで妙に多く使われてるらしいが、この情勢で締め出し食らうとエンバカの経営に響くだろうな FMXのTMemoはそのままだとTABが入力できない仕様も何とかして欲しい >>232 そんなんだからアドオンがあるんじゃん 使ってスッキリしようぜ c++builder2009update3を使ってます。ただhotfix3がダウンロードできないみたいです。 ちゃんと最新になってるのでしょうか? あと、バカ丸出しの質問なのですが、 UnicodeStringとwchar_tは同じなのでしょうか。 1文字が何バイトかもわかりません。 Delphi Handbook 2009に詳しく書かれてる 今でも手にはいるかどうか分からんが あと、Unicode Whitepaperみたいなのが公式にあった ありがとうございます。 もうちょっと自分で調べてみます。 質問です。 UbuntuにC++B uilder6 proとC++Builder2009を入れようとしたのですが、それぞれdisc2を読んでくれなかったり、AVIが読み込めないみたいなエラーが出て駄目でした。 まあ、win10で作ったexeをwine6.0で動かせば済む話なんですけど、どなたかうまくインストールできた方いらっしゃいますか? 質問です。 C++builder6をUbuntuで使おうとするとdisc2のファイルが見つからないみたいな警告が出て、フォーム以外の部品が使えず、2009の場合はAVIが再生できないみたいなエラーが出て駄目でした。 まあ、win10でexeを作ってwine6.0で動かせばいいと思うのですが、うまくUbuntuにインストールできた方いらっしゃいますでしょうか? そもそもUbuntuというかLinuxに直で入れれるの? wine使ってるんならVirtualBoxとかVMwareとかで試した? 質問です。 C++builder5では 例えばclassと入力した後、CTRL+Jで登録しておいたコードが入力されたと思うのですが、2009でも登録できるのでしょうか? case : break; とかを登録したいのです。 >>247 出来るよ C++Builder5の時と若干仕様が変わってるけど 2009ではコードテンプレートって名前で C:\Program Files (x86)\CodeGear\RAD Studio\6.0\ObjRepos\Code_Templates\c (Program Files (x86)は32ビットアプリケーションのプログラムフォルダ) 上記フォルダにxmlファイルとして登録されている >>248 ありがとうございます。 やってみます。 C++Builder2009で質問です。 付属のtasmでMMXやSSEはコンパイル可能ですか? >>252 C++Builder2009 Proもってますが馬鹿なので「tasmとかMMXやSSEなんてのがよくわかりません >>254 僕もそれほど詳しくないのですが、CPUの拡張命令セットのことです。 tasm(アセンブラ)で使用します(基本命令は確か32bitはx86、64bitはx64)。 MMX SSE SSE2 SSE3 SSE4 3DNow とかがあるようでCPU-Zという フリーソフトでどういう命令がそのPCで動作するか確認できます。 11.3は10.x以降で一番マシな気がする ところでSysToolsコンポーネントをGetItからインストールできてる人居る? なんかいつも失敗してるんだが 10.2でバッチコンパイル使用すると文字化けするんだが、、、 Winnyの映画版もC++Builderで造ってるよ 材料造って3Dプリンター造ってセット造って・・・ 人間以外全部C++Builderで造ったプログラムから造られている GetItはDelphiばかりでC++Builderのヤル気が感じられないのだが GeiItでDelphiにしか提供されていないものに依存するC++Builderのアプリでも作ってるの? C++Builderはマイナーだから仕方がない C++で開発する人は最初からVSだろ VS2022のC++ってC++Builderみたくコンポーネントをぽちぽち貼りながら作れるようになったん? まったく見てなくて素で知らんから教えて VC++のGUI周りは相変わらずだよ ただその分コードエディタが優れてるね C++Builderのグラフィック周りで問題なのは各色8bitまでしか対応していない事 おかげで48bitカラーのPNG画像がそのまま表示できない 皆どうしているのだろうか? 無料のコミュニティエディションって新しいindy10使えますか じゃなくて、コンポーネントとして最初から登録されてますか? c++builderの学習ってどうすれば良いですかね。 本も全然ないし、ネットにも全く個人で上げている情報がないですよね。 そもそも初心者向けではない 上級者が楽をするためのツール 通勤電車の中の求人広告でリモートワークって書いてるとこが メモリーリークに見えてしまった俺は廃人だ 2009使っているけどヘルプシステムであるdexplore.exeがウインドウ閉じてもプロセス残り続ける問題なんとかならんかな 昔は有志による対策パッチみたいなのあったらしいけど Windowsをシャットダウンか再起動させるときこいつが残っていると実行中のプロセスがってメッセージが出る その時にプロセス名が出れば強制的に続行すればいいんだけどアイコンだけしか表示されないからその都度タスクマネージャーから確認してる ttps://github.com/ahausladen/DDevExtensions >>279 ありがとうございました おかげで邪魔なdexplore.exeがぬっ殺されて快適な2009ライフを送ることが出来るようになりました 感謝いたします あけましておめでとうございます。 今年もよろしくお願いします。 明けましておめでとうございます。 まだこれで食っていけるのは嬉しい限り。 質問 TForm1と言うメインフォームがある TForm2と言う二つ目のフォームがある TForm2はモーダルじゃないダイアログな感じで使うのでFormStyleにはfsStayOnTopを指定する(呼び出しはShow) 通常の使い方ならこれで常にTForm1の上にTForm2が来るからいいんだけど この状態でTForm2からTOpenDialogを呼び出すとそのダイアログ(TOpenDialog)がTForm2の下に隠れてしまうのです ダイアログ(TOpenDialog)を表示するときだけTForm2のfsStayOnTopを解除(fsNormalに設定)することもしたんだけど 今度はダイアログ(TOpenDialog)表示のタイミングでTForm2がTForm1の下に隠れてしまう SetWindowPosでオーダーを変えられるような感じだったんだけど呼び出しタイミングの問題かうまく行かず 常にTForm1が一番下でダイアログ(TOpenDialog)が一番上に来るようにするにはどうしたらいいですか? 最近VisualC#&C++の人達と共同作業しているが あちらはC#とC++どちらで組むかとか、C++なら外注に出すとかそんな話ばかりで全然進まない あれで本当に開発効率良いのかね? MSと比べて安くて使いやすかったのに ゴードギアエンバカと変わる度に値段も上がって 9で止まってますゎ 途中で書き込んでた Clangベースになってからライブラリの改良が進んだのは良いよ 後はHDR対応してくれるとマジで嬉しい Canvasを一新すると互換性が損なわれるし難しいか? ヘルプで検索すると稀に堕ちる不具合治さないのかね? read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる