問題タブ [internals]
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 - TTypeInfoの前の「IDポインタ」とは何ですか?
Delphiの内部を十分に調べてみると、コンパイラによって生成されたTTypeInfoレコードについて、奇妙で明らかに文書化されていないものが見つかります。PTypeInfoがアドレスXのTTypeInfoレコードを指している場合X - 4
、次の4バイトはXへのポインターを表します。次に例を示します。
コンパイラによって生成された正当なPTypeInfoをこのルーチンに渡すと、同じアドレスが2回出力されます。TypInfo.pasを少し調べましたが、この「IDポインター」またはその目的について言及しているものは何もありません。なぜこれがあるのか誰か知っていますか?これは、少なくともD3からD2010までのDelphiのすべてのバージョンに当てはまるようです。
r - Rの要因:煩わしさ以上のもの?
Rの基本的なデータ型の1つは因子です。私の経験では、要因は基本的に苦痛であり、私はそれらを使用することはありません。私はいつも文字に変換します。何かが足りないような気がします。
因子データ型が必要になる場合に、因子をグループ化変数として使用する関数の重要な例はありますか?ファクターを使用する必要がある特定の状況はありますか?
vb.net - InternalsVisibleToAttributeがオプションでない場合に、リフレクションを使用してアセンブリ内の内部(VBのフレンド)クラスを単体テストするにはどうすればよいですか?
次の2つのプロジェクトで解決策があります。
Company.Project.vbproj
アセンブリ内に、FriendClass.vb
スコープがであるクラスがありますFriend (internal in C#)
。
ここで、アセンブリFriendClass.vb
内からこれをテストしたいと思います。Company.Project.Tests.vbproj
については知っていInternalsVisibleToAttribute
ますが、.NET 2.0ではC#でのみ使用できるため、Visual Basic .NET 2.0ではオプションではありません(ここを参照)。
テストアセンブリ内からこの内部FriendClassを使用してプロキシクラスを作成し、インスタンス化してそれに応じてテストを実行できるようにしたいと思います。
そうするためのアイデアや既知の慣行はありますか?
前もって感謝します!=)
c++ - 開いているすべてのファイルを一覧表示する
これは、ここにある別の質問への追加です。
要するに 、システム上で開いているすべてのファイルを一覧表示し、関連するファイル名を取得したいと思います。これが間違ったアプローチである場合、または別の方法がある場合は、正しい方向にプッシュしてください。または、詳細が不足している場合や不明な点がある場合は、怒鳴ってください。
他の質問 (上記のリンク) のように、私は言語を気にしません (C または C++ のソリューションは問題ありません) が、これが Windows XP で動作することを望みます。また、カーネル モード ドライバーを避ける必要があります。
この質問に対する元の解決策で私が抱えている問題は、ファイル ハンドルが特定の方法で開かれた場合、NtQueryObject
呼び出しがハングする可能性があることです。これについては、こちらの SysInternals フォーラムで概説されています。
SysInternals フォーラムによると、タイムアウトで CreateThread を使用することは受け入れられた解決策ですが、それを行うと、毎回プロセスを適切に閉じることができないようです。これを Visual Studio でデバッグしているときでも、コンピューターの再起動を余儀なくされることがあります。これを実行するときに時々コンピューターを再起動する必要があるのは、最良の選択肢ではありません。
受け入れられている別の解決策は、特定の でハンドルをスキップすることGrantedAccess
です。私が抱えている問題はGrantedAccess
、上記のフォーラムの投稿で概説されているように、あまりにも多くのハンドルが役に立たないことです。
私の問題の解決策を教えてくれる人はいますか?
ありがとう!
編集:申し訳ありませんが、私の問題についてもっと具体的にすべきでした。NtQuerySystemInformation
呼び出しはハンドルを取得し、呼び出さNtQueryObject
れObjectNameInformation
たものは同期パイプであるハンドルでハングします (少なくとも、人々はそう言っているようです)。ここに掲載されている例では、カーネル モード ドライバーを使用して FILE_OBJECT からファイル名を読み取りますが、ドライバーの使用は避けたいと考えています。そうです、SysInternals Handle ユーティリティによく似ていますが、ドライバーも使用していると思いますよね。
編集 2 : これは一種の学術的関心であるため、将来のバージョンで壊れる可能性のあるネイティブ API またはその他の文書化されていない手法の使用は問題ではありません。また、GrantedAccess
ぶら下がっているオブジェクトを回避するだけでも完璧です。
編集 3 : 私の最終目標は、システム上で現在開いているファイルを確認できるようにすることです。これが完全に間違ったアプローチである場合は、正しい方向への別のポイントをいただければ幸いです。
編集:Vista +にはより洗練されたソリューションがあるため、これはWindows XPで動作する必要があるだけなので、文書化されていない機能を使用しても問題ありません。
再度、感謝します!
ruby-on-rails - Railsの質問でのRails.envの実装
Railsソースをブラウジングすると、 railties/lib/initializers.rb でそのようなメソッドが見つかりました
私はそれがどのように機能するかを知っていますが、なぜこのように実装しているのですか? 遅延読み込みのためだけですか、それとも他の理由があるのでしょうか?
c# - 私のC#winformは、他のアプリケーションがTRUEフルスクリーンに入る/終了する/実行するタイミングを検出する必要があり、イベントによって優先されます
ビデオゲーム、ビデオムービー、パワーポイントなど、他のアプリケーションが真のフルスクリーンモードで(最大化されているだけでなく)実行されている間、私のC#winformアプリケーションはスタンバイモードにする必要があります。
現在フルスクリーンで他のアプリケーションがあるかどうかを検出する方法が必要です。
他のアプリケーションがフルスクリーンに出入りするときに発生するイベントに登録する可能性はありますか?
どちらのニーズにも、コード スニペットがあるとありがたいです。
php - PHP のリスト機能はどのように機能しますか?
list
最近、SO に関する PHP の関数の利用に関するいくつかの質問に答えた後、「一体、その関数は内部で実際にどのように機能するのだろうか?」と疑問に思いました。引数リストを使用してから反復処理するようなことを考えていましたが、それはすべて素晴らしくて桃色ですが、世界では代入部分func_get_args()
はどのように機能しますか?
これは ^ 最初に評価されませんか?
正確に言うと、私の質問は、list
関数がまだ評価されていない配列に割り当てられるスコープ変数をどのように作成できるかということです。
windows - LoadLibrary参照カウント
MSDNから:
システムは、ロードされたすべてのモジュールでプロセスごとの参照カウントを維持します。LoadLibraryを呼び出すと、参照カウントが増加します。
その参照カウントはどこに保存されますか?
java - 最初にエンティティ オブジェクト全体をロードせずに、Hibernate でエンティティのロードされた PersistentCollection を取得する方法はありますか?
これぞパズル!:D
最初にエンティティ全体をロードせずに、Hibernate にエンティティのコレクションを強制的にロードさせる方法はありますか?
もっとよく説明しましょう。このように注釈が付けられた Role エンティティがあります。
次のようにしてアクセス許可コレクションにアクセスすると:
Hibernate は、返されたコレクションを PersistentCollection のサブクラスの 1 つでラップします。その後、Hibernate.initialize(permissions); を使用できます。コレクションを強制的に初期化します。
ただし、必要なのは、最初に役割エンティティをロードせずに同じことを達成する方法です。アクセス許可コレクションが必要なエンティティの ID と、コレクションの役割 (temp.pack.Role.permissions) を知っています。
それを行う方法はありますか?コレクションを取得してそれらをすべて破棄するためだけに、Role オブジェクトのすべてのフィールド (多数!) を取得するためにデータベースにアクセスすることは避けたいと思います。
結合を使用することもできますが、これにより、必要な実際の PersistentCollection ラッパーではなく、アクセス許可オブジェクト自体にアクセスできるようになります。
私はこれを試しました:
しかし、うまくいきませんでした。私が取得したコレクションは通常の空のセットであり、何もロードされていません。
私もこれを試しました:
しかし、うまくいきませんでしたjava.lang.IllegalArgumentException: unknown handler key
.
私も試しました:
しかし、また失敗しますjava.lang.IllegalArgumentException: unknown handler key
これを達成する方法についてのアイデアはありますか?
c++ - GNU STL文字列:ここではコピーオンライトが関係していますか?
(免責事項:C ++標準がこれについて何を言っているのかわかりません..私は恐ろしいです)
非常に大きな文字列を操作しているときに、std::stringがコピーオンライトを使用していることに気付きました。観察された動作を再現する最小のループを作成することができました。たとえば、次のループは疑わしいほど高速に実行されます。
ループ本体a_copy[1] = 'B';
に書き込みを追加すると、実際のコピーが行われたようで、プログラムは数ミリ秒ではなく0.3秒で実行されました。100回の書き込みで約100倍遅くなりました。
しかし、それからそれは奇妙になりました。一部の文字列は、書き込みも読み取りも行われず、実行時間には反映されませんでした。実行時間は、文字列に対する操作の数にほぼ正確に比例していました。少し掘り下げてみると、文字列から読み取るだけでもパフォーマンスが低下することがわかりました。そのため、GNU STL文字列がコピーオンリード(?)を使用していると思いました。
しばらくの間、発見を楽しんだ後、ベース文字列からの読み取り(operator []を使用)も、おもちゃのプログラム全体で0.3秒かかることがわかりました。これには100%満足していません。STL文字列は実際にコピーオンライトですか、それともコピーオンライトを許可していますか?私は、operator []が、それが返す参照を保持し、後でそれに書き込む人に対して、いくつかの安全策を持っていると思うようになりました。これは本当に本当ですか?そうでない場合、実際に何が起こっているのでしょうか。誰かがC++標準の関連するセクションを指すことができれば、それもありがたいです。
参考までに、とGNUSTLを使用g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
しています。