potisanのプログラミングメモ

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

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

C++20&WinAPI PEファイルのバージョン情報を取得する

Ver系関数を使ってPEファイルのバージョン情報を取得するサンプルコードです。ひっそりとstd::format(実質fmt)を使用しています。 #include <format> #include <string> #include <span> #include <unordered_map> #include <vector> #define STRICT #define NOMINMAX #include <Windows.h> #pragma comment(lib, "v</windows.h></vector></unordered_map></span></string></format>…

R&tidyverse ベクトルから開始位置をずらした2つの等長ベクトルを作成して関数を呼び出す

R

ベクトルから開始位置をずらした等長のベクトルを作成して関数を呼び出すコードです。dplyr (tidyverse)を使用しています。 require(dplyr) # ベクトルのstart個めとそこからdiff個ずらした2個の配列のデータフレームを返します。 vec_shifted_tibble <- fun…

R 引数の既定値(省略時の値)を操作する

R

本文 formula()で引数の既定値(省略時の値)を取得・設定できます。 # リスト形式で取得される。 str(formals(paste)) # Dotted pair list of 4 # $ ... : symbol # $ sep : chr " " # $ collapse: NULL # $ recycle0: logi FALSE # <-で代入すると設定でき…

C++&WinAPI CLSID_QuickLinksに対するIDeskBand::GetBandInfoが必ず失敗する

以下のコードの(☆)が不正なメモリアクセス(アドレス0の操作)で確実に失敗します。原因は不明です。 先に実行しているIDeskBand::GetWindowはE_FAILを返すので、こちらで判別は可能かもしれません。 #define STRICT #define NOMINMAX #define WIN32_LEAN_AN…

Windows&Sysinternals コマンドプロンプトでshell32.dllの文字列を抜き出す

実行に必要なstrings64 (Sysinternals)はMicrosoftからダウンロードできます。 7文字以上のANSI/Unicode文字列を抜き出す。 SET STRINGS64_PATH="<string64のインストールディレクトリ>\strings64" %STRINGS64_PATH% -a -u -nobanner %windir%\system32\shell32.dll | findstr ".......*"</string64のインストールディレクトリ>