問題タブ [virtual]
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.
oop - 論理的な理由に基づいて、virtual 修飾子と new 修飾子は、継承とポリモーフィズムの問題で異なる結果をもたらしますか?
独自の基本クラスに仮想関数がある場合、派生クラスでそれをオーバーライドし、変数宣言時にキャストを検討することで、派生クラスで new 修飾子を使用する場合と比較して異なる結果になることを知っています。しかし、なぜ?それには論理的な理由がありますか、それとも理由もなく学ばなければなりませんか?
.net - 仮想 Windows ドライブを作成する方法
リモート ストレージをマップするために Windows 仮想ドライブ ( c:\ など) を作成しようとしています。主な目的は、ユーザーに明確な方法でそれを行うことです。したがって、ユーザーは自分が別のサイトから書き込み/読み取りを行っていることを知りません。
利用可能な製品を探していたところ、Windows では FUSE がオプションではなく、WebDAV がドライブを直接マップしていることがわかりました。Windows とリモート ストレージの間に中間層を構築して、何らかのサービスを実装したいと考えています。非常に高価な Dokan や、新しい Windows ドライブを明示的に作成していないように見える System.IO.IsolatedStorage Namespace など、別の代替手段が存在します。
おそらく pismo ( http://www.pismotechnic.com/ ) は私の要件にほぼ一致するものですが、それを行うための Windows ( C++ または .NET ) ネイティブ API を含む別の代替手段があるかどうかはわかります。
読んでくれてありがとう :)
windows - Windows がシステム アドレス空間用に 1Gb (または 2Gb) を予約するのはなぜですか?
Windows アプリケーションは通常、32 ビット システムで 2Gb のプライベート アドレス空間を持っていることが知られています。このスペースは、/3Gb スイッチを使用して 3Gb まで拡張できます。
オペレーティング システムは、残りの 4Gb を予約します。
私の質問はなぜですか?
カーネル モードで実行されるコード (つまり、デバイス ドライバー コード) には、独自のアドレス空間があります。排他的な 4Gb アドレス空間に加えて、オペレーティング システムが各ユーザー モード プロセスの 2Gb を予約したいのはなぜですか?
その理由は、ユーザーモードとカーネルモードの呼び出しの間の移行だと思いました。たとえば、 への呼び出しにNtWriteFile
は、カーネル ディスパッチ ルーチンのアドレスが必要です (そのため、システムは各アプリケーションで 2Gb を予約します)。しかし、 を使用するSYSENTER
と、システム サービス番号は、カーネル モード コードがどの関数/サービスが呼び出されているかを知るのに十分ではありませんか?
オペレーティング システムが各ユーザー モード プロセスで 2Gb (または 1Gb) を使用することが非常に重要な理由を明確にしていただければ幸いです。
c# - C#:仮想イベントとは何ですか?どのように使用できますか?
バーチャルイベントはどのように機能しますか?どのようにオーバーライドしますか?それはどのように機能しますか?そして、どのような場合にあなたはそれをしますか?
たとえば、保護されたOnEventメソッドの代わりに使用できますか?継承するクラスがイベントをオーバーライドして直接発生させることができるようにするには?それともそれは間違っているのでしょうか、それともうまくいかないのでしょうか?
MSDNはそれについてこれを言います:
virtualキーワードを使用して、イベントを仮想イベントとしてマークできます。これにより、派生クラスは、overrideキーワードを使用してイベントの動作をオーバーライドできます。仮想イベントをオーバーライドするイベントをシールすることもできます。これは、派生クラスの場合、仮想イベントではなくなることを指定します。
しかし、それは私をそれほど賢くしませんでした。しかし、封印されたものは明らかです。
注:C#で仮想イベントがどのように機能するかを見てきましたか?質問ですが、それは実際には仮想イベントがどのように機能するかについてではありませんでした。むしろ、それはその人がそれらを使用することから得た結果をどのようにして得たかでした。彼の例と答えから仮想イベントが何であるかを理解しようとしましたが、それを実際に理解することはできませんでした。
c# - ネイティブC++からマネージC++からC#
多数の.hおよび.libファイルをネイティブC++からマネージC++に移植して、最終的にC#で参照される.dllとして使用できるように取り組んでいます。
どうか、すべてを.NETに移植する方がはるかに簡単だと思いますが、できればそうすることもできます。これはサードパーティであり、使用できるのは.lib(エクスポートなし)ファイルと.hファイルだけです。
仮想関数に到達するまですべてが順調に進んでおり、現在、デリゲートの問題が発生しています。
私が得ているエラーの中には次のものがあります:
エラーC3756:'ThreadFunc':デリゲート定義が既存のシンボルと競合し
ますエラーC2079:'MyWrapTest :: MyThreadWrap::m_threadAttr'は未定義のクラスを使用します'MyWrapTest:: MyThreadAttrWrap'エラーC2664:' MyWrapTest :: AutoPtr :: AutoPtr(T *) ':パラメータ1を' MyWrapTest::MyThreadAttrWrap'から'MyThread*'に変換できません
わかりやすくするために、ネイティブコードと現在取り組んでいるものを含めます。まず、ネイティブコード:
そして私が開発している新しいスタッフ:
virtual - 仮想サーバー 2005 で仮想ディスクのサイズを拡張する方法
Virtual Server 2005 を使用しており、16 GB の仮想ハード ディスクを使用しています。この仮想ディスクを 20GB に拡張する必要があります。ありがとう。ベアトリス
asp.net - .NET/IIS - Web サイトを 2.0 で実行しているときに、.NET 3.5 を使用して仮想ディレクトリを実行できますか?
現在、.NET 2.0 で実行されている Web サイトがあります。
同じ Web サーバーで実行する必要があるレポート ツールもありますが、それは 3.5 で作成されたものです。
Web サイトの下に「レポート」と呼ばれる仮想ディレクトリを作成し、それを 3.5 に対して実行することはできますか? ユーザーはhttp://domain/Reportsにアクセスできますか?
これが意味をなさない場合はお知らせください。
c++ - 仮想基本クラス データ メンバー
仮想基底クラスにデータ メンバーを持たないことが推奨されるのはなぜですか?
関数メンバーはどうですか?すべての派生クラスに共通のタスクがある場合、仮想基本クラスがタスクを実行しても問題ありませんか、それともタスクを実行する仮想インターフェイスとプレーン ベースの 2 つのクラスから派生したものを継承する必要がありますか?
ありがとう。