📚 OpenRCE is preserved as a read-only archive. Launched at RECon Montreal in 2005. Registration and posting are disabled.








Flag: Tornado! Hurricane!

 Forums >>  Brainstorms - General  >>  GUI Building

Topic created on: July 9, 2006 04:39 CDT by Piotr .

Hi all,

I'm currently working on some product, which requries GUI stuffs and interaction with user. And i'm bit confused here
i always tried to play with MSVC while working in C, but it seems that making the gui like IDA dissassembler is a really a pain in the ass with msvc and mfc stuffs. I guess IDA is done in Borland, well i have Borland C++ Builder 6 here and i'm really frightend because of its stabilitty, however its really easy for making a nice GUI.

What is your opinion? Is it better to programm gui in MSVC ? Any libraries/wizzards to do so?

Or if you are an Borland fan, can u suggest any compiler version etc. etc?


Any opinions (sensible) are highly welcomed!

  pedram     July 9, 2006 10:06.08 CDT
Are you talking about a GUI as an IDA plug-in or just a stand alone GUI?

As a standalone program, I like to dodge compilers entirely and use WxPython ;-)

  MohammadHosein     July 9, 2006 12:02.35 CDT
it somehow depends on your project , but while your concern is just UI there are some comments , mfc has a very limited developer community and you cannot find various UI related components and packages , but MFC is really stable , BC has a very crowded community ( becuase VCL is shared between delphi and BC ) and you can find a hell of mature commercial/open source components and packages , but BC6's IDE is really buggy and unstable , you can try Delphi2006 package which includes 2006 version of BC with some new features too , and as a Delphi/BC programmer - to be honest - i think BC's UI Stuff is not comparable to MFC when we think about stability , but again , MFC development is really a pain in the ass , and now its your choice .

there is another topic about my VCL IDA package which is under development and you can find some tips and an informative link there , surely this can help you select the right tool

btw : as Pedram noted there are other toolkits avaliable for C/CPP UI development , QT from trolltech , GTK+ from Gnu , and Wxwindow . they are all cross-platform and compatible with MSVC and Borland environments

  hoglund     July 9, 2006 14:59.28 CDT
Ive used MSVC for years - it works fine.  I don't use MFC, never liked it although to be fair, its used ALOT and obviously its fine.  My suggestion: if your trying to build a disassembler interface, register your own window class and handle the drawing yourself.  DO NOT attempt to subclass a control, such as richedit, and try to crowbar that into a disassembler view (UNLESS: unless you do not intend to add any special features to said view, then yes, just *use* richedit - you can have your disassembler view in about 4 hours of coding).  If you make the unfortunate decision to subclass someone elses control (anyone elses control, including microsofts richedit and friends) to make your disassembler GUI, you will incur incalculable costs as you try to work around many small corner cases you can't even see yet.  IDA has a very complex editor interface - this is not going to come for free - you will have to work for it.  I know this very well because of how much money I've spent developing *just* the editor view on my companies new product "Inspector".  It's expensive to write software.  I'd say if you already know win32 code, you can craft your own home-brew editor window class in less than a day and have it working pretty-much bugfree in about a weeks effort/testing.  Some hints for you: use double buffering when you cache individual lines of text, use a hashtable for click-lookups on addresses, don't (dont dont dont) try anything fancy w/ font metrics (or immediately add 10X to your costs of development), and put cut-n-paste off for a while until you get the rest to work w/o flicker problems, etc.

-Greg

  Piotr     July 12, 2006 09:43.20 CDT
Thanks for replies, i think i will go forward with hoglund's advice.

Ps. to Pedram, its a standalone app :)

I just wonder when i will be able to finish it, 50.000 lines of code currently and i cant even think about seeing the end... Hats off for Ilfak :)

  caviola   July 16, 2006 19:19.08 CDT
IMHO, go with Borland stuff....the bundled VCL components are enough for most classic GUIs but if that isn't enough, you can always go with other third-party components like devExpress's, Raize's, etc. But see for yourself, try developing a simple GUI using MSVC/MFC and Borland/Delphi/CB/VCL and draw your own conclusions.

Note: Registration is required to post to the forums.

There are 31,328 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06
Question about memor...
Dec/12


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit