Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Explanation of source tree?

<< < (2/3) > >>

beldaz:
I've put the details I could surmise, along with the responses from oBFusCATed, into a wiki page. I'm hoping it's useful to other people, it is to me in any case. I'm still unclear about some of the stuff in base, build_tools/scrooge and tools. I'm guessing some of this is legacy stuff that is no longer used. Please say if you know otherwise.

ollydbg:

--- Quote from: beldaz on December 11, 2011, 03:34:30 am ---Well, the plugins could know about the available functions and classes (through sdk.h) without them being contained in a DLL, I think. It looks like the plugins are DLLs themselves that are called in from the codeblocks executable, so it's not as if each plugin runs as its own process and makes independent use of libcodeblocks, right?

In any case, I'm just trying to get my head around the general architecture and design choices, so please don't mind my prying...

--- End quote ---
I think the reason that why cb have a libcodeblocks.dll is that the exe file can not export it's function (At least the normal way), this is the same reason that why GCC plugin feature can't works on Windows in the normal way. (There is a hack that we can let the exe to export all the functions, but it's a hack)

You can have a look at Enhanced Dynamic Linking for MS-Windows, especially the section "The sub-DLL solution", so the practical way is to create a big SDK DLL file, and put all the core functionality there. And all the plugins should depend on this big SDK DLL.


--- Quote from: beldaz on December 11, 2011, 04:24:37 am ---I've put the details I could surmise, along with the responses from oBFusCATed, into a wiki page. I'm hoping it's useful to other people, it is to me in any case.
--- End quote ---
Very nice work, thanks!!!

beldaz:
Thanks ollydbg - I've added those details to the wiki for posterity.

ollydbg:

--- Quote from: beldaz on December 12, 2011, 06:38:19 am ---Thanks ollydbg - I've added those details to the wiki for posterity.

--- End quote ---

I think C::B's source/structure are quite easy to understand.  :D
Each plugin's sources were in its own folder, you just add some even handlers in plugins, and manipulate something....
Or, you can set a BP, and debug C::B in C::B.

If you have some questions, just ask here :D :D

beldaz:

--- Quote from: ollydbg on December 12, 2011, 07:09:04 am ---I think C::B's source/structure are quite easy to understand. :D
Each plugin's sources were in its own folder, you just add some even handlers in plugins, and manipulate something....
Or, you can set a BP, and debug C::B in C::B.

--- End quote ---

Like man pages, it all makes sense if you already know it. As I mentioned in my first post, many directory names are ambiguous, and I'm just the kind of person that likes to know where everything is before doing anything. I've also worked on development efforts where the structure is rigidly defined and you get in trouble putting code in the wrong place...


--- Quote from: ollydbg on December 12, 2011, 07:09:04 am ---If you have some questions, just ask here
--- End quote ---
No worries: expect plenty more.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version