問題タブ [c++builder-5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C ++Builder5を使用したUTF-8からWIN1252への変換
UTF-8でエンコードされたテキストファイルをC++Builder5プログラムにインポートする必要があります。それを実現するためのコンポーネントやコードサンプルはありますか?
c++builder - C++ Builder は、make 後に常にブレークポイントを許可するとは限りません
C++ Builder 5 で、プロジェクトを「作成」した後にブレークポイントを設定すると、ブレークポイントが取得されません。通常、ブレークポイントを設定できる行の横にドットがあります。毎回プロジェクト全体を再構築する必要があります (これは大規模なプロジェクトです)。これを回避する方法はありますか?
multithreading - TThread を使用して UI スレッドと通信するときにタイマーの使用を回避する方法
COM ポートでデバイスに送受信する TThread があります。データを読み取った後、Synchronize(関数名) を使用して (同じスレッドではなく) GUI をアクティブにしたいと考えています。しかし、GUI のフォーム関数を呼び出してボタン クリックを実行すると、アクセス違反が発生します。フォームの値が null であるかどうかを確認しましたが、そうではありません。これはアクセス違反の明らかな理由になるからです。現在、グローバル フラグを設定し、特定の条件が満たされているかどうかを継続的にチェックするタイマーを使用しています。満たされている場合は、そのフォームでボタン クリック イベントを発生させます。それがアクセス違反を回避する唯一の方法のようです。
私は本当にタイマーが好きではないので、フォームでタイマーを使わなくても済むようにする方法はありますか?
c++ - 構造体を反復処理します。RichEditボックスに構造体のフィールドと値を簡単に表示する
struct
コントロール内のフィールドとそれに対応する値を表示する簡単な方法はありRichEdit
ますか?
これは私が今していることです:
等...
それぞれを個別に呼び出すよりも簡単な方法はありますか?バイナリファイルを読み取ってから、構築してRichEdit
いる小さなユーティリティのコントロールに対応する構造を表示したいのですが、他の方法は見つかりませんでした。バイナリファイルを読み取り、値をstruct
すでに読み込む方法を知っています。
c++ - C++Builder-オンザフライでTThreadsを生成します
スレッドまたは関数を生成して、すぐに呼び出し元の回線に戻り、プログラムを続行し、スレッドの作業を続行できるようにする機能を探しています。
たとえば、Form.ShowDialog()を呼び出すと、独自のUIスレッドを持つモードレスフォームが作成されます。
TThreadクラスを宣言せずにこれを(フォームなしで)行う方法はありますか?それが存在する場合でも、匿名スレッドのようなものだと思います。
c++ - 関数は値の質問を返す必要があります
そのような関数を考えると
コンパイラが「関数は値を返す必要がある」と不平を言うのはなぜですか。何かが欠けていない限り、true または false を返すことができないのはなぜでしょうか? myCode の値がランタイムに依存しているため、コンパイラが論理パスに確信が持てないためですか?
command-line - IDEとコマンドラインからC++Builderプロジェクトを構築することの違いは何ですか?
IDEとコマンドラインからプロジェクトをビルドするとき、コンパイラの動作が異なりますが、説明できません。
詳細な問題の説明はかなり大きいですが、それは本当に簡単です。
PASファイル(IncludeUnits.pas)が含まれているC++Builderプロジェクトがあります。このpas-fileには、いくつかのユニットとinc-filesがリストされています。これらのファイルは別々のフォルダーにあり、これらのフォルダーはプロジェクトのオプションのlibrary&includeパスにリストされています。
フォルダーのレイアウト:
C:\ Demo \ Bin
C:\ Demo \ Project
C:\ Demo \ Project \ CBuilder5
C:\ Demo \ Project \ Common
C:\ Demo \ Source
C:\ Demo \ Source \ Common
ビンは出力フォルダーであり、Project / CBuilder5はプロジェクト(bpr-file)を保持し、Project / Commonはインクルードされたpas-file(IncludeUnits.pas)を保持し、SourceおよびSource / Commonは他のファイル(pas&inc)を保持します。かなり普通のレイアウトだと思います。
C:\ Demo \ Project \ Common \ IncludeUnits.pas:
C:\ Demo \ Source \ Test.pas:
C:\ Demo \ Source \ Common \ Test.inc:
このプロジェクトをC++Builder IDEからコンパイルすると、正常にコンパイルされます。C ++ Builder IDEには、IDE設定に追加のパスが設定されていません。
今、私はそれをコマンドラインからコンパイルしたいと思います。まず、発行します
bpr2mak.exe MyProject.bpr
指図。
このコマンドは、MyProject.makファイルを作成します。このファイルには、すべてのパスが表示されます( "....\Source"および"....\ Source \ Common"は問題のパスです)。
...
INCLUDEPATH = $(BCB)\ include; $(BCB)\ include \ vcl; .. \ Common; .. \ .. \ Source; .. \ .. \ Source \ Common
LIBPATH = $(BCB)\ lib \ obj; $(BCB)\ lib; .. \ Common; .. \ .. \ Source; .. \ .. \ Source \ Common ..
..
ここで、makeコマンドを実行します。
make.exe -B -f "MyProject.mak"
次の出力が得られます。
C:\ PROGRA〜1 \ Borland \ CBUILD〜2 \ BIN \ dcc32 -N2 .... \ Bin -N0 .... \ Bin-$ Y +-$ W-$ R -v -JPHNE -M -UC: \ PROGRA〜1 \ Borland \ CBUILD〜2 \ bin .. \ include; C:\ PROGRA〜1 \ Borland \ CBUILD〜2 \ bin .. \ include \ vcl; .. \ Common; .. \ .. \ Source ; .. \ .. \ Source \ Common -D_DEBUG; _RTLDLL; NO_STRICT -OC:\ PROGRA〜1 \ Borland \ CBUILD〜2 \ bin .. \ include; C:\ PROGRA〜1 \ Borland \ CBUILD〜2 \ bin .. \ include \ vcl; .. \ Common; .. \ .. \ Source; .. \ .. \ Source \ Common --BCB .. \ Common \ IncludeUnits.PAS BorlandDelphi
バージョン13.0Copyright(c)1983、 99 Inprise Corporation
C:\ Demo \ Project \ Common \ IncludeUnits.pas(1)C:\ Demo \ Project \ Common \ IncludeUnits.pas(1)C:\ Demo \ Project \ Common \ IncludeUnits.pas(1)C: \ Demo \ Project \ Common \ IncludeUnits.pas(6)C:\ Demo \ Source \ Test.pas(1)C:\ Demo \ Source \ Test.pas(5)致命的:ファイルが見つかりません:'Test.inc'
ご覧のとおり、すべての検索パスがコンパイラに渡され、ファイル(Test.inc)はすべてここにあります-そのSource\Commonフォルダーにあります。しかし、それでもコンパイラはそれを見つけることができませんか?
もちろん、bpr-fileを使用してフォルダーから両方のコマンドを実行します。また、パスを絶対パスに変更しても効果はありません。
Test.incをSource\CommonからSourceにコピーすると役立ちます。{$ITest.inc}を{$ICommon\Test.inc}に変更することも役立ちます。
なんで?何かが足りないようです。注意:プロジェクトはIDEからのコンパイルに問題はなく、Test.incは宣言をコピーまたは変更せずに検出されます。makeまたはdcc32への切り替えを見逃しましたか?
c++ - TCPストリームの処理
私たちのサーバーは一見パケットベースです。これは、古いシリアルベースのシステムからの適応です。何年にもわたって追加、変更、再構築などが行われてきました。TCPはストリームプロトコルであり、パケットプロトコルではないため、パケットが分割されることがあります。ServerSocketは、クライアントがデータを送信するときに、データの一部に。などのメッセージのサイズが含まれるように設計されています55
。これらのパケットは複数の部分に分割されることがあります。それらは順番に到着しますが、メッセージがどのように分割されるかわからないため、サーバーが分割されたメッセージを識別する方法を知らない場合があります。
だから、あなたに背景情報を与えました。パケットが分割されている場合、パケットが入ってくるときにパケットを再構築するための最良の方法は何ですか?私たちはC++Builder 5を使用しています(そうです、古いIDEですが、現時点で使用できるのはこれだけです。.NET以降のテクノロジで再設計するための多くの作業があります)。
stl - Borland C++ Builder 5.0 での STL アプリケーションの構築
私は Borland C++ builder 5.0 を初めて使用します。あるマシン (Windows 2003 Server SP2) では正常にコンパイルされる小さな STL アプリケーションを使用しましたが、別のマシン (Windows XP マシン SP3) では正常にコンパイルされませんでした。コード スニペットとエラー メッセージを配置しました
Borland C++ Form を開き、Form Create に以下のコードを追加しました。
c++ - Borland C++v5.5のインストール手順
Borland C++5.5コンパイラの最新バージョンをダウンロードしました。exeファイルをインストールしましたが、プログラムが実行されません。
インストールパッケージのREADMEファイルにこれがありますが、何もわかりません。
コマンドラインツールのインストールと実行
freecommandlinetools.exeを実行します。無料のC++Builder5コマンドラインツール開発システムをインストールするドライブとフォルダを選択します。
インストールのbinディレクトリから:a。「c:\ Borland\Bcc55」を既存のパスに追加しますb。設定するbcc32.cfgファイルを作成します
次の行を追加することにより、IncludeパスとLibパスのコンパイラオプション(-Iおよび-Lはコンパイラに切り替わります):-I "c:\ Borland \ Bcc55 \ include" -L "c:\ Borland \ Bcc55 \lib"c。次の行を追加して、Libパスのリンカーオプションを設定するilink32.cfgファイルを作成します。-L "c:\ Borland \ Bcc55 \ lib"
これを理解するのを手伝ってください。