potisanのプログラミングメモ

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

2014-05-01から1ヶ月間の記事一覧

C# Win32 APIを使ってバイトの単位を変換する

C#でWin APIのShell Lightweight Utility Functionsを用いてバイトの単位を変換する補助関数のコードです。拡張メソッドとして定義していますが、thisを外せば関数として利用することもできます。this UInt64 value等のUInt64部分を変更することで対応する型…

C++17&WinAPI 64ビットPEファイルのデータディレクトリの物理アドレスを取得する

ベタ書きですが、C++で64ビットPEファイルの各種ヘッダーとデータディレクトリの物理アドレスを取得するサンプルです。 IMAGE_OPTIONAL_HEADERのDataDirectory[]に含まれるIMAGE_DATA_DIRECTORYの実体はIMAGE_SECTION_HEADERの指す各セクションに含まれてお…

C# MemoryMappedViewAccessorとMarshalを組み合わせた小物関数

追記20241011:現在のC#ではstackalloc、Span、MemoryMarshalを使ってアンマネージな型(該当する構造体含む)はスタック上で読み込めます。クラスの場合はMarshal.PtrToStructureが必要ですが、高速化する場合は使い分けた方が良いかもしれません。 メモリマ…