potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

2024-09-01から1ヶ月間の記事一覧

C++23 Preview&Win API&WIL WICコンポーネントの情報を取得する

C++と標準ライブラリで以前投稿したコードのC++23 PreviewとWILを使った書き直しです。ifのネストが消えたのはWILのおかげなので、C++20でもWIL、可能ならstd::functionalを使えば同程度に簡単にできると思います。 #include <format> #include <string> #include <iostream> #include <experimental/generator></experimental/generator></iostream></string></format>…

C++&Win API WICを使った画像ファイルからDIBセクションの作成

WIC(Windowsイメージングコンポーネント)を使って画像ファイルからDIBセクションを作成する方法です。WICはGDIでは扱いにくいアイコンやGIF、PNGを統一された方法でビットマップに変換できます。 以下のコードはC++20で動作するウィンドウアプリケーション…

R readr 2.1.5 readme 和訳・改変

Rのパッケージreadr 2.1.5のリファレンス和訳です。readrはHadley Wickham氏の作成したtidyverseの一部で、CSV等の長方形データセットを読み込む機能を提供します。 原文はMITライセンスですが、原文の権利はHadley Wickham氏と貢献者方にあります。翻訳文の…

C++&Win API NtQuerySystemInformation関数とSystemExtendedHandleInformation (0x40)でカーネルオブジェクトハンドルの一覧取得

公開された非公開関数NtQuerySystemInformationと非公開の定数SystemExtendedHandleInformation (0x40)を使うとカーネルオブジェクトハンドルの一覧を取得できます。固定長構造体のみなので前回投稿と比べれば遥かに扱いが楽です。なお、NtQuerySystemInform…

C++&Win API NtQueryObject関数とObjectTypesInformation (3)でカーネルオブジェクトの型名を列挙

NtQueryObject関数とObjectTypesInformation (3)で詰まったのでその概要と動作するコードを記録します。 詰まった点と解決策 NtQueryObject関数とObjectTypesInformation (3)を使うとPUBLIC_OBJECT_TYPE_INFORMATIONの個数とその配列を取得できます(以下、P…

WIL GitHub Wiki シャットダウン認識オブジェクトの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 シャットダウン認識オブジェクト(原題:Shutdown aware objec…

WIL GitHub Wiki ミューテックスハンドルの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiからミューテックスハンドルの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 ミューテックスハンドル(原題:Mu…

tidyverse関係の和訳記事

Posit SoftwareのHadley Wickham氏が提供する素晴らしいRパッケージ群tidyverseや関連パッケージの和訳記事へのリンク記事です。徐々に数を増やしていけたらうれしいです。 purrr 1.0.2 リファレンス(途中) purrr 1.0.2 記事「purrr <-> base R」 readr 2.…

R purrr 1.0.2 リファレンス 和訳・改変(途中)

Rのパッケージpurrr 1.0.2のリファレンス和訳です。purrrはHadley Wickham氏の作成した関数型プログラミングの素晴らしいパッケージで、base Rよりも一貫した方法、手軽な方法でデータを操作できます。 現状ではas_mapperまで翻訳できています。 添付文書の…

WIL GitHub Wiki ファイルシステムヘルパーの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 ファイルシステムヘルパー(原題:File System Helpers (files…

WIL GitHub Wiki ロックガードオブジェクトの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 ロックガードオブジェクト(原題:Lock guard object) Raymon…

WIL GitHub Wiki カーネルオブジェクトの待機の和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 カーネルオブジェクトの待機(原題:Waiting on kernel object…

C# ReSharper 2024.2.3はVisual Studioのコード分析+少々αだと感じた。

C#

浮動小数点計算やPEファイルの解析クラスを高速化しようとしてReSharperを導入してみました。 Trial版を30分ほど使った感想は以下の通りです。使用期間は30日ですが、既にアンインストールしたので項目は増えません。 WinFormsやWindows依存クラスライブラリ…

R purrr 1.0.2 記事「purrr <-> base R」の和訳・改変

Rのパッケージpurrr 1.0.2の添付文書和訳です。purrrはHadley Wickham氏の作成した関数型プログラミングの素晴らしいパッケージで、base Rよりも一貫した方法、手軽な方法でデータを操作できます。 この文書はpurrr 1.0.2のbase.Rmdの和訳及び改変です。 添…

C#&Windows ディレクトリの循環シンボリックリンクによるIOException

ディレクトリ中のファイルを列挙するプログラムで列挙後のコードが実行されずに悩んでいたのですが、原因は検索ディレクトリ以下に含まれる循環したディレクトリのシンボリックリンクとtry構文による例外の握りつぶしでした。 ディレクトリに循環したシンボ…

C# ビットフィールドは整数か構造体かクラスか

C#

C++では容量削減のためにビットフィールドが多用されました。これをC#でどのように表すべきか、答えのない問題に悩んでいます。 背景:C++のビットフィールド C++のビットフィールドは以下の形式で表されます。組み込み整数のビット演算の糖衣構文です。 // …

R conflicted 1.2.0添付文書の和訳・改変

Rのパッケージconflicted 1.2.0の添付文書和訳です。conflictedはHadley Wickham氏の作成した衝突回避の素晴らしいパッケージで、衝突の検出だけでなく優先順位指定も可能です。 添付文書のライセンスはMITライセンスですが、原文の権利はHadley Wickham氏と…

C# ImmutableArrayは配列のムーブで作成可能

C#

ImmutableCollectionsMarshal.AsImmutableArray<T>静的メソッドを使えば配列をラップするImmutableArray<T>を直接作成できます。配列のToImmutableArrayによる要素コピーを回避できます。C++のムーブに該当します。 なお、ImmutableCollectionsMarshalにはAsImmuta</t></t>…

JavaScript 文字列からShift-JISコード配列を取得するクラス

QiitaでTextDecoderを使ってShift-JISコードを取得する記事(McbeEringi氏)を見かけました。記事中のコードは理解できていないのですが、発想を参考にShift-JISコード配列を取得するクラスを作成しました。 // UnicodeコードポイントからShift-JISへの変換…

PowerShell 7 フォントディレクトリに含まれるファイルの拡張子一覧

フォントディレクトリはエクスプローラーでは特殊フォルダ(フォントフォルダ)扱いされて元のファイル名を表示できません。この仕様はシェルを介さないWindows APIにより回避できます。 PowerShell 7でのスクリプトは以下のようになります。スクリプトでは…