Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Quick question(s) about DBP apps

Author
Message
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 30th Oct 2006 18:34
Just wondering about the internal structure of DBP apps here folks: They are 100% machine code are they not?

And is the code itself actually compiled into machine code, or is it appended as data on the end of the app?

One last question; DBP apps don't use VM stuff any more do they? Are they going to be 100% pure Windows functions and whatnot, or are they going to use some strange VM things and other tricks? (like DB exe's did)

Thanks to anyone who answers

Richard Davey
Retired Moderator
22
Years of Service
User Offline
Joined: 30th Apr 2002
Location: On the Jupiter Probe
Posted: 30th Oct 2006 18:42
DBPro EXEs are not like DB EXEs at all; the code is fully compiled, does not run in a VM of any kind, and is most certainly not 'appended' onto the end of your EXE (i.e. interpreted at runtime like DB Classic is). This has its own drawbacks (compile time for example), but does at least stop anyone ever fully and accurately decompiling your EXE.

"Bite my shiny metal ass" (Futurama)
"Don't ping my cheese with your bandwidth" (Dilbert)
Chris K
21
Years of Service
User Offline
Joined: 7th Oct 2003
Location: Lake Hylia
Posted: 30th Oct 2006 21:05
I think that the code is stored somehow, in some way, in the EXEs, because it can crash and give line numbers.

-= Out here in the fields, I fight for my meals =-
Zappo
Valued Member
20
Years of Service
User Offline
Joined: 27th Oct 2004
Location: In the post
Posted: 30th Oct 2006 22:33
The source code itself is not stored in the executables.
David R
21
Years of Service
User Offline
Joined: 9th Sep 2003
Location: 3.14
Posted: 30th Oct 2006 22:38
I assume that it stores some information about the code though, or does it just deduct a rough line for an error by calculating where in execution it is? (Does that explain some dodgy line reports we get)

Zappo
Valued Member
20
Years of Service
User Offline
Joined: 27th Oct 2004
Location: In the post
Posted: 30th Oct 2006 22:53
Here is a quote from IanM in another thread:
Quote: "The code checks to see if an error occurred by simply checking if a certain memory location contains a non-zero value. If it does, the code moves the line number into another memory location and then jumps to the error-recovery code to end the program. Finally, the program uses the error number stored in the error memory location as a lookup into a table containing the error string."

I think what this means is that the line numbers are referenced at certain points in the application (and not the actual source code) so that they can be displayed if errors occur.
Raven
19
Years of Service
User Offline
Joined: 23rd Mar 2005
Location: Hertfordshire, England
Posted: 30th Oct 2006 23:34
I've been told that the source is 100% machine-code, but when you disassemble the _virtual.dat (program source) it would suggest that there are still hints of atleast virtualisation for opcodes.

It certainly doesn't compile to a standard PE format, probably why the runtime is so slow even on the most standard operations.

Intel Pentium-D 2.8GHz, 512MB DDR2 433, Ati Radeon X1600 Pro 256MB PCI-E, Windows Vista RC1 / XP Professional SP2

Login to post a reply

Server time is: 2024-11-17 19:26:19
Your offset time is: 2024-11-17 19:26:19