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.

Newcomers DBPro Corner / Common (any) plugin questions

Author
Message
mr Handy
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 21st Jan 2014 11:24
Hi guys! I have a couple of common questions:
1. How plugin commands gets into my compiled exe?
2. Matrix Utils itself is dozens of dll files. What happens to my compiled exe if I use only one command from one dll?
3. What happens if I am not using plugin commands but plugins are being located in my user-plugin folder?
3.1 How can I inspect my compiled exe on what plugins was used?
3.2 How can I remove unused dll stuff before compilation?
Extra: Do plugins affect on random app crash chance if use it properly?
Thanks!

BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 21st Jan 2014 18:18 Edited at: 21st Jan 2014 18:19
1. How plugin commands gets into my compiled exe?

They become part of the exe file, taken from the dll folder

2. Matrix Utils itself is dozens of dll files. What happens to my compiled exe if I use only one command from one dll?

It only includes dlls that are used (apart from the core dlls which are always used)

3. What happens if I am not using plugin commands but plugins are being located in my user-plugin folder?

Nothing, it ignores them

3.1 How can I inspect my compiled exe on what plugins was used?

You need to use a tool, I think the Winch created one a few years ago

3.2 How can I remove unused dll stuff before compilation?

The tool created by the Winch

Extra: Do plugins affect on random app crash chance if use it properly?

any plugin can cause instability. It has been a problem for me previously (Styx for example used to overwrite data)

Rudolpho
18
Years of Service
User Offline
Joined: 28th Dec 2005
Location: Sweden
Posted: 21st Jan 2014 21:10
Quote: "3.2 How can I remove unused dll stuff before compilation?"

There shouldn't usually be "unused" dll's in your executable.
The only way that would happen is if you have code that uses functions from a certain dll that is never run in your application (this might be desirable at times to for instance force load the memblock dll for use with another external dll - but in that case it really isn't "unused" either ).


"Why do programmers get Halloween and Christmas mixed up?"
mr Handy
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 21st Jan 2014 21:36 Edited at: 21st Jan 2014 21:38
Thanks for the tool (Dark Explorer), BatVink!

Here is content of my last exe:

The RED group - I don't know why it's there.
The PURPLE group - I don't use those types of objects at all.
The GREEN group - I don't use those efeects/commands.

Attachments

Login to view attachments
Rudolpho
18
Years of Service
User Offline
Joined: 28th Dec 2005
Location: Sweden
Posted: 21st Jan 2014 21:55
Show your code too and I'll try listing how each of those files are relevant.

As for the purple ones, they're included by default by the engine and are used to load various 3D model formats. The red ones you probably use in one way or another and the green ones are shaders used when using the built-in shading function (set cartoon shading on, set bump mapping on, etc). The shaders are probably included by default even if you're not using them.


"Why do programmers get Halloween and Christmas mixed up?"
mr Handy
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 21st Jan 2014 22:45 Edited at: 21st Jan 2014 22:49


The first case:

The second case:


Attachments

Login to view attachments
Rudolpho
18
Years of Service
User Offline
Joined: 28th Dec 2005
Location: Sweden
Posted: 22nd Jan 2014 01:35
Well, the ConvXXX.dll files are dependencies of DBProBasic3DDebug.dll, which is included because of the make object cube call. The same goes for the shaders (it's possible that DBProBasic2DDebug.dll includes quad.fx if it's used for sprite rendering, but I don't think so).
The 3D engine incorporates lighting (light 0 and ambient lighting is always active by default in a 3D scene) and autocam is on by default so that accounts for why DBProLighDebug and DBProCameraDebug are included. Certain functions in DBProBasic3DDebug can use vectors and the camera dll have functions that use matrices, so that's why DBProVectorsDebug.dll is included.
Now we have lots of libraries already and they too are dependant on other libraries; a camera can be set to an image so DBProImageDebug is included if DBProCameraDebug is in the executable. Images can be drawn to the screen (which is probably handled by DBProBasic2DDebug), as can sprites and text so then DBProBasic2DDebug includes DBProSpritesDebug and DBProTextDebug.
Finally DBProSetupDebug.dll is used for lots of internal data passing; I'm actually quite surprised that one isn't included in the simple print example too, but print is one of very few of the accessible functions that are actually defined in DBProCore.dll so I suppose that's why no external setup is required there.


"Why do programmers get Halloween and Christmas mixed up?"
mr Handy
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 22nd Jan 2014 08:00 Edited at: 22nd Jan 2014 08:03
Why then they all called "debug"? Debug is removing bugs...

Also I understood that if dll included in exe, I don't need to put it with my exe to distribute.

Also is there any sense to externalize dlls?

Rudolpho
18
Years of Service
User Offline
Joined: 28th Dec 2005
Location: Sweden
Posted: 22nd Jan 2014 09:57
Quote: "Why then they all called "debug"? Debug is removing bugs...
"

Good question; they aren't debug builds. Probably some old naming that lingers (look in your compiler\plugins folder; they have the exact same names there).

Quote: "Also I understood that if dll included in exe, I don't need to put it with my exe to distribute.

Also is there any sense to externalize dlls?"

True. It might make sense if you were to continually update the executable, in which case the dll's remain the same and wouldn't have to be updated. But it really isn't a lot of memory we're talking about here anyway.


"Why do programmers get Halloween and Christmas mixed up?"
mr Handy
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 22nd Jan 2014 11:55
Thanks!

Login to post a reply

Server time is: 2024-11-23 15:08:24
Your offset time is: 2024-11-23 15:08:24