flat assembler
Message board for the users of flat assembler.

Index > IDE Development > Visual resource (dialog) editor for FASM - preliminary.

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 04 Jul 2003, 08:47
I think you misunderstood me JohnFound... That's not my plan (to make an IDE based on plug-ins)! The version I posted, was only an example (I had to try to make a plug-in-system [as I said, my first one]). Actually, plug-ins were not in my plans. The original version (which I added plug-in-system to) are so far clean and easy code and will not include plug-ins in the future either! Wink
Quote:
The first versions had text editor in separate DLL. But in the next versions, Privalov build the code of the editor in the main executable.

I agree Exclamation Exclamation

Take care!
Tommy
Post 04 Jul 2003, 08:47
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3499
Location: Bulgaria
JohnFound 04 Jul 2003, 09:15
Hi Tommy.

I think I understood you before and I am agree with you - this is the exact way to make plugin system. It will be usefull as method for fast extending of the IDE with different tools. But project manager, resource editor, source level library system and source level debugger needs very close binding between each other, so, I think they must be in one application.

BTW: I think that this IDE must have ability to compile sources directly from memory, not only from files.
Post 04 Jul 2003, 09:15
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 04 Jul 2003, 09:43
JohnFound wrote:
BTW: I think that this IDE must have ability to compile sources directly from memory, not only from files.

Yes, I agree!! Wink

Actually I agree in everything you said! Smile

Regards,
Tommy
Post 04 Jul 2003, 09:43
View user's profile Send private message Visit poster's website Reply with quote
scientica
Retired moderator


Joined: 16 Jun 2003
Posts: 689
Location: Linköping, Sweden
scientica 04 Jul 2003, 10:40
JohnFound wrote:
Of course, to have Plug-in ability in FASMW is good. But to build whole IDE based only on Plugins, that is not very good IMHO.
Modularity of the system must stay on some reasonable level i.e. one complete stand-alone application and a few small, not absolutely necessary plugins. Look at similar systems like PhotoShop for example. It is stand-alone very powerfull graphic editor. But you can add extra filters, if you need them.
Also, the natural evolution of the software is from modular to nonmodular systems. FASMW is good example for this. The first versions had text editor in separate DLL.

I must say that the the text editor is an essential part of the fasmw, after the compiler core it's the most importart part of fasmw, so that should be in the main exe. But plug-ins are add ons, it's not good to build them in, because then you'll endu having to recompile your fasmw exe every time you add/remove a plug in, and that can cause problems.
And when having dll plug-ins they can be used with other editors, presumed they use the same (plug-in) interface.

Plug-ins are small extensions, or things such as resource editors. As you say Tommy, project manager, resource editor, source level library system and source level debugger should be implented in to the GUI, as modules (either DLLs or in an own code section), I can partially agree, however I think a resource editor is more suitable as plugin than core component, since one might want more than one resrouce editor (one editor might bee good on forms another on string tables, cursors and such). However debugers, project managers are such things that more or less requires core intergration, especially teh debugger (since there mgith be support for modifying code at runtime, and then jit-compiling of "one liners" (sinlge instruction line) should utilize the core compiler (so that labels and such can be used).

Isn't that what happens? (the file is in memory as it's assembled, it's not read from disk, however it's the files are saved before compile (what about making that customizable, one more line in the ini?) )

_________________
... a professor saying: "use this proprietary software to learn computer science" is the same as English professor handing you a copy of Shakespeare and saying: "use this book to learn Shakespeare without opening the book itself.
- Bradley Kuhn
Post 04 Jul 2003, 10:40
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8367
Location: Kraków, Poland
Tomasz Grysztar 09 Jul 2003, 20:30
I've done some work on the FASMW source to make it easier to add plug-in support in future - also for this purpose I will start the separate versioning for the FASMW interface (so each executable will have two version numbers - one for the core and one for the interface), so the plug-ins will be able to detect on which version they are applied.
The way I'm planning to implement plug-ins is without an exports from FASMW, the IDE will just initialize each plug-in by calling some initialization function from DLL, providing the version of interface and the handle of FASMW window. All operations will be done by sending appropriate messages to the FASMW window.
Post 09 Jul 2003, 20:30
View user's profile Send private message Visit poster's website Reply with quote
comrade



Joined: 16 Jun 2003
Posts: 1150
Location: Russian Federation
comrade 09 Jul 2003, 23:14
I hope this doesn't increase loading time. Currently FASMW loads as fast as Notepad, and I really appreciate that. That is one of the most important reasons I use FASMW IDE as opposed to EditPro or UltraEdit. And of course FASMW is nicer. Wink

_________________
comrade (comrade64@live.com; http://comrade.ownz.com/)


Last edited by comrade on 10 Jul 2003, 00:01; edited 1 time in total
Post 09 Jul 2003, 23:14
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger ICQ Number Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8367
Location: Kraków, Poland
Tomasz Grysztar 09 Jul 2003, 23:22
The loading time won't be noticeably increased unless you're using some huge and slowly initializing plug-in. And that also the greates advantage of plug-ins that you'll be able to enable only the ones that you really need (or none at all) to keep the loading as quick as possible.
Post 09 Jul 2003, 23:22
View user's profile Send private message Visit poster's website Reply with quote
Daemon



Joined: 08 Jul 2003
Posts: 15
Daemon 10 Jul 2003, 11:03
The main idea of adding plugins into fasm is:
1. Use INI file to save plugin information;
Code:
[Environment]
Include = D:\prog\fasm\include
[Plugins]
flink.dll
fresh.dll
fimport.dll    

2. DLL code must contain procedures such as 'Initialize', 'Shutdown' and 'Run' with fasm's main window [hwnd] parameter (and maybe some more too...). On Init procedure we'll load & append DLL's menus to main FASMW menu (& then unload in Shtdn proc). Within the 'Run' proc we can open a window (dialog) for some data to input.
Menu Procedures (from MS):
Code:
HMENU GetMenu(HWND hWnd);  //<- FASMW's mainhWnd!

BOOL AppendMenu(HMENU hMenu,
    UINT uFlags,
    UINT_PTR uIDNewItem,
    LPCTSTR lpNewItem);    

You can find more API functions at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus.asp.

Happy FASM'ing,
    Daemon.
Post 10 Jul 2003, 11:03
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.