Open-Source-Software-Entwicklung und Downloads
Anmeldename
Konto erstellen
Hilfe
MY OSDN
Finden Software
Magazine
Entwicklung
Pastebin
Software
Personen
PersonalForge
Magazine
Wiki
OSDN
>
Finden Software
>
Tera Term
Tera Term
Zusammenfassung
Projekt Zusammenfassung
Entwickler-Dashboard
Projekt-Bewertungen
Web-Seite
Entwickler
RSS Feed-Liste
Statistiken
Historie
Bildergalerie
Suche Schlüsselwörter
Neuigkeiten
News-Archiv
Hilfe
Downloads
Aller Releases-Liste
Hilfe
Quellcode
Guide
Browse CVS
Browse SVN
Hilfe
Wiki
Titelseite
Titel-Index
Kürzliche Änderungen
Wiki Suche
Hilfe
Text & Tabellen
List Docs
Hilfe
Foren
Forum-Liste
Offene Diskussion (173)
Hilfe (428)
Hilfe
Mailinglisten
Alle Mailinglisten
ttssh2-commit
ttssh2-dev
ttssh2-users
Hilfe
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Hilfe
Browse Subversion Repository
/
[ttssh2]
/
trunk
/
TTXSamples
/
TTXResizeWin
/
TTXResizeWin.c
Diff of /trunk/TTXSamples/TTXResizeWin/TTXResizeWin.c
Parent Directory
|
Revision Log
|
Patch
revision
108
by
doda
, Thu Feb 12 09:27:44 2009 UTC
revision
109
by
maya
, Tue Feb 17 13:53:56 2009 UTC
#
Line 6
Line 6
6
#include <stdio.h>
#include <stdio.h>
7
#include <string.h>
#include <string.h>
8
9
// VS2005でビルドされたバイナリが Windows95 でも起動できるようにするために、
10
// IsDebuggerPresent()のシンボル定義を追加する。
11
//
12
// cf.http://jet2.u-abel.net/program/tips/forceimp.htm
13
// 装飾された名前のアドレスを作るための仮定義
14
// (これだけでインポートを横取りしている)
15
EXTERN_C int WINAPI _imp__IsDebuggerPresent()
16
{ return PtrToInt((void*) &_imp__IsDebuggerPresent); }
17
// 実際に横取り処理を行う関数
18
EXTERN_C BOOL WINAPI Cover_IsDebuggerPresent()
19
{ return FALSE; }
20
// 関数が実際に呼び出されたときに備えて
21
// 横取り処理関数を呼び出させるための下準備
22
EXTERN_C void __stdcall DoCover_IsDebuggerPresent()
23
{
24
DWORD dw;
25
DWORD_PTR FAR* lpdw;
26
// 横取り関数を設定するアドレスを取得
27
lpdw = (DWORD_PTR FAR*) &_imp__IsDebuggerPresent;
28
// このアドレスを書き込めるように設定
29
// (同じプログラム内なので障害なく行える)
30
VirtualProtect(lpdw, sizeof(DWORD_PTR), PAGE_READWRITE, &dw);
31
// 横取り関数を設定
32
*lpdw = (DWORD_PTR)(FARPROC) Cover_IsDebuggerPresent;
33
// 読み書きの状態を元に戻す
34
VirtualProtect(lpdw, sizeof(DWORD_PTR), dw, NULL);
35
}
36
// アプリケーションが初期化される前に下準備を呼び出す
37
// ※ かなり早くに初期化したいときは、このコードを
38
// ファイルの末尾に書いて「#pragma init_seg(lib)」を、
39
// この変数宣言の手前に書きます。
40
// 初期化を急ぐ必要が無い場合は WinMain 内から
41
// DoCover_IsDebuggerPresent を呼び出して構いません。
42
EXTERN_C int s_DoCover_IsDebuggerPresent
43
= (int) (DoCover_IsDebuggerPresent(), 0);
44
45
#define ORDER 5800
#define ORDER 5800
46
#define ID_MENUITEM 55199
#define ID_MENUITEM 55199
47
Colored Diff
Long Colored Diff
Full Colored Diff
Unidiff
Context Diff
Side by Side
Legend:
Removed from v.108
changed lines
Added in v.109
Back to OSDN
">
Back to OSDN
ViewVC Help
Powered by
ViewVC 1.1.26