Hi guys,

Is anybody interested in writing OOP stuff for assembly on the wiki web. Please get in touch with me if you do.
The community would really benefit if someone puts in some stuff over there. Thank you.

Ultrano could you possibly shed some light on us?

Regards,
Art
Posted on 2003-12-11 15:34:08 by Art Sands
Since I helped Ultrano to test his oop implementation under load, I would be happy to explain how to use it in real world applications... however, he did provide documentation, not that I've ever bothered to look at it myself :tongue:
Posted on 2003-12-11 23:10:58 by Homer
This is why I initially held back from replying. There is many models out there, however for a general use Web-book I would think that the common core from all the models should be what is written, such others can interperate this in their own views. Not provide documentation for one persons views...

I also realize this is alot of extra work to prepare for (Time i dont have). But this is my opinion on the topic.

Regards,
:NaN
Posted on 2003-12-11 23:51:06 by NaN
i'm interested in oop too. can we all not build one thing so that there's no problem with several models. perhaps a fresh model would be a better idea.
Posted on 2003-12-11 23:53:44 by evil__donkey
Each implementation has its own tradeoffs - I guess it depends on your needs.
Some implementations carry more overhead than other, I actually use two implementations, I use mcall to call from c++ class objects like DirectX, and I use icall to call from my own classes, since it has less overhead and speed is important to me. Both effectively do the same thing, except that mcall uses edx as a pointer to THIS instance of the class object (pThis), whereas icall uses ecx. Furthermore, mcall provides some checking of things like #params (I believe) whereas icall provides no safety for the programmer whatsoever - it's a "light" implementation, and suits my purposes, even if it is not as robust...
Posted on 2003-12-12 06:58:49 by Homer
The wrapper I've written can be modified to have parameter# checking, auto-detection of local or virtual call, and a few other things to make using the framework easily. Today I won't be able to do anything about it, but tomorrow is a good day :) Though, I have to finish a VST host today, and I won't start the oop mods and docs until I complete that important plugin.
evil__donkey, I had problems with making the basics of the wrapper, it took me days of brute testing to make labels, constants, "variable constants" and stuff to work together, coz I always got error messages "unknown symbol ??@?7348" or something like that. So, I think starting a fresh new oop won't be as nice as it seems.
Posted on 2003-12-12 08:11:25 by Ultrano
I'm currently working on the wrapper, now code for it looks like:


class CWnd
virtual onMsg :hWnd,msg,w,l ; this defines that the func has exactly 4 parms
virtual hide: ; this defines the func has exactly 0 params
virtual show ; this means we don't want parameter checking
endclass



There are several things I'm wondering how to design
for instance, the colon above may be set as other char, but I'm not sure which will be most comfortable to use
Also, I can make this:


.data
ptr1 dd 0
.code
mov ptr1,$new(CWnd)
[COLOR=red]oCall ptr1.onMsg,0,0,0,0[/COLOR]


So, any ideas for the oop are welcome :)
Ah, and another thing is that when one makes the wrapper build the skeleton of the app, it'll do this:


CWnd_onMsg proc [color=red]hWnd,msg,w,l[/color]
ret
CWnd_onMsg endp
...

There's still some work to be done before starting to write for the wiki
Posted on 2003-12-15 11:46:55 by Ultrano
This week, including Saturday, I have exams everyday at uni, so I've paused development on DR and OOP, sorry for the delay.
Several hours I tried and tried to add some functions to the wrapper, but I always end up getting
"undefined symbol : ??00E2$argz" or something like that, so I'll have to rewrite the whole wrapper in order to make it extendable..
Posted on 2003-12-17 03:56:40 by Ultrano
You have my sympathies... I spent *many* hours doing just this on the origional NaN & Thomas model. MASM can almost be as vage as vbscript when it comes to getting feedback from macro mistakes...

:NaN:
Posted on 2003-12-17 21:10:14 by NaN
Phew, finished it :grin:
The class.inc I mean.
I'll see now what format will be best for tutorials on the wiki (haven't seen the wiki well enough). But I think it should be done like an iczelion's tute.
Posted on 2003-12-19 15:25:05 by Ultrano