読者です 読者をやめる 読者になる 読者になる

備忘録

備忘録

C++

C++ で全ての例外を try catch 出来るようにする

Ⅰ. はじめに Visual Studioのデフォルト設定ではWindowsが発行する「システム的な例外」を捉えることはできません。 無効なメモリアドレスへのアクセス 0での割り算 等が「システム的な例外」に該当します。また、「『システム的な例外』をプログラム上で扱…

C++で複数プロセスから読み書き可能な共有メモリを作る

Ⅰ. はじめに あるプロセスのメモリ空間には他のプロセスからアクセスする事ができません。 OpenProcess してアクセス権を得てもメモリ上のどのアドレスに何のデータが保存されているか簡単に分かりません。 この問題は複数プロセスで共有して使えるメモリ空…

C++でShift-JIS, UTF-8, UTF-16 BOM有無とエンディアンを考慮してファイルの読み込みをする

C++

Ⅰ. はじめに タイトルの通り「C++でShift-JIS, UTF-8, UTF-16 BOM有無を考慮してファイルの読み込みをする」方法です。 参考のURLには重要な内容が含まれているので目を通してください。 Ⅱ. 環境 Visual Studio 2017 Windows 10 Pro 64 bit Version 1703 (Cr…

C++ ファイルを全て読み込む

C++

Ⅰ. はじめに STL を使ってファイルを全て読み込む(全行読み込む)方法です。※追記 C++でShift-JIS, UTF-8, UTF-16 BOM有無とエンディアンを考慮してファイルの読み込みをする - 備忘録 Ⅱ. サンプル test.txt aiueo Source.cpp #include <iostream> #include <fstream> using na</fstream></iostream>…

C#からC++(DLL)の関数を呼び出す

Ⅰ. はじめに C#からC++(DLL)の関数を呼び出す方法です。 いわゆる P/Invoke です。Win32 API の P/Invoke はこのサイトを利用してコピペしたほうが早いです。 http://www.pinvoke.net/ Ⅱ. サンプル dllexport.def EXPORTS GetInt GetIntArray GetString GetS…

C++ 高速にメモリサーチを行う方法

ある特定範囲の最初から最後までをサーチをする場合、 メモリを確保していない場所までサーチするため非常に遅くなります。VirtualQueryExを使うと、 メモリのアクセス状態などによって分岐を行えるため、 非常に高速にメモリサーチを行うことができます。 v…