Author Archives: admin

C++/WinRTのプロジェクトが作成できない

以下のようなエラーが出て作成できない場合。

C++/WinRTの拡張機能をインストールする

ユニバーサルWindowsプラットフォーム開発をインストールする

C++/CLIのBeginInvoke

BeginInvokeはInvokeと違って、非同期でデリゲートを呼び出します。別スレッドで実行されるので注意が必要です。待ったりするときはIAsyncResultを使います。

なおここで紹介しているBeginInvokeはControl::BeginInvokeとは違うものなので注意が必要です。

最もシンプル

引数を渡す

2つの引数を渡す

コールバックを設定してコールしてもらう

コールバック関数に値を渡す

クラスの関数で

2つのBeginInvokeを同時に待つ

ソースコード

https://github.com/ambiesoft/blogprogs/tree/master/5753

C#のOpenFileDialogで拡張子exeの実行ファイルをフィルタして選択

vmwareのchromeでポップアップウインドウが見えないのでgpuを無効にする

vmwareのゲストでGPU(ハードウェアアクセラレーション)を有効にしていると、chromeでポップアップウインドウがうまく表示できない。(以下の図のユーザー名サジェストが白くなっている部分)

chromeはデフォルトでGPUを使って描画しているので、これを無効にすればちゃんと表示できる。

設定で無効にする

  1. chromeを起動し、右上のメニューから「設定」を選択。
  2. 左側のメニューの「詳細設定」をクリックしてから、「システム」をクリック
  3. ハードウェア アクセラレーションが使用可能な場合は使用する」をOFFにする

コマンドライン引数で無効にする

コマンドラインで”--disable-gpu“をつけると、GPUを無効にできる。

無効にされているか確認

chromeでオムニバー(アドレスバー)に”chrome:gpu“と入力すると以下のように確認できる。以下は有効のとき

以下は無効の時

C#とjavascriptの時間

基本

時間を表す言葉には時刻と時間間隔があるので時間という言葉ではあいまいになる。
どちらの場合も単位と基準点が問題になる。単位は秒とかミリ秒とかのこと、基準はUTCとか日本時間のこと。

Unix time stamp

UTCで1970/1/1からの秒を表す。今の値はこことかでわかる。

C#でこの値を得るには以下のコード

C#のDateTimeは0001/1/1からの100ナノ秒で管理しているようだ。3つの引数をとるコンストラクタはグレゴリオカレンダーで初期化するのでこれでいいらしい。

javscriptでこの値を得るには以下のコード

javascriptのDateはUTCで1970/1/1からのミリ秒で管理しているようだ。デフォルトのコンストラクタは今でgetTime()はミリ秒でUnix Epoch(=Unix time stamp)を返すので1000で割って秒にしている。

Unix time stampからオブジェクトをつくる

C#の場合は以下のようにやるらしい

これだとローカル時間が帰るので以下のように修正

javascriptの場合は以下

ソースコード

https://github.com/ambiesoft/blogprogs/tree/master/5705

chromiumベースのEdgeから古いEdgeにもどす

管理者権限でコマンドプロンプトを起動

[Win]+Qでサーチダイアログを開きコマンドと入力し、コマンドプロンプトを右クリックして管理者として実行を選択する。

Edgeのsetup.exeを実行してアンインストールする

以下のようにEdgeのフォルダでsetup.exe –uninstall –system-level –verbose-logging –force-uninstallを実行する。

上記のようにsetup.exeを実行する。Program Filesのパスは環境によって変わる。

成功すると、Chromium版のEdgeはアンインストールされ、自動的に古いEdgeにもどる。

Microsft Edgeで日本語の文字化けをなおす

サイトの文字種別により以下のどれかをアドレスバーに入力する。(なぜかEdgeではうまくペーストできないのでjavascript:の部分は手書きで入力)