タグ

patchとc++に関するmanabouのブックマーク (2)

  • GitHub - i-saint/DynamicPatcher: Runtime C++ Editing

    #include <windows.h> // Sleep() #include <cstdio> #include "DynamicPatcher.h" // dpPatch をつけておくとロード時に同名の関数を自動的に更新する。 // (dpPatch は単なる dllexport。.obj に情報が残るいい指定方法が他に見当たらなかったので仕方なく…。 // この自動ロードは dpInitialize() のオプションで切ることも可能) dpPatch void MaybeOverridden() { // ここを書き換えるとリアルタイムに挙動が変わる puts("MaybeOverridden()\n"); } // CRT の関数を差し替える例。今回の犠牲者は puts() int puts_hook(const char *s) { typedef int (*puts_t)(

    GitHub - i-saint/DynamicPatcher: Runtime C++ Editing
  • DynamicPatcher - Runtime C++ Editing - primitive: blog

    [2013/12/25 追記] この DynamicPatcher をさらに改良し、Visual Studio のアドインとして実装した Alcantarea をリリースしました DynamicObjLoader を改良し、実用に耐えそうな実行時 C++ コード編集機能を実装しました。 C++ コードを編集してそれをリアルタイムに反映させることができます。 DynamicPatcher https://github.com/i-saint/DynamicPatcher (bin) DynamicObjLoader の時点で一応は同等機能を実現していたのですが、更新したい関数を事前にマクロで包む必要があったり、virtual 関数を持つ class はシリアライズが必要だったりと、運用上色々面倒な点がありました。 今回はそのへんが大きく改良されています。 ・前準備なしに既存のほぼ全ての関数を

    DynamicPatcher - Runtime C++ Editing - primitive: blog
  • 1