(1)Visual Studio 2022 でソリューションを新規作成する。


(2)プロジェクトに、以下のファイル、ヘッダを追加する。

ncbind.cpp, tp_stub.cpp, ncbind.hpp, ncb_foreach.h, ncb_invoke.hpp, tp_stub.h


(3)自動的に追加されたソースファイル( DllMain() が含まれているもの)をプロジェクトから削除する。


(4)Visual Studio 2022 でソリューションのプロパティを開き、以下の点を修正する。

  • 構成プロパティ>C/C++>コード生成>ランタイム ライブラリを「マルチスレッド/MT」もしくは、「マルチスレッド デバッグ/MTd」にする。
  • 構成プロパティ>C/C++>言語>準拠モードを「規定」にする。


(5)吉里吉里からアクセスしたいメソッドを含むクラスをソースファイル中に作成する。その際、クラスのメソッドは、コンストラクタ、デストラクタも含め、全て public: スコープ内に明示してクラスを定義する。


(6)吉里吉里からアクセスしたいメソッドとクラス名を、以下の様に記述する。(下の例では、 foo クラスの bar メソッド)。

NCB_REGISTER_CLASS(foo) {

     NCB_CONSTRUCTOR(());

     NCB_METHOD(bar);

};

以上で、吉里吉里側から、以下の様にして呼び出すことができるようになる。

Plugins.link("foo.dll");

var a = new foo();

var a.bar();


github の betterdiscord リポジトリに説明があるが細かい部分が漏れているので、備忘録として。

git, node.js, pnpm が必要となる。


(c:/betterdiscord/ にインストールする場合。)


(1)better discord のソースの入手

cd c:/

https://github.com/BetterDiscord/BetterDiscord.git



(2)依存関係で必要なファイルを入手

cd c:/betterdiscord/

pnpm recursive install



(3)better discord のビルド

cd c:/betterdiscord/

pnpm run build



(4)better discord を discord クライアントに組み込む

cd c:/betterdiscord/

pnpm run inject [canary, ptb](別バージョンの場合は、名前を最後に追加)



これで、手動での better discord のインストールが完了となる。

キーワード: better discord install


・Windows でタスクマネージャを開き、「パフォーマンス」タブの「CPU」からCPU使用率のグラフを表示させる。

・グラフの上でマウスの右ボタンをクリックしてポップアップメニューを出し、「グラフの変更」から「論理プロセッサ」を選ぶ。

の手順で、論理プロセッサごとのグラフが表示される。


このとき、マウスカーソルを論理プロセッサのグラフ上に移動すると、「CPU 0 - 保留」のように表示されることがある。


この「保留」の意味の説明が,

タスクマネージャのどこにもないので、

「なんの意味だろう」

と思っていたのだが、ネット検索で、

「CPU core parking」という機能であることが分かった。ネット上の説明を見ると、


コアパーキング(Core Parking)とは、負荷が高くない場合に全てのCPUコアを利用せず、不必要なコアを”保留状態”にしてコアを減らし、電力を削減する機能です。


のように説明がされている。


だが、この説明だと、実態と一致しない部分がある。実際には、「保留」と表示されている論理プロセッサも、多くの場合、CPU使用率が0%ではないのだ。本当に上記の引用通りに「不必要なコアを保留状態にしてコアを減らす」のであれば、保留中の論理プロセッサのCPU使用率は0%になるはずだ。


不可解に思いいろいろ検索していて、ようやく見つけたのが、「Core Parking (保留) とは何か?」という古い記事だ。この記事によると、「保留」の意味は、「不必要なコアを保留状態にしてコアを減らす」のではなく、CPUのスケジューラによるスケジューリングから除外する目印にすぎず、保留の印がついた状態の論理プロセッサにも、スケジュールされることがある、ということだ。


「CPU core parking」について正しい説明をしているサイトがほとんどないということは、正しく理解している人がほとんどいない(「保留」表示のCPUは本当に保留状態になっていると思いこんでいる)、ということなのだろう。

[コメントの受付は終了しています ]
この記事のリンク元 | 1 |

キーワード: CPU core parking 保留


Windows11 インストールと Rufus 2022-09-11 (日) 19:57:26+09:00

メモ

起動可能な USB メモリなどを作成するツール「Rufus」についての、窓の杜の記事「Windows 11のシステム要件を迂回するモードを搭載したインストールメディア作成ツール「Rufus」」によると、


今回のアップデートの目玉は、「Windows 11」のインストールメディアを作成する際に「拡張」(Extended)モードが選べるようになったこと。Windows 11をインストールするには通常、「TPM 2.0」や「セキュアブート」、8GBのメインメモリといった最小システム要件を満たす必要がある。しかし、このモードで作成されたインストールメディアを利用すれば、それらをバイパスしてWindows 11をセットアップできる。


と、書かれていて、インストール要件を満たさず Windows11 を使用できない人は、飛びつきたくなるだろう。


しかし、この記事には大きな穴がある。「CPUの世代」だ。 Core i シリーズでいえば、第8世代以降のみがインストール可能になっているので、第7世代とそれ以前の Core i シリーズのPCにはインストールできない。おそらく Windows11 がインストールできない人の多くのケースが、この「CPUの世代」にひっかかっていると思うのだが、このツールが回避してくれるのは、 TPM 2.0 と UEFI セキュアブートの2点のみであり、CPUのチェックや、メモリの最小搭載量4GBのチェックは回避できないので、 Windows11 のインストール要件に満たしていないPCを所有していて、上記記事を見て期待した方は、インストールメディアを Rufus で作成する前にご注意いただきたい。

キーワード: rufus windows11


windows 起動時に、アプリケーションを自動実行させる方法は複数ある。


(1)「スタートアップフォルダ」にショートカットを作成する方法

C:/Users/<ユーザー名>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/

の中に、自動実行させたいアプリケーションのショートカットを作成するとよい。


(2)「タスクスケジューラ」を使用する方法

タスクスケジューラを起動し、自動実行させたいアプリケーションの設定を行う。

  • 管理者権限での実行が必要なアプリケーションの場合、「全般」タブの下の方にある、「最上位の特権で実行する」にチェックを入れる必要がある。
  • どのような状況の時に自動実行させるかは、「トリガー」のタブに作成する。
  • 自動実行させるアプリケーションのパスは、「操作」タブに作成する。


(3)システム管理されている「スタートアップ」

以前のバージョンの windows では、 msconfig で管理されていたが、 windows 10 からは、タスクマネージャの「スタートアップ」タブ、または、「設定>アプリ>スタートアップ」で管理されている。ただし、ここにユーザが自由に自動起動したいアプリケーションを新規登録したり削除したりすることは、できなくなっている。ここへのアプリケーションの登録は、アプリケーション自身が内部でシステムに対して登録を行っているようだ(詳細不明)。


(4)その他の自動実行されるもの

通常のアプリケーションではなく、「サービス」の類も、自動実行される。この管理は、タスクマネージャの「サービス」タブ、または、「サービス」管理ツールで行う。こちらも、ユーザが手動で自由に追加・削除することはできない。


レジストリにも、自動実行の仕組みがあり、特定のキーに登録することで実行されるようになる。こちらは、レジストリを編集することで、ユーザにも追加・削除・修正が行える。

キーワード: startup