Develop and Download Open Source Software
Login
Create Account
Help
MY OSDN
Find Software
Magazine
Develop
Pastebin
Software
People
PersonalForge
Magazine
Wiki
OSDN
>
Find Software
>
Tera Term
Tera Term
Summary
Project Summary
Developer Dashboard
Project Reviews
Web Page
Developers
List of RSS Feeds
Statistics
History
Image Gallery
Search Keywords
News
Listed News
Help
Downloads
List of Releases
Help
Source Code
Guide
Browse CVS
Browse SVN
Help
Wiki
FrontPage
Title index
Recent changes
Wiki Search
Help
Docs
List Docs
Help
Forums
List of Forums
Open Discussion (173)
Help (428)
Help
Mailing Lists
list of ML
ttssh2-commit
ttssh2-dev
ttssh2-users
Help
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Help
Browse Subversion Repository
/
[ttssh2]
/
trunk
/
teraterm
/
ttpset
/
ttset.c
Diff of /trunk/teraterm/ttpset/ttset.c
Parent Directory
|
Revision Log
|
Patch
revision
2663
by
maya
, Wed Feb 18 15:20:25 2009 UTC
revision
2664
by
maya
, Fri Feb 20 04:45:31 2009 UTC
#
Line 16
Line 16
16
#include "ttlib.h"
#include "ttlib.h"
17
#include "tt_res.h"
#include "tt_res.h"
18
19
// VS2005でビルドされたバイナリが Windows95 でも起動できるようにするために、
#include "compat_w95.h"
// IsDebuggerPresent()のシンボル定義を追加する。
//
// cf.http://jet2.u-abel.net/program/tips/forceimp.htm
// 装飾された名前のアドレスを作るための仮定義
// (これだけでインポートを横取りしている)
int WINAPI _imp__IsDebuggerPresent()
{ return PtrToInt((void*) &_imp__IsDebuggerPresent); }
// 実際に横取り処理を行う関数
BOOL WINAPI Cover_IsDebuggerPresent()
{ return FALSE; }
// 関数が実際に呼び出されたときに備えて
// 横取り処理関数を呼び出させるための下準備
void __stdcall DoCover_IsDebuggerPresent()
{
DWORD dw;
DWORD_PTR FAR* lpdw;
// 横取り関数を設定するアドレスを取得
lpdw = (DWORD_PTR FAR*) &_imp__IsDebuggerPresent;
// このアドレスを書き込めるように設定
// (同じプログラム内なので障害なく行える)
VirtualProtect(lpdw, sizeof(DWORD_PTR), PAGE_READWRITE, &dw);
// 横取り関数を設定
*lpdw = (DWORD_PTR)(FARPROC) Cover_IsDebuggerPresent;
// 読み書きの状態を元に戻す
VirtualProtect(lpdw, sizeof(DWORD_PTR), dw, NULL);
}
// アプリケーションが初期化される前に下準備を呼び出す
// ※ かなり早くに初期化したいときは、このコードを
// ファイルの末尾に書いて「#pragma init_seg(lib)」を、
// この変数宣言の手前に書きます。
// 初期化を急ぐ必要が無い場合は WinMain 内から
// DoCover_IsDebuggerPresent を呼び出して構いません。
#if 0
/* C言語では以下のコードは、コンパイルエラーとなるので、DllMain から呼ぶ。*/
int s_DoCover_IsDebuggerPresent
= (int) (DoCover_IsDebuggerPresent(), 0);
#endif
20
21
#define Section "Tera Term"
#define Section "Tera Term"
22
Colored Diff
Long Colored Diff
Full Colored Diff
Unidiff
Context Diff
Side by Side
Legend:
Removed from v.2663
changed lines
Added in v.2664
Back to OSDN
">
Back to OSDN
ViewVC Help
Powered by
ViewVC 1.1.26