【C++】マイナーGUIツールキットat TECH
【C++】マイナーGUIツールキット - 暇つぶし2ch472:デフォルトの名無しさん
08/11/11 17:08:05
WindowsXP SP2のDEPでATLのThunkが問題になってたような気がするんだけど、
あれは何でなんだろ?

473:デフォルトの名無しさん
08/11/11 17:22:32
>>472
ウィルス等がバッファオーバーフローでヒープに不正コードを埋め込むことの対策として
ヒープのコードを実行できなくしたのがDEP。

ATLではサンクをHeapAlloc領域でやっていたため引っ掛かることになった。
今のATLはVirtualAllocでPAGE_EXECUTE_READWRITEで確保するため問題ない。

474:472
08/11/11 20:27:35
>>473
なるほど、わかりやすい説明サンクスです。

475:デフォルトの名無しさん
08/11/13 03:52:36
おまえら!
言いたいのをガマンしてるなら、代わり俺が言ってやるよ!
あくまでもおまえらの代弁だからな!俺が言いたいワケじゃないんだからな!





なるほど、わかりやすい説明Thunkです。

476:デフォルトの名無しさん
08/11/13 07:05:21
さみぃw

477:デフォルトの名無しさん
08/11/17 23:11:46
こんな方法どうやって勉強しました?

478:デフォルトの名無しさん
08/11/18 22:33:44
>>477
Windows 3.1の頃(15年前)からプログラム作ってたら嫌でも身に付く

479:デフォルトの名無しさん
08/11/19 18:52:55
class window
{
public:
 static window *m_this;
 static LRESULT CALLBACK StartWindowProc(HWND, UINT, WPARAM, LPARAM); //スタートアップ
 static LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM); //本命

 HWND SetHandle(HWND hwnd);//ウインドウハンドルを設定する
 void Create();//ここでクリティカルセクションを設定してCreateWindowを呼ぶ
}

window *m_this;

LRESULT CALLBACK window::StartWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
 window *pThis = window::m_this;
 window::m_this = NULL;
 //ここでクリティカルセクションを取り除く
 ::SetProp(hwnd, _T("THISCLASS"), (HANDLE)pThis);
 pThis->SetHandle(hwnd);
 ::SetWindowLongPtr(hwnd, GWL_WNDPROC, (LONG)window::WindowProc);
 return window::WindowProc(hwnd, msg, wParam, lParam);
}

かなりふざけた方法だけど...
俺はこんな感じでやってる...


480:デフォルトの名無しさん
08/12/01 20:53:23
何となく、自分も昔作ったGUIを晒してみようとサンプル動かしてみたら、
リストビューを拡張して作ろうとしたらしいGridViewがいきなりバグってた。
出直してきます。orz


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch