hey people,
the most of you who responded to my posts wanted
a .lib version, so i tried to modify PhatObjects.
Now, it creates (or you have to create ;) ) .libs instead of
.dlls
As far, i rewrote the howto and there is a html-version of it
What PhatObjects supports is:
- single inheritance
- implementation of interfaces (replacement for multiple inheritance)
- "polymorphism" ("reduced" and "simple" version)
Here is the included test.asm:
** For those who care about size of binaries:
PhatObjects doesnt save the names of your methods and
classes in your .exe, instead, it will save pointers to then,
this has the effect that your .exe wont blow up ;) (see samps\test.exe if you dont believe).
**************************************************
there might be still some bugs and/or improvements,
i am waiting for suggestions ;)
(limitations of masm are still limitations of PhatObjects.
One limitation: since PhatObjects uses very long literals
to save informations about the classes created, labels/literals length cannot exceed 255, i will try to fix that)
Btw, i have a suggestion: How about a "PhatObjects Library";
a collection of classes you might always need, such like
file handlers, window controllers, string manipulators,
networking classes (sockets), etc. ?
If you know STL or JFC, you may also know what i mean.
exzito.
the most of you who responded to my posts wanted
a .lib version, so i tried to modify PhatObjects.
Now, it creates (or you have to create ;) ) .libs instead of
.dlls
As far, i rewrote the howto and there is a html-version of it
What PhatObjects supports is:
- single inheritance
- implementation of interfaces (replacement for multiple inheritance)
- "polymorphism" ("reduced" and "simple" version)
Here is the included test.asm:
.386
.model flat, stdcall
.stack 0ffh
option casemap :none
include ..\bin\PhatObjects.inc
use String
use PSys
.data
sz1 byte "this is a string", 13, 10, 0
.data?
string pString ?
.code
start:
mov string, new( String )
eval String::string.setText, addr sz1
invoke StdOut, @eval( String::string.getText )
eval PSys::exit, 0
end start
** For those who care about size of binaries:
PhatObjects doesnt save the names of your methods and
classes in your .exe, instead, it will save pointers to then,
this has the effect that your .exe wont blow up ;) (see samps\test.exe if you dont believe).
**************************************************
there might be still some bugs and/or improvements,
i am waiting for suggestions ;)
(limitations of masm are still limitations of PhatObjects.
One limitation: since PhatObjects uses very long literals
to save informations about the classes created, labels/literals length cannot exceed 255, i will try to fix that)
Btw, i have a suggestion: How about a "PhatObjects Library";
a collection of classes you might always need, such like
file handlers, window controllers, string manipulators,
networking classes (sockets), etc. ?
If you know STL or JFC, you may also know what i mean.
exzito.
sorry i forgot the files