Windows 2000/XPで絶対に死ぬコード
thread_local std::string s; extern "C" __declspec(dllexport) void fun(HWND hwnd,HINSTANCE hi,char *xx,int vv) { s = xx; std::cout << s << std::endl; MessageBoxA(hwnd,"test",xx,0); } BOOL APIENTRY DllMain |
何の変哲もないDLLなのですが、Windows XPや 2000で rundll32 filename.dll,fun
を呼び出すとクラッシュします
メモリ ロケーションのアクセスが無効です。
拡張カーネル v3.1hでは小細工して動くようにしてみました ・ω・
Comments