, . , . , . , . , , .
, 3, , . . , , . , .
() , . , . , .
, , : , , , . , , , . , , . , , - , .
, . , . , , , , .
, . , (master sources). . , . . , , . , , .
, , , . , , . .
() . , , , , . (, , ),
. , - , , ? , , .
, , . - . , , , . , - , (Steve Munyan) , . , , (" "). , .
, "" . , . . . , , , , . , - . , , "" , . . , .
, . , , " " (read-only) , . : " , ". .
. , , , . , , . , , , :
, , (label command). Microsoft Visual SourceSafe "label" (), MKS Source Integrity (checkpoint), PVCS Version Manager (version label). , , , , , . . , , , , , .
, , :
1. .
2. , - .
3. :
<-> </> <>
. , ( ) .
. , , . , , , .
, , ?
-, , - . , , (final output). , , .
, , , , . , .
, (bug-tracking system) , . , . , , , . , , , . , , , , , . , . , .
. , , , . , , .
. ,
, . , .
(BTS) , , , . , , . , , , ( , ) . , , . , , . , , . , , . , .
(). , , . , , , . , Microsoft Windows, . , , , . , , . , , , .
, , , . , , .
, . , , , . , , , . , , . Windows Microsoft Source-Code Control Interface (SCCI). SCCI, .
. , . . !
, . , ( 9), , , , . , .
. , . . ( , ), : , setjmp/longjmp , errno . .
, - , Windows . , Component Object Model (COM ), . , -, , ++- . ++ - , ( -).
. , : (builds) , (), . , , . () .
, . , , , , , , . , , : , ( ). , . .
() . Microsoft Visual Basic Compile Project Properties Create Symbolic Debug Info. Microsoft Visual C++ . (CL.EXE) OBJ--. Project Settings Win32 Release Settings For, . C/C++ General Category Debug Info Program Database. /zi . , Program Database For Edit And Continue (/ZI) , .
Visual C++ LINK.EXE. Release Win32 Settings For, Link General Category Generate Debug Info. (/DEBUG) , . /OPT:REF Project Options Link. /DEBUG ( , ), . /OPT:REF , . , , , .
, (reverse engineering) , , , . Program Database (PDB), PDB-, . " , .
PDB-, PDB- , . PDB- . PDB- .
Visual Basic , C++, , , . , - , "Hello, World!", C++ , . Visual Basic, Visual C++ , . , 2037 ("left of 'operator' specifies undefined struct/union 'identifier1 " '' '' struct/union"), , . Visual C++ Visual Basic , ( ) .
, , , , . 4244 ("'conversion' conversion from 'typel' to 'type2', possible loss of data" '"1 ' '2', "), . , , , , , , , .
, , , , , , , C++. Visual C++ , , , , . . , , .
, Visual C++, 3- , / CL.EXE. 4 ( /W4), ( /). Project Settings (Integrated Development Environment IDE) Visual C++. Warning Level C/C++, General Category, /wx Warnings As Errors, Warning Level.
: " 4, ", . -, /w /w4. , , /w . (Standard Template Library STL), Visual C++, 4- . . , , .
, 4 , , . , Build1. , , , , , . , . , #pragma warning, , , .
, 4- . #pragma warning, Visual C++ 6, . , 4:
#pragma warning ( push, 3)
#include "IDoNotCompileAtWarning4.h"
#pragma warning ( pop)
#pragma warning . , 4201 ("nonstandard extension used: nameless struct/union" " : /") 4. , #pragma warning, . , . , , #pragma warning . , .
//
// "nonstandard extension used: nameless struct/union"
//
tpragma warning ( disable : 4201)
struct S
{
float y;
struct
Build Build . .
{
int a;
int b;
int c;
};.
} *p_s;
// .
#pragma warning ( default : 4201)
STL , , , , . #pragma warning ( push, 3), STL-, 4- . , , , 4- , . , "" . 3. , , "Warnings As Errors" ( /wx).
, , . , , , . . , . , , /W4 /wx , : - .
, (. . ), .
(DLL) ActiveX (OCX), , . , DLL, . , DLL, , , DLL .
DLL , , . , , , DLL ? , DLL . DLL, , . , , DLL . , , . , , , .
, , , Visual Basic DLL- 0x11000000, a Visual C++ 0x10000000. , DLL- . DLL (rebasing), , , .
, , DLL. Output Visual C++, DLL. , (), .
LDR: Dll xxx base 10000000 relocated due to collision with yyy
(LDR: Dll xxx 10000000 - yyy)
xxx yyy DLL-, .
, DLL, . DLL, , DLL, , DLL , , . , ( !
DLL- . REBASE.EXE, Platform SDK. REBASE.EXE (), /b, DLL-.
, . 2.1, Platform SDK DLL. , . 0x70000000 0x78000000, 2.1 .
2.1. DLL
DLL- |
|
- |
0x60000000 |
D-F |
0x61000000 |
G-I |
0x62000000 |
J-L |
0x63000000 |
- |
0x64000000 |
P-R |
0x65000000 |
S-U |
0x66000000 |
V-X |
0x67000000 |
Y-Z |
0x68000000 |
DLL-: APPLE.DLL, DUMPLING.DLL, GINGER.DLL GOOSEBERRIES.DLL, , DLL-, REBASE.EXE . , REBASE.EXE DLL:
REBASE /b 0x60000000 APPLE.DLL
REBASE /b 0x61000000 DUMPLING.DLL
REBASE /b 0x62000000 GINGER.DLL GOOSEBERRIES.DLL
DLL- REBASE.EXE , GINGER.DLL GOOSEBERRIES.DLL, REBASE.EXE , , .
DLL DLL. IDE Visual Basic DLL Base Address Compile Project Properties. Visual C++ Base Address, Link Project Settings Output Category. Visual C++ , Base Address /BASE LINK.EXE.
REBASE.EXE DLL. . DLL- , Ouput . , ( , ).
DLL-, REBASE.EXE, :
APPLE.DLL 0x60000000
DUMPLING.DLL. 0x61000000
GINGER.DLL 0x62000000
GOOSEBERRIES.DLL 0x62100000
GINGER.DLL GOOSEBERRIES.DLL - , . , . DLL-, "G", 0x62200000.
, , WDBG "WDBG: " 4. /BASE , DLL ( WDBG).
DLL- OCX- , REBASE.EXE, , DLL- . DLL- - . , - . - , , . - , , .
- () . , ( , /MAP ) .MAP. , - 8.
- , , . DLL REBASE.EXE, -, , , , - . 8 - .
, . : - , . , .
?
() . , Visual C++ , . .
() CL.EXE
Project Options C/C++ Project Settings.
IP ( )
, / , , include- , .1. , , -. , , - . , / ( /), #line, . #line , .
/X ( )
, SDK. , - INCLUDE. , /, INCLUDE , /I.
/Zp ( )
. , , ttpragma pack . , , /Zp. , .
/GZ ( )
Visual C++ 6 , . , . (wild reads), (wild writes) , , . , , , .
, /GZ , ( DLL-) , . , . , , _stdcall, _cdecl. - , , .
/1 ( )
, AppWizard Microsoft Foundation Class (MFC), /02 ( ) . Microsoft /01, . Microsoft , 1 .
, (4 Intel x86) . , CPU. "" (. . ), , , , .
(page fault) - (, , , ). .
"", . , "" , . , , , , , . - , - .
/01, Working Set Tuner (WST) Platform SDK. WST , ( , ). . , . WST, . "Bugslayer" (1999) Microsoft Systems Journal MSDN.
() LINK.EXE
Project
Options Link Project Settings.
/MAP ( -)
/MAPINFO:LINES ( -)
/MAPINFO:EXPORTS ( -)
- . -, . , , - .
/NODEFAULTLIB (ignore libraries)
#pragma comment (lib#, xxx), , , . /NODEFAULTLIB , pragma. , . , , , . , , , , , .
/ORDER ( )
WST, /ORDER , . /ORDER - , .
/PDBTYPE:CON ( PDB-)
/PDBTYPEICON ( , ). Visual C++
. /PDBTYPE:CON PDB-. PDB- , .
/VERBOSE ( )
/VERBOSE:LIB ( )
, , . , , , . /VERBOSE /VERBOSE : LIB, - , ( ) - , , . , , , , .
/WARN:3
- , , . /WARN:3, , , LINK.EXE. , , , .
, . , - , . " " , . , . , , . , , .
, . , . , .
. . , Peri-, .
( ), , , , . . , , , " 23 ...", . , : "Preparing to open D:\Foo BAR.DAT" ( D:\Foo\BAR.DAT), BAR.DAT .
, . , . , , .
C++ ( , G_isLogging , ). .
//Visual C++
#define LOGGING(x) \
if ( TRUE == G_IsLogging) \
{ \
Logginglnfo ( x); \
}
Visual Basic, , . IDE Visual Basic, , , .
Visual Basic.
i£ ( 1 = G_IsLogging) Then
Logginglnfo ( " " & sFile)
End If
. , . , . , . , , . .
(build system) (smoke-tests) , , smoke- , , .
, . , , . , , .
, . , . . , , , , . , , , , .
. , , , , , ; , , .
, . , , . , , . , - , (upgrade) .
(master sources) , ( , ). , , , , . , . , (master build) (local build) . , , , . , , .
(upgrade) ?
( beta 1), . , , , . , beta 1, , .
, smoke- ("" ) , . . - , , (). , , , . , smoke- , , . Smoke- .
Smoke- , . : , . smoke- . smoke- . (ITshop) , (1) . , smoke- , , , . smoke-, , ( ) .
smoke- 2. , . , , , , 10 , . , , , . , , - .
smoke- , , , - . , , (regression-testing tool). , . , , - smoke-, . 2.
IO . Chief Information Officer ( , ). .
, . .
, , 13.
smoke- , . , smoke-, . . smoke- , . smoke- , . , smoke-.
, . , . , , . , . , smoke-.
, . , . , , , .
, , , , , , .
, , , . , .
. . alpha- , , . beta 1, ( ) . beta 2, , . - (release candidate) .
, . smoke-.
, , , . . , .
10.11.2021 - 12:37: - Personalias -> WHO IS WHO - - _. 10.11.2021 - 12:36: - Conscience -> . ? - _. 10.11.2021 - 12:36: , , - Upbringing, Inlightening, Education -> ... - _. 10.11.2021 - 12:35: - Ecology -> - _. 10.11.2021 - 12:34: , - War, Politics and Science -> - _. 10.11.2021 - 12:34: , - War, Politics and Science -> . - _. 10.11.2021 - 12:34: , , - Upbringing, Inlightening, Education -> , - _. 10.11.2021 - 09:18: - New Technologies -> , 5G- - _. 10.11.2021 - 09:18: - Ecology -> - _. 10.11.2021 - 09:16: - Ecology -> - _. 10.11.2021 - 09:15: , , - Upbringing, Inlightening, Education -> - _. 10.11.2021 - 09:13: , , - Upbringing, Inlightening, Education -> - _. |