問題タブ [c++builder-10-seattle]
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++ 10 シアトル エンバーカデロ タイプ complex_array
NEC2 ++と呼ばれるMSVCのオープンソースコードを使用しようとしています https://github.com/tmolteno/necpp
Builder が認識できない complex_array という未定義の型があります。Boost をインストールしましたが、ドキュメントのどこにもこのタイプはありません。これは、実数と虚数の配列の型であると想定しています。Builder または Boost のドキュメントでそのようなタイプを見つけることができません。
このコードを移植するための解決策を探しています。
delphi - Delphi RTTI & C++
この投稿は、Remy Lebeau の助けを借りて、C++ Builder Journal Forumでの質問の続きです。私の問題は、Delphi RTTI と C++ Builder での使用方法について理解していないことです。RTTI を使用して型情報などを取得する方法については多くのドキュメントがありますが、検出に使用する方法はあまりありません。
私の理解では、以下は RTTI 検出のためのメソッドをセットアップする必要があります。
これは、Embarcadero iOS API iOSapi.UIKit.hpp のインターフェース UIAlertViewDelegate の仮想メソッドをオーバーライドする、現時点での私のクラスです。
ただし、このクラスのインスタンスを作成し、次を使用してヒープに割り当てると:
Delphi 関連の RTTI エラーが発生します。
最初の例外は $00158015 です。メッセージ 'UIAlertViewDelegate の RTTI を持つ例外クラス EObjectiveC が見つかりませんでした。おそらく {$M+} がありませんか?'. デリゲートの処理 (250202)
クラス メソッドを public から __published に変更すると、このエラーは解消されますが、アクセス違反が発生しますが、コール スタックを見ると次のようになります。
- 呼び出された TOCLocal コンストラクター
- 呼び出された TRttiType GetMethods
- メソッドデータの読み取り
- 拡張メソッド データの読み取り
- オブジェクトの読み取り
- オブジェクト ポインタの読み取り
- オブジェクトの読み取り (再度)
- TRTTIInstanceMethodClassic の作成
- アクセス違反
メソッド情報を取得しようとした後に RTTI がクラッシュしているので、明らかに RTTI に何か問題がありますか? 経験のある人なら誰でもここで助けてもらえますか?
clipboard - CBB 10 で特定のクリップボード テキストを TEdit に貼り付ける
ユーザーがボタンをクリックすると、 URL (http:// で始まる) を含むテキストのみClipboard
が に自動的に貼り付けられることを望みますTEdit
。
次のコードを試しましたが、まったく機能しません。
string - CBB 10 の複数の StringReplace
交換したい弦が10本以上あります。現在、次のコードに示すように手動の方法を使用しています。
ですから、より実用的で柔軟な方法を使用して、多くの文字列を置き換える方法を知りたいです。おそらく、特定の関数を使用して ?.
どうもありがとうございました。
linker-errors - C++ Builder 10 シアトル NotificationCenter リンカー エラー
RAD Studio 10 Seattle を使用して新しい VCL フォームを作成しました。
設計時に NotificationCenter を追加しました。次に、コンパイルして正常に実行しました。
しかし、次の2つのステップを実行したとき:
1.に行きました
プロジェクト -> オプション -> C++ リンカ
「動的RTLとリンク」オプションのチェックを外しました。
2.行きました
プロジェクト -> オプション -> パッケージ -> ランタイム パッケージ
「ランタイムパッケージとのリンク」オプションのチェックを外しました。
.exe をスタンドアロンにするため、つまり IDE なしで .exe ファイルを実行できるようにするために、これらのオプションはオフになっています。したがって、これらのオプションをオフにすると、すべてのライブラリとパッケージが .exe ファイルにリンクされます。
しかし、コンパイルすると、リンク段階で次のエラーが表示されます。
だから私は自分の
エンバカデロ/17.0/
最初のリンカ エラーで参照用のディレクトリをSHStrDupW
検索し、拡張子が .h または .hpp の 3 つのファイルを見つけてプロジェクトに含めましたが、同じ結果が続きました。
このバグを修正する方法を知っている人はいますか? :)
PS: win32 OS 用にコンパイルするか、win64 OS 用にコンパイルするかは問題ではありません。
c++builder - C++ Builder 10 シアトルでの Web.Win.Sockets の使用
C++ Builder 2010を使用して最初にビルドされた既存の (大規模な) プロジェクトがあります。通信には非推奨になったソケットを使用します。
それらはサンプル プロジェクトで引き続き使用できることを読み、コマンド ラインからビルドしました。Component/Install Packagesから sample フォルダーの bpl に移動してインストールし、コードを実行しようとしました。しかし、私はいくつかのステップが欠けていると感じています。
サンプル フォルダーからWeb.Win.Sockets.hpp をインクルードするだけでは十分ではないようです。既存のコードが使用する TServerSocketなど、多くのことに関する定義が含まれていないようです。System.Win.ScktCompにはこれらの欠落している定義が含まれているようですが、両方を混在させることは適切ではないようです。ふざけて、一度そんなクレイジーなことをしてコンパイルしてみたのですが、送信されたデータにゴミが含まれているようで、通信をめちゃくちゃにしました。
ある時点で、代わりにSystem.Win.ScktCompのコンポーネントに移動しようとしましたが、何が何に相関しているか、また警告があるかどうかについての適切な情報はありませんでした。プログラムをコンパイルした後、接続できなくなります。
では、 C++ Builder 10 Seattleの「古い」ソケットを有効にして使用するための適切なガイドはありますか? また、新しいものに移行する場合、それは一時的な交換ですか、それとも多くの作業が必要ですか? システムは大量のデータをカスタム バイナリ形式で送信するため、多くのストリーム処理が行われます。現在、これを起動して実行する必要があるため、現時点ではこれらの部分を大幅に書き直すことはできません。
winapi - SelectObject WinApi 関数が Rad Studio シアトルでコンパイルできない
以下のコード スニペットを Rad Studio Seatle CBuilder 10 でコンパイルしようとしています。
しかし、その行をコンパイルしてエラーメッセージを表示することはできません。
[bcc32 エラー] Unit1.cpp(132): E2034 'void *' を 'HPEN__ *' に変換できません 完全なパーサー コンテキスト Unit1.cpp(121): 解析中: void _fastcall TForm1::Button1Click(TObject *)
このソース コードを「c++ builder 6」で正常にコンパイルできます。
また、CBuilder 6 および Cbuilder 10 で SelectObject 関数宣言を確認しました
CBuilder 6 宣言 (wingdi.h)
CBuilder 10 宣言 (wingdi.h)
私は違いを見ていません。
私の問題は何ですか。
ありがとう。
c++ - Duktape を C++ Builder と Clang でコンパイルすると、inttypes.h ファイルが見つかりません
C++ Builder Seattleを使用して簡単な Duktape の例を作成し、Duktapeの「コンテキストの初期化」のコードに従います。クラシック モードを使用すると、正常にコンパイルされます。[Project] -> [Options] -> [C++ Compiler] -> [Use 'classic' Borland compiler] のチェックを外して clang に切り替えると、次のエラーが発生します。
インクルードをコメントアウトすると、次のエラーが発生します。