タグ: Windows開発
-
COM コンポーネントや OCX / ActiveX 開発でハマりがちなこと - Visual Studio の 32bit / 64bit、登録、管理者権限の罠を整理
COM コンポーネント、OCX、ActiveX 開発でハマりやすい 32bit / 64bit、Visual Studio 2022 の 64bit 化、regsvr32 / Regasm、管理者権限、HKCR / HKCU / HKLM、STA / MTA まで実務目線で整理します。
-
ClickOnce とは何か - 仕組み、更新、向いている場面・向いていない場面を実務目線で整理
.NET の Windows デスクトップアプリ配布で使われる ClickOnce について、マニフェスト、更新、キャッシュ、署名、向いている案件・向いていない案件を Mermaid 図つきで整理します。
-
Windows サンドボックスで Windows アプリ開発の検証を速くする方法 - 管理者権限問題、クリーン環境、権限不足・リソース不足の再現を実務向けに整理
Windows Sandbox を使って、管理者権限の問題の切り分け、クリーン環境での再現、権限不足・リソース不足の再現を効率化する方法を、.wsb と CLI の使い分けまで含めて整理します。
-
自動アップデート機能のセキュリティ基本 - ダメなパターンとベストプラクティス
自動アップデートを便利機能ではなく信頼境界として扱うために、HTTPS だけで守れない理由、signed metadata、クライアント側検証、鍵分離、rollback と fail-closed、Windows で既存基盤を優先する考え方を整理します。
-
どこまでをユニットテストで検証し、どこからを結合テストで検証するべきなのか - 境界の引き方と実務の判断表
ユニットテストと結合テストの境界を、純粋ロジック・フォーマット・配線・環境差・時間依存の観点から整理し、実務で迷いにくい判断表としてまとめます。
-
Windows での DLL の名前解決の仕組み - 検索順序、Known DLLs、API set、SxS を実務向けに整理
Windows の DLL 名前解決を、DLL search order、Known DLLs、loaded-module list、API set、SxS manifest、LoadLibrary 系 API の影響まで実務向けに整理します。
-
Windows の管理者特権が必要になるのはいつなのか - UAC、保護領域、設計上の見分け方
Windows で管理者特権が必要になる場面を、UAC、保護領域、サービス、ドライバ、per-user/per-machine 設計の観点から実務向けに整理します。
-
VBA とは何か - 制約、将来性、置き換えるべき場面と現実的な移行パターン
VBA の基本、制約、今後の見通し、置き換えるべきケース、段階移行の進め方を実務目線で整理します。
-
シリアル通信アプリの落とし穴 - 1 byte 単位、タイムアウト、フロー制御、再接続、USB 変換、UI フリーズを先に整理
装置連携や計測器制御で避けたいシリアル通信アプリの落とし穴を、フレーミング、タイムアウト、RTS/CTS、DTR/RTS、再接続、ログ設計まで実務目線で整理します。
-
Windows アプリがプログラムミスによる例外で落ちても確実にログを残すには - in-process に賭けない設計と WER / 最終ログ / 監視プロセスのベストプラクティス
Windows アプリが想定外例外やプログラムミスで落ちても、あとから原因を追える証跡を残すために、通常ログ、最終クラッシュマーカー、WER LocalDumps、監視プロセスをどう組み合わせるべきかを整理します。
-
Windows アプリにおける UX 設計の考え方 - ToC / ToB / 監視 / 現場端末 / 常駐ツールで何を優先するかの判断表
Windows アプリの UX 設計で何を優先するべきかを、ToC / ToB、入力方式、利用環境、誤操作コストごとの判断表として整理します。
-
Windows Forms、WPF、WinUI のどれにするか - 新規開発、既存資産、配布、UI 表現の判断表
WinForms、WPF、WinUI のどれを選ぶべきかを、新規開発、既存資産、配布、UI 表現、チーム体制の観点から整理します。
-
共有メモリを使うときの落とし穴とベストプラクティス - 同期、可視性、寿命、ABI、セキュリティを先に整理
共有メモリを実務で使うときの落とし穴と、同期、可視性、寿命、ABI、権限まで含めた事故率を下げる設計を整理します。
-
Reg-Free COM とは何か - 登録不要で COM を使う仕組みと、向いている場面・向いていない場面
Reg-Free COM の基本、アクティベーション コンテキストとマニフェストの役割、メリット、限界、実務での判断軸を整理します。
-
Excel 帳票出力をどう作るか - COM 自動化 / Open XML / テンプレート方式の判断表
Excel 帳票出力は、Excel を自動操作するのか、xlsx を直接生成するのか、既存 VBA を残すのかで設計がかなり変わります。Windows アプリや業務システムでの帳票出力を前提に、方式選定の基準とおすすめ構成を整理します。
-
Media Foundation で MP4 動画の各フレームに画像と文字を焼き込む方法 - Source Reader / 描画 / 色変換 / Sink Writer の整理と .cpp にそのまま貼れる 1 ファイル完結版
Media Foundation で MP4 動画の各フレームへ画像と文字を焼き込み、新しい MP4 を作る考え方を、Source Reader、描画、色変換、Sink Writer の分担と 1 ファイル完結の C++ サンプルで整理します。
-
Windows アプリのクラッシュダンプ収集入門 - まず WER / ProcDump / WinDbg をどう使い分けるか
Windows アプリで再現しにくいクラッシュを追うときに、WER LocalDumps、ProcDump、MiniDumpWriteDump をどう使い分けるかを入門向けに整理します。ミニダンプとフルダンプの選び方、運用上の注意点、WinDbg で最初に見るポイントまでまとめます。
-
Windows でタイマー待機よりイベント待機を優先する理由 - 約15.6ms 粒度のポーリングを避ける
Windows では短い timed wait の精度は system clock の粒度とスケジューリングの影響を受けます。仕事の到着や I/O 完了、停止要求を待つなら、一定時間ごとのポーリングではなくイベント駆動にするべき理由を整理します。
-
想定していない例外が起きたときのチェックリスト - アプリを終了させるべきか継続すべきか、まず見る判断表
想定していない例外が起きたときに、アプリを終了させるべきか継続すべきかを、状態破壊・外部副作用・スレッド・ネイティブ境界の観点から整理します。
-
Windowsアプリで「管理者権限が必要な処理だけ」を分離する具体的な書き方
Windows アプリで UI を asInvoker のまま保ちつつ、管理者権限が必要な処理だけを helper EXE に分離する設計を、UAC、runas、名前付きパイプ、入力検証まで含めて具体的に整理します。
-
Windowsアプリで設定ファイルに平文で機密情報を保存しないためのベストプラクティス
Windows アプリで接続情報や API トークンを設定ファイルに平文保存しないために、DPAPI / ProtectedData の考え方、CurrentUser と LocalMachine の違い、実装時の注意点を整理します。
-
.NET Framework を .NET に移行する前に確認するべきこと - 着手前で勝負が決まる実践チェックリスト
.NET Framework から .NET へ移行する前に確認しておくべきポイントを実務目線で整理します。プロジェクト種別、移行できない技術、NuGet 依存関係、PackageReference、SDK スタイル、ASP.NET / WPF / WinForms / WCF / EF6、設定ファイル、CI/C...
-
Media Foundation で YUV フレームを RGB に変換する方法 - Source Reader の自動変換と自前変換を原理から整理
Media Foundation で YUV 形式の動画フレームを RGB に変換する方法を整理します。Source Reader に RGB32 へ自動変換させる方法と、NV12 / YUY2 を自分で RGB へ変換する方法を、色空間・サブサンプリング・stride の観点から解説します。
-
Windows における NIC の詳細設定をまとめて整理 - ジャンボパケット、RSS、LSO、RSC、フロー制御、EEE、Wake on LAN まで
Windows の NIC 詳細設定を実務目線で整理します。Jumbo Packet、Speed & Duplex、RSS、RSC、LSO、Flow Control、EEE、Wake on LAN など、設定を変えると何が変わるかをまとめます。
-
Media Foundation で MP4 動画の指定時刻から静止画を取り出す方法 - .cpp にそのまま貼れる 1 ファイル完結版
Media Foundation の Source Reader を使って、MP4 から指定時刻に最も近いフレームを取り出し、PNG として保存する方法を解説します。記事の最後に、Visual Studio の C++ コンソールアプリの .cpp にそのまま貼れる 1 ファイル完結コードを載せています。
-
Windowsアプリ開発における最低限のセキュリティを守るためのチェックリスト
WPF / WinForms / WinUI / C++ / C# の Windows アプリ開発で、最低限外したくないセキュリティ項目をチェックリスト形式で整理します。
-
COM / ActiveX / OCX とは何か - 違いと関係をまとめて解説
COMとは何か、ActiveXとは何か、OCXとは何かを、違いと関係、OLEとのつながり、どこで使われるのか、今どう捉えるべきかまで実務目線で整理します。
-
Generic Host / BackgroundService をデスクトップアプリに持ち込む理由 - 起動・寿命・graceful shutdown の整理がかなり楽になる
Windows ツールや常駐系アプリで、起動処理、定期処理、終了処理、ログ、設定、依存関係が散らばり始めたら、.NET Generic Host と BackgroundService を持ち込む価値があります。起動と lifetime を整理し、graceful shutdown とバックグラウンド処理を管理し...
-
ActiveX / OCX を今どう扱うか - 残す・包む・置き換える判断表
ActiveX / OCX を見つけたときに、残す・包む・置き換えるのどれを選ぶべきかを、32bit / 64bit、登録、ブラウザ依存、ベンダー保守まで含めて整理します。
-
C# を Native AOT でネイティブ DLL にする方法 - UnmanagedCallersOnly で C/C++ から呼び出す
C# のクラスライブラリを Native AOT でネイティブ DLL として発行し、UnmanagedCallersOnly のエントリポイントを C/C++ から呼び出す構成を、使いどころと実装パターンと注意点から整理します。
-
産業用カメラ制御アプリが1か月後に突然落ちるとき(後編) - Application Verifier とは何かと異常系テスト基盤の作り方
Application Verifier とは何かを、Handles、Heaps、Low Resource Simulation、!htrace を使った Windows の異常系テスト基盤づくりとあわせて整理します。
-
産業用カメラ制御アプリが1か月後に突然落ちるとき(前編) - ハンドルリークの見つけ方と長期稼働向けログ設計
Windows アプリが長時間運転後に突然落ちるときの見方を、産業用カメラ制御アプリの事例を使って、ハンドルリークの見つけ方とログ設計の観点から整理します。
-
TCP 再送で産業用カメラ通信が数秒止まるとき - RFC1323 タイムスタンプと再送待ちの切り分け
TCP 再送で産業用カメラ通信が数秒停止するときの切り分け方を、パケットロス、RTO、RFC1323 タイムスタンプ、Wireshark の確認ポイントとあわせて整理します。
-
FileSystemWatcher の使い方と注意点 - 取りこぼし、重複通知、完了判定の落とし穴
FileSystemWatcher の使い方と注意点を、取りこぼし、重複通知、完了判定の落とし穴、再スキャン、原子的 claim、idempotency の観点から整理します。
-
Media Foundation とは何か - COM と Windows メディア API の顔が見えてくる理由
Media Foundation とは何かを、COM、HRESULT、IMFSourceReader、MFT など Windows メディア API の基本用語とあわせて、最初に押さえる順番で整理します。
-
Windows ソフトリアルタイムの実践ガイド - 遅延を減らすためのチェックリスト
Windows ソフトリアルタイムを実現するために、タイマ、待機方法、優先度、電源設定、計測、キュー設計をどう見直すかをチェックリスト形式で整理します。
-
ファイル連携の排他制御の基礎知識 - ファイルロックと原子的 claim のベストプラクティス
ファイル連携の排他制御を、ファイルロック、原子的 claim、temp -> rename、idempotency の観点から整理し、共有フォルダ連携で事故を避ける設計をまとめます。
-
C# からネイティブ DLL を使うなら C++/CLI ラッパーが有力な理由 - P/Invoke と比較して整理
C# からネイティブ DLL を呼び出すときに、P/Invoke で十分なケースと C++/CLI ラッパーが有力になるケースを、所有権や例外、C++ 型の扱いまで含めて整理します。
-
COM STA/MTA の基礎知識 - スレッドモデルとハングを避ける考え方
COM STA/MTA の基礎知識を、Apartment Model、UI スレッド、メッセージループ、マーシャリング、ハングを避ける考え方まで含めて整理します。
-
32bit アプリから 64bit DLL を呼び出す方法 - COM ブリッジが役立つケーススタディ
32bit アプリから 64bit DLL を直接呼び出せないときに、COM ブリッジで連携する考え方を、Windows の制約、構成、処理の流れとあわせて整理します。
-
COM とは何か - Windows COM の設計が今でも美しい理由
COM とは何かを、Windows COM のインターフェース設計、IUnknown、GUID、バイナリ互換性の観点から整理し、今でも通用する理由を解説します。