問題タブ [rtti]
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.
delphi - DataSnap 2010 の一般化されたリクエスト機能?
これは私が構築しようとしているクライアント側関数であり、より一般化されており、TDBXReader を返すさまざまなサーバー側プロシージャを呼び出すことができます。現在は機能していますが、いくつかの問題に直面しており、あなたの助けが必要です:
- (最も重要) このアプローチについてどう思いますか? 提案/アドバイスはありますか?
- vLClient (実際には TSrvMethodClient です) を解放するにはどうすればよいですか?
- Create メソッドに 2 番目の引数を渡すことができないのはなぜですか?
ありがとうございました。
c++ - 動的型情報から新しいオブジェクトを作成する
C ++では、オブジェクトのタイプを照会し、その情報を使用して同じタイプの新しいオブジェクトを動的に作成する方法はありますか?
たとえば、単純な3つのクラス階層があるとします。
ここで、タイプBaseとしてキャストされたオブジェクトを提供するとします。これは実際にはタイプFooです。タイプをクエリし、その情報を使用して後でタイプFooの新しいオブジェクトを作成する方法はありますか?
c++ - RTTI のブースト ライブラリ
プロジェクトで RTTI を実装するには、どのブースト ライブラリを使用すればよいですか?? Statechartライブラリですか?
delphi - プロジェクト全体に $RTTI ディレクティブを設定するにはどうすればよいですか?
古いプロジェクトを Delphi 2007 から Delphi 2010 に移行する作業を行っています。結果の実行可能ファイルのサイズが 2 倍以上になり、元のプロジェクトはすでにかなり大きいことがわかりました。(50 MB を超えています。) その多くは RTTI の拡張に関係していると思われます。
このプロジェクトは Delphi 2010 よりも前のものであるため、拡張 RTTI はどこにも使用されていません。Project Options ダイアログを使用してグローバル{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
にデフォルトとして設定する方法はありますか? これ (および ) のオプションが$WEAKLINKRTTI
どこかにあると期待していましたが、それらは表示されません。
これが「コンパイラに渡す追加オプション」フィールドから、または他の方法で実行できるかどうかを知っている人はいますか? プロジェクトのすべてのユニットにインクルード ファイルを追加する必要はありません。数千のユニットがあるためです...
c++ - GCC の RTTI 名を文字化けできますか?
gcc を使用して、typeid を使用してオブジェクト/変数の型を要求すると、type_info::name メソッドから、Windows で得られると予想される結果とは異なる結果が得られます。少しググったところ、RTTI 名は実装固有であることがわかりました。
問題は、Windows で返される型の名前を取得したいということです。これを行う簡単な方法はありますか?
c++ - typeinfo::name() を指すメモリの寿命は?
C++ ではtypeid
、演算子を使用してポリモーフィック クラスの名前を取得できます。
const char*
返されたポインタが指す文字列は、プログラムでどのくらいの期間使用できますか?
delphi - Delphi 2010でRTTIを使用して任意のタイプのイベントハンドラーを設定するにはどうすればよいですか?
投稿を読んだ後新しいRTTIを介してイベントハンドラーを設定する方法は?、これをもっと動的に解決できるのではないかと思います。たとえば、任意のコンポーネントのすべてのイベントハンドラーをnilに設定したいとします。
次の2つの理由により、使用TValue.From <TNotifyEvent> (SomeMethod)
が機能しません。1.タイプが不明(TNotifyEvent、TMouseEventなど)2。「SomeMethod」をnilに設定できない(無効なキャスト)
古いRTTIスタイルでは、次のようなことを行います。
delphi - Delphi 2010 RTTI : 列挙を調べる
そのような列挙を考慮する:
XmlName は、この列挙型のメンバーのシリアル化文字列を定義するために使用されるカスタム属性です。
この列挙型の各メンバーに関連付けられている属性を調べるにはどうすればよいですか?
delphi - 名前のないデータ型では RTTI なし
タイプに名前が付けられていない場合、コンパイラは RTTI を生成しません。例: T = 整数の配列 [0..1,0..1]; この場合、配列の合計サイズを知ることはできますが、各次元のサイズを知ることはできません。
T01 = 0..1; という明示的な名前の型を使用する場合にのみ機能します。T = 整数の配列[T01,T01];
私は何かを逃した?
テストコード:
delphi - Delphi 2010 RTTI:TValueを使用してデータを保存する
TValueを使用してデータをTList<>に格納できるようにしたいと思います。のように :
そして少し後、メインプログラムで、次のような「流暢な」xmlビルダーを使用します。
2回目の呼び出しで、プログラムはアクセス違反の例外を発生させます。
最初のTValueが「解放」されたようです。TValueを使用して「バリアント」データをランタイムに保存することは本当に可能ですか?
Delphiにはバリアントが存在することを知っています。私のXMLビルダーは、RTTIを使用してネイティブのdelphiオブジェクトをXMLに(逆)シリアル化するために使用されるため、どこでもTValueを使用します。
よろしく、
-ピエール・イェーガー