Click here to Skip to main content
15,898,938 members
Home / Discussions / Article Writing
   

Article Writing

 
GeneralE-mail Addresses Pin
Steve Thresher12-Sep-00 6:12
Steve Thresher12-Sep-00 6:12 
Generaljava and jni Pin
pprasadravi12-Sep-00 2:48
pprasadravi12-Sep-00 2:48 
Generalclipboard copy with website Pin
Tim Zagelow11-Sep-00 12:44
Tim Zagelow11-Sep-00 12:44 
GeneralUser interface like MS Money Pin
pankaj8-Sep-00 21:10
pankaj8-Sep-00 21:10 
GeneralSpy++ like Finder Tool Pin
Steve6-Sep-00 23:15
Steve6-Sep-00 23:15 
GeneralA working Cookie Munger Pin
Stefan5-Sep-00 1:41
Stefan5-Sep-00 1:41 
GeneralEXE/DLL size Pin
dyeshurun3-Sep-00 20:16
dyeshurun3-Sep-00 20:16 
GeneralRe: EXE/DLL size Pin
Stober27-Sep-00 16:34
Stober27-Sep-00 16:34 
Lots of reasons your exe/dll may be verrrry big. One major reason is that you may be compiling for Debug. Another
major reason is that MFC bloats your program.


Here is an exert from a map file I just created for my project. In order to understand the map file you need to
also understand a little about assembly language and how the linker puts program object/library files together.

Your program is divided into two parts (or segments) -- CODE and DATA. The CODE segment contains all the program
instructions that you write in your program as well as all statically-linked libraries and object modules. The DATA segment
contains all global and static data objects. Data objects you put as members of a class go into DATA segments, while
the code for the methods of the class go into the CODE segment. As you can see from the map file I show below, there
can be more than one DATA and more than one CODE segments. The term "segments" I use here does not mean the same
in the Win32 environment as it did in the old 16-bit Win3.1 and DOS environments. In Win32, there is really only one segment
defined in the computer -- thus the name "flat memory model". If you have 128 meg RAM in your computer, Win32 allocates all of
it to one gigantic segment, then partials it out as CODE or DATA to various processes and threads. For more in-depth and more
accurate details you need to read several large books or get yourself a Ph.D in computer science.



The last part of the map file shows the size of each public symbol (functions and data objects) that is statically linked into
your exe/dll. The names are "mangled" mainly because of the C++ capability to have two or more methods
with the same name within either two different classes or within the same class. Each compiler vendor (Microsoft and Borland for example)
have different alrogithms for producing mangled names, and the map files will reflect this difference. For MSVC, the mangled name
consists of the original name you gave it in your class plus the names of the arguments and some additional funny-looking
characters.


About the only useful thing I have seen the map file used for is to figure out what function a program is crashing
in. It doesn't say a thing about where the real bug is, but only where the bug got so bad that the program
eventually failed.

Hope this helps a bit (or byte).

Timestamp is 39d29f39 (Wed Sep 27 20:30:33 2000)

Preferred load address is 00400000

Start Length Name Class
0001:00000000 0001047aH .text CODE
0001:00010480 00000c62H .text$x CODE
0002:00000000 0000065cH .idata$5 DATA
0002:00000660 00001374H .rdata DATA
0002:000019d8 00000044H .rdata$r DATA
0002:00001a20 00000f18H .xdata$x DATA
0002:00002938 000000b4H .idata$2 DATA
0002:000029ec 00000014H .idata$3 DATA
0002:00002a00 0000065cH .idata$4 DATA
0002:0000305c 000007c4H .idata$6 DATA
0002:00003820 00000000H .edata DATA
0003:00000000 00000004H .CRT$XCA DATA
0003:00000004 00000004H .CRT$XCL DATA
0003:00000008 00000008H .CRT$XCU DATA
0003:00000010 00000004H .CRT$XCZ DATA
0003:00000014 00000004H .CRT$XIA DATA
0003:00000018 00000004H .CRT$XIZ DATA
0003:00000020 00000434H .data DATA
0003:00000458 00000160H .bss DATA
0004:00000000 00000268H .rsrc$01 DATA
0004:00000270 00001d68H .rsrc$02 DATA

Address Publics by Value Rva+Base Lib:Object

0001:00000000 ?CreateObject@CGridCell@@SGPAVCObject@@XZ 00401000 f GridCell.obj
0001:00000060 ??3CObject@@SGXPAX@Z 00401060 f i GridCell.obj



Questionhow to catch ie/ns download requests like getright/gozilla Pin
Stefan Voelkel3-Sep-00 11:28
Stefan Voelkel3-Sep-00 11:28 
AnswerRe: how to catch ie/ns download requests like getright/gozilla Pin
Michael Dunn3-Sep-00 22:49
sitebuilderMichael Dunn3-Sep-00 22:49 
GeneralHere is Animated Speaking characters Pin
don kennedy3-Sep-00 5:56
don kennedy3-Sep-00 5:56 
GeneralICommandWithParameters implementation code Pin
hongdongsuk31-Aug-00 0:56
hongdongsuk31-Aug-00 0:56 
GeneralCode For Image Comparison In VC++ Pin
shine P K27-Aug-00 3:26
sussshine P K27-Aug-00 3:26 
GeneralRe: Code For Image Comparison In VC++ Pin
yuval19-Sep-00 10:34
yuval19-Sep-00 10:34 
GeneralMSHTML and image screen coordinates Pin
Stefan29-Aug-00 22:52
Stefan29-Aug-00 22:52 
GeneralUnicode Character Rendering in 95/98 Pin
Eric Crahen24-Aug-00 1:15
Eric Crahen24-Aug-00 1:15 
GeneralRe: Unicode Character Rendering in 95/98 Pin
Paolo Messina26-Aug-00 8:06
professionalPaolo Messina26-Aug-00 8:06 
QuestionHow To Change Proxy in IE Pin
Andrew23-Aug-00 9:42
Andrew23-Aug-00 9:42 
GeneralCode needed for automatic software update through Internet Pin
kaizen18-Aug-00 13:22
kaizen18-Aug-00 13:22 
GeneralNeew an Idea for a vector program like Adobe Illustrator Pin
Member 37913-Aug-00 8:11
Member 37913-Aug-00 8:11 
GeneralRe: Neew an Idea for a vector program like Adobe Illustrator Pin
kaizen18-Aug-00 13:45
kaizen18-Aug-00 13:45 
GeneralAccessing Tape Drive Pin
karthik9-Aug-00 20:47
karthik9-Aug-00 20:47 
Questiondoes any one have code for a mass e-mail program for sending a news letter to specific email addresses? Pin
trickster213-Aug-00 8:32
susstrickster213-Aug-00 8:32 
GeneralSecure Password Authentication Pin
Shane Hyde3-Aug-00 3:50
Shane Hyde3-Aug-00 3:50 
GeneralAutomatic mouse and keyboard Pin
Stefan Dahlin2-Aug-00 4:14
Stefan Dahlin2-Aug-00 4:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.