I was cleaning out my box and ran across my "Realization Of The Self..." post, just wanted to say nevermind :} I wrote that post because at the time I figured that since GPC objects are not compatible with DJGPP classes EDI might as well contain Self. I was porting my libs to DJGPP for the heck of it and found out that GPC and DJGPP are OO compatible to a certain point. All you have to do when writing an external assembly program for an object member is to declare a global for each version of the name. The following is an example of what I mean (not tested, writing it off the top of my head, tho it should work. If not let me know and I'll repost it after verifying):
// begin test.cc #include <stdio.h>
class tmyclass { public: int bar;
int foo(); };
main() { tmyclass myclass;
myclass.bar = 35;
printf( "Should be equal %i %i\n", myclass.bar, myclass.foo() ); } // end test.cc
{ begin test.pas } program test;
type tmyclass = object bar : Integer;
function foo: Integer; end;
var myclass : tmyclass;
begin myclass.bar := 35;
WriteLn( 'Should be equal ', myclass.bar, ' ', myclass.foo ); end; { end test.pas }
# begin testo.s .globl _foo__8tmyclass # DJGPP name .globl _Tmyclass_Foo # GPC name
.text _Tmyclass_Foo: _foo__8tmyclass: movl 4(%esp), %edi # Get Self pointer from the stack movl 4(%edi), %eax # Set function result to tmyclass.bar ret # end testo.s
rem begin mktest.bat gpc test.pas testo.s -o testp.exe gcc test.cc testo.s -o testc.exe rem end mktest.bat
Reason number 1,000,001 to use GPC =B)
See ya! Orlando Llanes
"Meine Damen und Herren, Elvis hat soeben das Gebaeude verlassen!"
"Look out fo' flyeeng feet" O__/ a010111t@bc.seflin.org /|____. O <__. /> / \ ____________|_________ http://ourworld.compuserve.com/homepages/Monkey414