Seite 1 von 2

E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 10:30
von DrShrek
So nun ist es endlich soweit, nach langer Entwicklungszeit (mit vielen Pausen zwischen drin) ist er jetzt nutzbar:

Mein E.S.L
E.S.L (Extract Static Libs) -> Nicht zu verwechseln mit den gleichnamigen Tier :wink:
Der Name 'E.S.L' wurde aber schon bewusst 'wie der Tiername' gewählt, weil mir E.S.L einiges an Arbeit beim erzeugen eines *4PB Wrappers abnimmt.

Hier mal ein Screenshot (Hier wird gerade Chipmunk 6.0.1 für den Chipmunk4PB Wrapper bearbeitet):
Bild

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 10:34
von DarkDragon
Gibt es dazu auch einen Downloadlink? :)

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 10:44
von DrShrek
DarkDragon hat geschrieben:Gibt es dazu auch einen Downloadlink? :)
Ja möglicherweise aber den E.S.L möchte ich nur lizensiert rausgegeben.

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 10:46
von DarkDragon
DrShrek hat geschrieben:
DarkDragon hat geschrieben:Gibt es dazu auch einen Downloadlink? :)
Ja möglicherweise aber den E.S.L möchte ich nur lizensiert rausgegeben.
Gibt es wenigstens Informationen dazu?

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 11:02
von DrShrek
DarkDragon hat geschrieben:Gibt es wenigstens Informationen dazu?
JA gibt es:
Benötigt wird:
- Die Sourcen von dem Teil welches Du wrappen möchtest.
- noch eine Statische Lib von dem Teil
- und natürlich E.S.L

E.S.L generiert aus den gefunden Informationen (Source/statische lib) dann ein pbi include für PureBasic.
Diese pbi beinhaltet:
- Die Structuren aus den Sourcen (an PureBasic Syntax angepasst)
- Die Functionen die in der Statischen Lib gefunden wurden (an PureBasic Syntax angepasst)

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 11:16
von DarkDragon
DrShrek hat geschrieben:
DarkDragon hat geschrieben:Gibt es wenigstens Informationen dazu?
JA gibt es:
Benötigt wird:
- Die Sourcen von dem Teil welches Du wrappen möchtest.
- noch eine Statische Lib von dem Teil
- und natürlich E.S.L

E.S.L generiert aus den gefunden Informationen (Source/statische lib) dann ein pbi include für PureBasic.
Diese pbi beinhaltet:
- Die Structuren aus den Sourcen (an PureBasic Syntax angepasst)
- Die Functionen die in der Statischen Lib gefunden wurden (an PureBasic Syntax angepasst)
Na gut, dann halt nicht ... /:-> . Ich meinte Informationen zum Kauf einer Lizenz. :freak:

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 11:21
von DrShrek
DarkDragon hat geschrieben:]Na gut, dann halt nicht ... /:-> . Ich meinte Informationen zum Kauf einer Lizenz. :freak:
Gib mir bitte noch etwas Zeit.
Ich möchte erst noch, dass E.S.L auch DLLs untersucht und auch davon PureBasic Includes generiert.

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 18.08.2011 16:04
von inc.
DrShrek hat geschrieben:
DarkDragon hat geschrieben:]Na gut, dann halt nicht ... /:-> . Ich meinte Informationen zum Kauf einer Lizenz. :freak:
Gib mir bitte noch etwas Zeit.
Ich möchte erst noch, dass E.S.L auch DLLs untersucht und auch davon PureBasic Includes generiert.
Warum hast Du es dann schon vorgestellt, wenn es zwar nutzbar aber (noch) nicht vertrieben wird?

Welche Lizenz soll es sein? Eine wie die LGPL oder die MIT?
Oder möchtest Du, dass man die Lizenz kostenpflichtig erwirbt?

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 19.08.2011 00:11
von DrShrek
Ja die Lizenz wird es nicht umsonst geben. Sorry.

Hier mal ein Ergebnis (generiert in ca 20sec) vollständig alleine durch E.S.L:

Code: Alles auswählen

;- - E.S.L (0.2.0) - -
; <wrapper>4P.pbi

;- - Macros - -

;- - Structures - -
;-  cpConstraint
Structure  cpConstraint
EndStructure
;-  cpLayers
Structure  cpLayers
EndStructure
;-  cpSegmentQueryInfo
Structure  cpSegmentQueryInfo
EndStructure
;-  cpShape
Structure  cpShape
EndStructure
;-  cpFlot
Structure  cpFlot
EndStructure
;-  cVect
Structure  cVect
EndStructure
;-  cpCollisionHandler
Structure  cpCollisionHandler
EndStructure
;-  cpSpaceHash
Structure  cpSpaceHash
EndStructure
;-  cpHashSet
Structure  cpHashSet
EndStructure
;-  cpSpatialIndex
Structure  cpSpatialIndex
EndStructure
;-  cpSegmentShape
Structure  cpSegmentShape
EndStructure
;-  cpPostStepFunc
Structure  cpPostStepFunc
EndStructure
;-  cpPostStepCallback
Structure  cpPostStepCallback
EndStructure
;-  cpPolyShape
Structure  cpPolyShape
EndStructure
;-  cpSpaceSegmentQueryFunc
Structure  cpSpaceSegmentQueryFunc
EndStructure
;-  cpSpaceConstraintIteratorFunc
Structure  cpSpaceConstraintIteratorFunc
EndStructure
;-  cpSpaceBodyIteratorFunc
Structure  cpSpaceBodyIteratorFunc
EndStructure
;-  cpVect
Structure  cpVect
EndStructure
;-  costcpVect
Structure  costcpVect
EndStructure
;-  cpBodyShapeIteratorFunc
Structure  cpBodyShapeIteratorFunc
EndStructure
;-  cpBodyArbiterIteratorFunc
Structure  cpBodyArbiterIteratorFunc
EndStructure
;-  cpConstraintClass
Structure  cpConstraintClass
EndStructure
;-  conscpFloa
Structure  conscpFloa
EndStructure
;-  cpSpace
Structure  cpSpace
EndStructure
;-  cpBody
Structure  cpBody
EndStructure
;-  cpSpatialIndexQueryFunc
Structure  cpSpatialIndexQueryFunc
EndStructure
;-  cpBBTree
Structure  cpBBTree
EndStructure
;-  cpArbiter
Structure  cpArbiter
EndStructure
;-  cpHashSetFilterFunc
Structure  cpHashSetFilterFunc
EndStructure
;-  cpSpaceShapeIteratorFunc
Structure  cpSpaceShapeIteratorFunc
EndStructure
;-  cpArray
Structure  cpArray
EndStructure
;-  cpFloat
Structure  cpFloat
EndStructure
;-  cpSweep1D
Structure  cpSweep1D
EndStructure
;-  cpHashSetEqlFunc
Structure  cpHashSetEqlFunc
EndStructure
;-  cpSpaceShapeQueryFunc
Structure  cpSpaceShapeQueryFunc
EndStructure
;-  cpContact
Structure  cpContact
EndStructure
;-  cpHashSetIteratorFunc
Structure  cpHashSetIteratorFunc
EndStructure
;-  cpBodyConstraintIteratorFunc
Structure  cpBodyConstraintIteratorFunc
EndStructure
;-  cpSpatialIndexIteratorFunc
Structure  cpSpatialIndexIteratorFunc
EndStructure
;-  cpSpatialIndexClass
Structure  cpSpatialIndexClass
EndStructure
;-  cpCircleShape
Structure  cpCircleShape
EndStructure
;-  cpHashSetTransFunc
Structure  cpHashSetTransFunc
EndStructure
;-  cpGroup
Structure  cpGroup
EndStructure
;-  cpSpaceBBQueryFunc
Structure  cpSpaceBBQueryFunc
EndStructure
;-  cpSpatialIndexSegmentQueryFunc
Structure  cpSpatialIndexSegmentQueryFunc
EndStructure
;-  cpHashValue
Structure  cpHashValue
EndStructure
;-  cpSpatialIndexBBFunc
Structure  cpSpatialIndexBBFunc
EndStructure


;- - Imports - -
ImportC "C:\Chipmunk_6.0.1\chipmunk.lib"
   cpArbiterApplyCachedImpulse(*arb.cpArbiter,dt_coef.cpFloat) As "?cpArbiterApplyCachedImpulse@@YAXPAUcpArbiter@@N@Z"
   cpArbiterApplyImpulse(*arb.cpArbiter) As "?cpArbiterApplyImpulse@@YAXPAUcpArbiter@@@Z"
   cpArbiterCallSeparate(*arb.cpArbiter,*space.cpSpace) As "?cpArbiterCallSeparate@@YAXPAUcpArbiter@@PAUcpSpace@@@Z"
   cpArbiterGetContactPointSet(*arb.cpArbiter) As "?cpArbiterGetContactPointSet@@YA?AUcpContactPointSet@@PBUcpArbiter@@@Z"
   cpArbiterGetCount(*arb.cpArbiter) As "?cpArbiterGetCount@@YAHPBUcpArbiter@@@Z"
   cpArbiterGetDepth(*arb.cpArbiter,i.nt) As "?cpArbiterGetDepth@@YANPBUcpArbiter@@H@Z"
   cpArbiterGetNormal(*arb.cpArbiter,i.nt) As "?cpArbiterGetNormal@@YA?AUcpVect@@PBUcpArbiter@@H@Z"
   cpArbiterGetPoint(*arb.cpArbiter,i.nt) As "?cpArbiterGetPoint@@YA?AUcpVect@@PBUcpArbiter@@H@Z"
   cpArbiterIgnore(*arb.cpArbiter) As "?cpArbiterIgnore@@YAXPAUcpArbiter@@@Z"
   cpArbiterInit(*arb.cpArbiter,*a.cpShape,*b.cpShape) As "?cpArbiterInit@@YAPAUcpArbiter@@PAU1@PAUcpShape@@1@Z"
   cpArbiterIsFirstContact(*arb.cpArbiter) As "?cpArbiterIsFirstContact@@YAHPBUcpArbiter@@@Z"
   cpArbiterPreStep(*arb.cpArbiter,dt.cpFloat,slop.cpFloat,bias.cpFloat) As "?cpArbiterPreStep@@YAXPAUcpArbiter@@NNN@Z"
   cpArbiterThreadForBody(*arb.cpArbiter,*body.cpBody) As "?cpArbiterThreadForBody@@YAPAUcpArbiterThread@@PAUcpArbiter@@PAUcpBody@@@Z"
   cpArbiterTotalImpulse(*arb.cpArbiter) As "?cpArbiterTotalImpulse@@YA?AUcpVect@@PBUcpArbiter@@@Z"
   cpArbiterTotalImpulseWithFriction(*arb.cpArbiter) As "?cpArbiterTotalImpulseWithFriction@@YA?AUcpVect@@PBUcpArbiter@@@Z"
   cpArbiterUnthread(*arb.cpArbiter) As "?cpArbiterUnthread@@YAXPAUcpArbiter@@@Z"
   cpArbiterUpdate(*arb.cpArbiter,*contacts.cpContact,numContacts.int,*handler.cpCollisionHandler,*a.cpShape,*b.cpShape) As "?cpArbiterUpdate@@YAXPAUcpArbiter@@PAUcpContact@@HPAUcpCollisionHandler@@PAUcpShape@@3@Z"
   cpAreaForCircle(r1.cpFloat,r2.cpFloat) As "?cpAreaForCircle@@YANNN@Z"
   cpAreaForPoly(numVerts.int,*verts.cpVect) As "?cpAreaForPoly@@YANHPBUcpVect@@@Z"
   cpAreaForSegment(a.cpVect,b.cpVect,r.cpFloat) As "?cpAreaForSegment@@YANUcpVect@@0N@Z"
   cpArrayContains(*arr.cpArray,*ptr.void) As "?cpArrayContains@@YAHPAUcpArray@@PAX@Z"
   cpArrayDeleteObj(*arr.cpArray,*obj.void) As "?cpArrayDeleteObj@@YAXPAUcpArray@@PAX@Z"
   cpArrayFree(*arr.cpArray) As "?cpArrayFree@@YAXPAUcpArray@@@Z"
   cpArrayFreeEach(*arr.cpArray,freeFunc.)*.void).) As "?cpArrayFreeEach@@YAXPAUcpArray@@P6AXPAX@Z@Z"
   cpArrayNew(size.int) As "?cpArrayNew@@YAPAUcpArray@@H@Z"
   cpArrayPop(*arr.cpArray) As "?cpArrayPop@@YAPAXPAUcpArray@@@Z"
   cpArrayPush(*arr.cpArray,*object.void) As "?cpArrayPush@@YAXPAUcpArray@@PAX@Z"
   cpBBArea(bb.cpBB) As "?cpBBArea@@YANUcpBB@@@Z"
   cpBBClampVect(bb.cpBB,v.cpVect) As "?cpBBClampVect@@YA?AUcpVect@@UcpBB@@U1@@Z"
   cpBBContainsBB(bb.,bb.) As "?cpBBContainsBB@@YAHUcpBB@@0@Z"
   cpBBContainsVect(bb.cpBB,v.cpVect) As "?cpBBContainsVect@@YAHUcpBB@@UcpVect@@@Z"
   cpBBExpand(bb.cpBB,v.cpVect) As "?cpBBExpand@@YA?AUcpBB@@U1@UcpVect@@@Z"
   cpBBIntersects(bb.,bb.) As "?cpBBIntersects@@YAHUcpBB@@0@Z"
   cpBBIntersectsSegment(bb.,a.,b.) As "?cpBBIntersectsSegment@@YAHUcpBB@@UcpVect@@1@Z"
   cpBBMerge(a.cpBB,b.cpBB) As "?cpBBMerge@@YA?AUcpBB@@U1@0@Z"
   cpBBMergedArea(a.cpBB,b.cpBB) As "?cpBBMergedArea@@YANUcpBB@@0@Z"
   cpBBTreeContains(*tree.cpBBTree,*obj.void,hashid.cpHashValue) As "?cpBBTreeContains@@YAHPAUcpBBTree@@PAXI@Z"
   cpBBTreeDestroy(*tree.cpBBTree) As "?cpBBTreeDestroy@@YAXPAUcpBBTree@@@Z"
   cpBBTreeEach(*tree.cpBBTree,func.cpSpatialIndexIteratorFunc,*data.void) As "?cpBBTreeEach@@YAXPAUcpBBTree@@P6AXPAX1@Z1@Z"
   cpBBTreeInsert(*tree.cpBBTree,*obj.void,hashid.cpHashValue) As "?cpBBTreeInsert@@YAXPAUcpBBTree@@PAXI@Z"
   cpBBTreeNew(bbfunc.cpSpatialIndexBBFunc,*staticIndex.cpSpatialIndex) As "?cpBBTreeNew@@YAPAUcpSpatialIndex@@P6A?AUcpBB@@PAX@ZPAU1@@Z"
   cpBBTreePointQuery(*tree.cpBBTree,point.cpVect,func.cpSpatialIndexQueryFunc,*data.void) As "?cpBBTreePointQuery@@YAXPAUcpBBTree@@UcpVect@@P6AXPAX22@Z2@Z"
   cpBBTreeQuery(*tree.cpBBTree,*obj.void,bb.cpBB,func.cpSpatialIndexQueryFunc,*data.void) As "?cpBBTreeQuery@@YAXPAUcpBBTree@@PAXUcpBB@@P6AX111@Z1@Z"
   cpBBTreeReindex(*tree.cpBBTree) As "?cpBBTreeReindex@@YAXPAUcpBBTree@@@Z"
   cpBBTreeReindexObject(*tree.cpBBTree,*obj.void,hashid.cpHashValue) As "?cpBBTreeReindexObject@@YAXPAUcpBBTree@@PAXI@Z"
   cpBBTreeRemove(*tree.cpBBTree,*obj.void,hashid.cpHashValue) As "?cpBBTreeRemove@@YAXPAUcpBBTree@@PAXI@Z"
   cpBBTreeSegmentQuery(*tree.cpBBTree,*obj.void,a.cpVect,b.cpVect,t_exit.cpFloat,func.cpSpatialIndexSegmentQueryFunc,*data.void) As "?cpBBTreeSegmentQuery@@YAXPAUcpBBTree@@PAXUcpVect@@2NP6AN111@Z1@Z"
   cpBBWrapVect(bb.cpBB,v.cpVect) As "?cpBBWrapVect@@YA?AUcpVect@@UcpBB@@U1@@Z"
   cpBodyActivate(.) As "?cpBodyActivate@@YAXPAUcpBody@@@Z"
   cpBodyAddShape(*body.cpBody,*shape.cpShape) As "?cpBodyAddShape@@YAXPAUcpBody@@PAUcpShape@@@Z"
   cpBodyApplyForce(*body.cpBody,force.cpVect,r.cpVect) As "?cpBodyApplyForce@@YAXPAUcpBody@@UcpVect@@1@Z"
   cpBodyApplyImpulse(*body.cpBody,j.cpVect,r.cpVect) As "?cpBodyApplyImpulse@@YAXPAUcpBody@@UcpVect@@1@Z"
   cpBodyEachArbiter(*body.cpBody,func.cpBodyArbiterIteratorFunc,*data.void) As "?cpBodyEachArbiter@@YAXPAUcpBody@@P6AX0PAUcpArbiter@@PAX@Z2@Z"
   cpBodyEachConstraint(*body.cpBody,func.cpBodyConstraintIteratorFunc,*data.void) As "?cpBodyEachConstraint@@YAXPAUcpBody@@P6AX0PAUcpConstraint@@PAX@Z2@Z"
   cpBodyEachShape(*body.cpBody,func.cpBodyShapeIteratorFunc,*data.void) As "?cpBodyEachShape@@YAXPAUcpBody@@P6AX0PAUcpShape@@PAX@Z2@Z"
   cpBodyFree(*body.cpBody) As "?cpBodyFree@@YAXPAUcpBody@@@Z"
   cpBodyIsRogue(*body.cpBody) As "?cpBodyIsRogue@@YAHPBUcpBody@@@Z"
   cpBodyIsSleeping(a.) As "?cpBodyIsSleeping@@YAHPBUcpBody@@@Z"
   cpBodyIsStatic(a.) As "?cpBodyIsStatic@@YAHPBUcpBody@@@Z"
   cpBodyKineticEnergy(*body.cpBody) As "?cpBodyKineticEnergy@@YANPBUcpBody@@@Z"
   cpBodyLocal2World(*body.cpBody,v.cpVect) As "?cpBodyLocal2World@@YA?AUcpVect@@PBUcpBody@@U1@@Z"
   cpBodyNew(m.cpFloat,i.cpFloat) As "?cpBodyNew@@YAPAUcpBody@@NN@Z"
   cpBodyNewStatic(.) As "?cpBodyNewStatic@@YAPAUcpBody@@XZ"
   cpBodyRemoveConstraint(*body.cpBody,*constraint.cpConstraint) As "?cpBodyRemoveConstraint@@YAXPAUcpBody@@PAUcpConstraint@@@Z"
   cpBodyRemoveShape(*body.cpBody,*shape.cpShape) As "?cpBodyRemoveShape@@YAXPAUcpBody@@PAUcpShape@@@Z"
   cpBodyResetForces(*body.cpBody) As "?cpBodyResetForces@@YAXPAUcpBody@@@Z"
   cpBodySetPos(*body.cpBody,pos.cpVect) As "?cpBodySetPos@@YAXPAUcpBody@@UcpVect@@@Z"
   cpBodySleep(*body.cpBody) As "?cpBodySleep@@YAXPAUcpBody@@@Z"
   cpBodyUpdatePosition(*body.cpBody,dt.cpFloat) As "?cpBodyUpdatePosition@@YAXPAUcpBody@@N@Z"
   cpBodyUpdateVelocity(*body.cpBody,gravity.cpVect,damping.cpFloat,dt.cpFloat) As "?cpBodyUpdateVelocity@@YAXPAUcpBody@@UcpVect@@NN@Z"
   cpBodyWorld2Local(*body.cpBody,v.cpVect) As "?cpBodyWorld2Local@@YA?AUcpVect@@PBUcpBody@@U1@@Z"
   cpBoxShapeNew2(*body.cpBody,box.cpBB) As "?cpBoxShapeNew2@@YAPAUcpShape@@PAUcpBody@@UcpBB@@@Z"
   cpBoxShapeNew(*body.cpBody,width.cpFloat,height.cpFloat) As "?cpBoxShapeNew@@YAPAUcpShape@@PAUcpBody@@NN@Z"
   cpCircleShapeCacheData(*circle.cpCircleShape,p.cVect,rot.cpVect) As "?cpCircleShapeCacheData@@YA?AUcpBB@@PAUcpCircleShape@@UcpVect@@1@Z"
   cpCircleShapeNew(*body.cpBody,radius.cpFloat,offset.cpVect) As "?cpCircleShapeNew@@YAPAUcpShape@@PAUcpBody@@NUcpVect@@@Z"
   cpCircleShapePointQuery(*circle.cpCircleShape,p.cVect) As "?cpCircleShapePointQuery@@YAHPAUcpCircleShape@@UcpVect@@@Z"
   cpCircleShapeSegmentQuery(*circle.cpCircleShape,a.cpVect,b.cpVect,*info.cpSegmentQueryInfo) As "?cpCircleShapeSegmentQuery@@YAXPAUcpCircleShape@@UcpVect@@1PAUcpSegmentQueryInfo@@@Z"
   cpCircleShapeSetOffset(*shape.cpShape,offset.cpVect) As "?cpCircleShapeSetOffset@@YAXPAUcpShape@@UcpVect@@@Z"
   cpCircleShapeSetRadius(*shape.cpShape,radius.cpFloat) As "?cpCircleShapeSetRadius@@YAXPAUcpShape@@N@Z"
   cpConstraintFree(*constraint.cpConstraint) As "?cpConstraintFree@@YAXPAUcpConstraint@@@Z"
   cpConstraintInit(*constraint.cpConstraint,*klass.cpConstraintClass,*a.cpBody,*b.cpBody) As "?cpConstraintInit@@YAXPAUcpConstraint@@PBUcpConstraintClass@@PAUcpBody@@2@Z"
   cpContactInit(*con.cpContact,p.cVect,n.cpVect,dist.cpFloat,hash.cpHashValue) As "?cpContactInit@@YAPAUcpContact@@PAU1@UcpVect@@1NI@Z"
   cpDampedRotarySpringNew(*a.cpBody,*b.cpBody,restAngle.cpFloat,stiffness.cpFloat,damping.cpFloat) As "?cpDampedRotarySpringNew@@YAPAUcpConstraint@@PAUcpBody@@0NNN@Z"
   cpDampedSpringNew(*a.cpBody,*b.cpBody,anchr1.cpVect,anchr2.cpVect,restLength.cpFloat,stiffness.cpFloat,damping.cpFloat) As "?cpDampedSpringNew@@YAPAUcpConstraint@@PAUcpBody@@0UcpVect@@1NNN@Z"
   cpGearJointNew(*a.cpBody,*b.cpBody,phase.cpFloat,ratio.cpFloat) As "?cpGearJointNew@@YAPAUcpConstraint@@PAUcpBody@@0NN@Z"
   cpGearJointSetRatio(*constraint.cpConstraint,value.cpFloat) As "?cpGearJointSetRatio@@YAXPAUcpConstraint@@N@Z"
   cpGrooveJointNew(*a.cpBody,*b.cpBody,groove_a.cpVect,groove_b.cpVect,anchr2.cpVect) As "?cpGrooveJointNew@@YAPAUcpConstraint@@PAUcpBody@@0UcpVect@@11@Z"
   cpGrooveJointSetGrooveA(*constraint.cpConstraint,value.cpVect) As "?cpGrooveJointSetGrooveA@@YAXPAUcpConstraint@@UcpVect@@@Z"
   cpGrooveJointSetGrooveB(*constraint.cpConstraint,value.cpVect) As "?cpGrooveJointSetGrooveB@@YAXPAUcpConstraint@@UcpVect@@@Z"
   cpHashSetCount(*set.cpHashSet) As "?cpHashSetCount@@YAHPAUcpHashSet@@@Z"
   cpHashSetEach(*set.cpHashSet,func.cpHashSetIteratorFunc,*data.void) As "?cpHashSetEach@@YAXPAUcpHashSet@@P6AXPAX1@Z1@Z"
   cpHashSetFilter(*set.cpHashSet,func.cpHashSetFilterFunc,*data.void) As "?cpHashSetFilter@@YAXPAUcpHashSet@@P6AHPAX1@Z1@Z"
   cpHashSetFind(*set.cpHashSet,hash.cpHashValue,*ptr.void) As "?cpHashSetFind@@YAPAXPAUcpHashSet@@IPAX@Z"
   cpHashSetFree(*set.cpHashSet) As "?cpHashSetFree@@YAXPAUcpHashSet@@@Z"
   cpHashSetInsert(*set.cpHashSet,hash.cpHashValue,*ptr.void,*data.void,trans.cpHashSetTransFunc) As "?cpHashSetInsert@@YAPAXPAUcpHashSet@@IPAX1P6APAX11@Z@Z"
   cpHashSetNew(size.int,eqlFunc.cpHashSetEqlFunc) As "?cpHashSetNew@@YAPAUcpHashSet@@HP6AHPAX0@Z@Z"
   cpHashSetRemove(*set.cpHashSet,hash.cpHashValue,*ptr.void) As "?cpHashSetRemove@@YAPAXPAUcpHashSet@@IPAX@Z"
   cpHashSetSetDefaultValue(*set.cpHashSet,*default_value.void) As "?cpHashSetSetDefaultValue@@YAXPAUcpHashSet@@PAX@Z"
   cpInitChipmunk(.) As "?cpInitChipmunk@@YAXXZ"
   cpMessage(*condition.char,*file.char,line.int,isError.int,*message.char,.) As "?cpMessage@@YAXPBD0HH0ZZ"
   cpMomentForBox2(m.cpFloat,box.cpBB) As "?cpMomentForBox2@@YANNUcpBB@@@Z"
   cpMomentForCircle(m.cpFloat,r1.cpFloat,r2.cpFloat,offset.cpVect) As "?cpMomentForCircle@@YANNNNUcpVect@@@Z"
   cpMomentForPoly(m.cpFloat,numVerts.int,*verts.cpVect,offset.cpVect) As "?cpMomentForPoly@@YANNHPBUcpVect@@U1@@Z"
   cpMomentForSegment(m.cpFloat,a.cpVect,b.cpVect) As "?cpMomentForSegment@@YANNUcpVect@@0@Z"
   cpPinJointNew(*a.cpBody,*b.cpBody,anchr1.cpVect,anchr2.cpVect) As "?cpPinJointNew@@YAPAUcpConstraint@@PAUcpBody@@0UcpVect@@1@Z"
   cpPivotJointNew(*a.cpBody,*b.cpBody,pivot.cpVect) As "?cpPivotJointNew@@YAPAUcpConstraint@@PAUcpBody@@0UcpVect@@@Z"
   cpPolyShapeCacheData(*poly.cpPolyShape,p.cVect,rot.cpVect) As "?cpPolyShapeCacheData@@YA?AUcpBB@@PAUcpPolyShape@@UcpVect@@1@Z"
   cpPolyShapeContainsVert(poly2.,v.) As "?cpPolyShapeContainsVert@@YAHPBUcpPolyShape@@UcpVect@@@Z"
   cpPolyShapeContainsVertPartial(poly2.,v.,n.) As "?cpPolyShapeContainsVertPartial@@YAHPBUcpPolyShape@@UcpVect@@1@Z"
   cpPolyShapeGetVert(*shape.cpShape,idx.int) As "?cpPolyShapeGetVert@@YA?AUcpVect@@PAUcpShape@@H@Z"
   cpPolyShapeNew(*body.cpBody,numVerts.int,*verts.cpVect,offset.cpVect) As "?cpPolyShapeNew@@YAPAUcpShape@@PAUcpBody@@HPAUcpVect@@U3@@Z"
   cpPolyShapePointQuery(*poly.cpPolyShape,p.cVect) As "?cpPolyShapePointQuery@@YAHPAUcpPolyShape@@UcpVect@@@Z"
   cpPolyShapeSegmentQuery(*poly.cpPolyShape,a.cpVect,b.cpVect,*info.cpSegmentQueryInfo) As "?cpPolyShapeSegmentQuery@@YAXPAUcpPolyShape@@UcpVect@@1PAUcpSegmentQueryInfo@@@Z"
   cpPolyShapeSetVerts(*shape.cpShape,numVerts.int,*verts.cpVect,offset.cpVect) As "?cpPolyShapeSetVerts@@YAXPAUcpShape@@HPAUcpVect@@U2@@Z"
   cpPolyShapeValueOnAxis(*poly.cpPolyShape,n.costcpVect,d.cpFloat) As "?cpPolyShapeValueOnAxis@@YANPBUcpPolyShape@@UcpVect@@N@Z"
   cpRatchetJointNew(*a.cpBody,*b.cpBody,phase.cpFloat,ratchet.cpFloat) As "?cpRatchetJointNew@@YAPAUcpConstraint@@PAUcpBody@@0NN@Z"
   cpRecenterPoly(numVerts.int,*verts.cpVect) As "?cpRecenterPoly@@YAXHPAUcpVect@@@Z"
   void.) As "?cpResetShapeIdCounter@@YAXXZ"
   cpRotaryLimitJointNew(*a.cpBody,*b.cpBody,min.cpFloat,max.cpFloat) As "?cpRotaryLimitJointNew@@YAPAUcpConstraint@@PAUcpBody@@0NN@Z"
   cpSegmentShapeCacheData(*seg.cpSegmentShape,p.cVect,rot.cpVect) As "?cpSegmentShapeCacheData@@YA?AUcpBB@@PAUcpSegmentShape@@UcpVect@@1@Z"
   cpSegmentShapeNew(*body.cpBody,a.cpVect,b.cpVect,r.cpFloat) As "?cpSegmentShapeNew@@YAPAUcpShape@@PAUcpBody@@UcpVect@@1N@Z"
   cpSegmentShapePointQuery(*seg.cpSegmentShape,p.cVect) As "?cpSegmentShapePointQuery@@YAHPAUcpSegmentShape@@UcpVect@@@Z"
   cpSegmentShapeSegmentQuery(*seg.cpSegmentShape,a.cpVect,b.cpVect,*info.cpSegmentQueryInfo) As "?cpSegmentShapeSegmentQuery@@YAXPAUcpSegmentShape@@UcpVect@@1PAUcpSegmentQueryInfo@@@Z"
   cpSegmentShapeSetEndpoints(*shape.cpShape,a.cpVect,b.cpVect) As "?cpSegmentShapeSetEndpoints@@YAXPAUcpShape@@UcpVect@@1@Z"
   cpSegmentShapeSetRadius(*shape.cpShape,radius.cpFloat) As "?cpSegmentShapeSetRadius@@YAXPAUcpShape@@N@Z"
   cpShapeActive(*shape.cpShape) As "?cpShapeActive@@YAHPAUcpShape@@@Z"
   cpShapeCacheBB(*shape.cpShape) As "?cpShapeCacheBB@@YA?AUcpBB@@PAUcpShape@@@Z"
   cpShapeFree(*shape.cpShape) As "?cpShapeFree@@YAXPAUcpShape@@@Z"
   cpShapePointQuery(shape.,*point.) As "?cpShapePointQuery@@YAHPAUcpShape@@UcpVect@@@Z"
   cpShapeSegmentQuery(shape.,start.,End.,info.) As "?cpShapeSegmentQuery@@YAHPAUcpShape@@UcpVect@@1PAUcpSegmentQueryInfo@@@Z"
   cpShapeSetBody(*shape.cpShape,*body.cpBody) As "?cpShapeSetBody@@YAXPAUcpShape@@PAUcpBody@@@Z"
   cpShapeUpdateFunc(*shape.cpShape,*unused.void) As "?cpShapeUpdateFunc@@YAXPAUcpShape@@PAX@Z"
   cpSimpleMotorNew(*a.cpBody,*b.cpBody,rate.cpFloat) As "?cpSimpleMotorNew@@YAPAUcpConstraint@@PAUcpBody@@0N@Z"
   cpSlideJointNew(*a.cpBody,*b.cpBody,anchr1.cpVect,anchr2.cpVect,min.cpFloat,max.cpFloat) As "?cpSlideJointNew@@YAPAUcpConstraint@@PAUcpBody@@0UcpVect@@1NN@Z"
   cpSpaceActivateShapesTouchingShape(*space.cpSpace,*shape.cpShape) As "?cpSpaceActivateShapesTouchingShape@@YAXPAUcpSpace@@PAUcpShape@@@Z"
   cpSpaceAddBody(*space.cpSpace,*body.cpBody) As "?cpSpaceAddBody@@YAPAUcpBody@@PAUcpSpace@@PAU1@@Z"
   cpSpaceAddCollisionHandler(. As "?cpSpaceAddCollisionHandler@@YAXPAUcpSpace@@IIP6AHPAUcpArbiter@@0PAX@Z3P6AX102@Z42@Z"
   cpSpaceAddConstraint(*space.cpSpace,*constraint.cpConstraint) As "?cpSpaceAddConstraint@@YAPAUcpConstraint@@PAUcpSpace@@PAU1@@Z"
   cpSpaceAddPostStepCallback(*space.cpSpace,func.cpPostStepFunc,*obj.void,*data.void) As "?cpSpaceAddPostStepCallback@@YAXPAUcpSpace@@P6AX0PAX1@Z11@Z"
   cpSpaceAddShape(*space.cpSpace,*shape.cpShape) As "?cpSpaceAddShape@@YAPAUcpShape@@PAUcpSpace@@PAU1@@Z"
   cpSpaceArbiterSetFilter(*arb.cpArbiter,*space.cpSpace) As "?cpSpaceArbiterSetFilter@@YAHPAUcpArbiter@@PAUcpSpace@@@Z"
   cpSpaceArbiterSetTrans(**shapes.cpShape,*space.cpSpace) As "?cpSpaceArbiterSetTrans@@YAPAXPAPAUcpShape@@PAUcpSpace@@@Z"
   cpSpaceBBQuery(*space.cpSpace,bb.cpBB,layers.cpLayers,group.cpGroup,func.cpSpaceBBQueryFunc,*data.void) As "?cpSpaceBBQuery@@YAXPAUcpSpace@@UcpBB@@IIP6AXPAUcpShape@@PAX@Z3@Z"
   cpSpaceContainsBody(space.,body.) As "?cpSpaceContainsBody@@YAHPAUcpSpace@@PAUcpBody@@@Z"
   cpSpaceContainsConstraint(space.,constraint.) As "?cpSpaceContainsConstraint@@YAHPAUcpSpace@@PAUcpConstraint@@@Z"
   cpSpaceContainsShape(space.,shape.) As "?cpSpaceContainsShape@@YAHPAUcpSpace@@PAUcpShape@@@Z"
   cpSpaceEachBody(*space.cpSpace,func.cpSpaceBodyIteratorFunc,*data.void) As "?cpSpaceEachBody@@YAXPAUcpSpace@@P6AXPAUcpBody@@PAX@Z2@Z"
   cpSpaceEachConstraint(*space.cpSpace,func.cpSpaceConstraintIteratorFunc,*data.void) As "?cpSpaceEachConstraint@@YAXPAUcpSpace@@P6AXPAUcpConstraint@@PAX@Z2@Z"
   cpSpaceEachShape(*space.cpSpace,func.cpSpaceShapeIteratorFunc,*data.void) As "?cpSpaceEachShape@@YAXPAUcpSpace@@P6AXPAUcpShape@@PAX@Z2@Z"
   cpSpaceFree(*space.cpSpace) As "?cpSpaceFree@@YAXPAUcpSpace@@@Z"
   cpSpaceGetPostStepData(*space.cpSpace,*obj.void) As "?cpSpaceGetPostStepData@@YAPAXPAUcpSpace@@PAX@Z"
   cpSpaceHashContains(*hash.cpSpaceHash,*obj.void,hashid.cpHashValue) As "?cpSpaceHashContains@@YAHPAUcpSpaceHash@@PAXI@Z"
   cpSpaceHashCount(*hash.cpSpaceHash) As "?cpSpaceHashCount@@YAHPAUcpSpaceHash@@@Z"
   cpSpaceHashDestroy(*hash.cpSpaceHash) As "?cpSpaceHashDestroy@@YAXPAUcpSpaceHash@@@Z"
   cpSpaceHashEach(*hash.cpSpaceHash,func.cpSpatialIndexIteratorFunc,*data.void) As "?cpSpaceHashEach@@YAXPAUcpSpaceHash@@P6AXPAX1@Z1@Z"
   cpSpaceHashNew(celldim.cpFloat,cells.int,bbfunc.cpSpatialIndexBBFunc,*staticIndex.cpSpatialIndex) As "?cpSpaceHashNew@@YAPAUcpSpatialIndex@@NHP6A?AUcpBB@@PAX@ZPAU1@@Z"
   cpSpaceHashPointQuery(*hash.cpSpaceHash,point.cpVect,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpaceHashPointQuery@@YAXPAUcpSpaceHash@@UcpVect@@P6AXPAX22@Z2@Z"
   cpSpaceHashQuery(*hash.cpSpaceHash,*obj.void,bb.cpBB,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpaceHashQuery@@YAXPAUcpSpaceHash@@PAXUcpBB@@P6AX111@Z1@Z"
   cpSpaceHashRehash(*hash.cpSpaceHash) As "?cpSpaceHashRehash@@YAXPAUcpSpaceHash@@@Z"
   cpSpaceHashRehashObject(*hash.cpSpaceHash,*obj.void,hashid.cpHashValue) As "?cpSpaceHashRehashObject@@YAXPAUcpSpaceHash@@PAXI@Z"
   cpSpaceHashReindexQuery(*hash.cpSpaceHash,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpaceHashReindexQuery@@YAXPAUcpSpaceHash@@P6AXPAX11@Z1@Z"
   cpSpaceHashRemove(*hash.cpSpaceHash,*obj.void,hashid.cpHashValue) As "?cpSpaceHashRemove@@YAXPAUcpSpaceHash@@PAXI@Z"
   cpSpaceHashSegmentQuery(*hash.cpSpaceHash,*obj.void,a.cpVect,b.cpVect,t_exit.cpFloat,func.cpSpatialIndexSegmentQueryFunc,*data.void) As "?cpSpaceHashSegmentQuery@@YAXPAUcpSpaceHash@@PAXUcpVect@@2NP6AN111@Z1@Z"
   void.) As "?cpSpaceNew@@YAPAUcpSpace@@XZ"
   cpSpacePointQueryFirst(*space.cpSpace,point.cpVect,layers.cpLayers,group.cpGroup) As "?cpSpacePointQueryFirst@@YAPAUcpShape@@PAUcpSpace@@UcpVect@@II@Z"
   cpSpacePostStepCallbackSetIter(*callback.cpPostStepCallback,*space.cpSpace) As "?cpSpacePostStepCallbackSetIter@@YAXPAUcpPostStepCallback@@PAUcpSpace@@@Z"
   cpSpaceProcessComponents(*space.cpSpace,dt.cpFloat) As "?cpSpaceProcessComponents@@YAXPAUcpSpace@@N@Z"
   cpSpaceReindexShapesForBody(*space.cpSpace,*body.cpBody) As "?cpSpaceReindexShapesForBody@@YAXPAUcpSpace@@PAUcpBody@@@Z"
   cpSpaceReindexStatic(*space.cpSpace) As "?cpSpaceReindexStatic@@YAXPAUcpSpace@@@Z"
   cpSpaceRemoveBody(*space.cpSpace,*body.cpBody) As "?cpSpaceRemoveBody@@YAXPAUcpSpace@@PAUcpBody@@@Z"
   cpSpaceRemoveConstraint(*space.cpSpace,*constraint.cpConstraint) As "?cpSpaceRemoveConstraint@@YAXPAUcpSpace@@PAUcpConstraint@@@Z"
   cpSpaceRemoveShape(*space.cpSpace,*shape.cpShape) As "?cpSpaceRemoveShape@@YAXPAUcpSpace@@PAUcpShape@@@Z"
   cpSpaceSegmentQuery(*space.cpSpace,start.cpVect,End.cpVect,layers.cpLayers,group.cpGroup,func.cpSpaceSegmentQueryFunc,*data.void) As "?cpSpaceSegmentQuery@@YAXPAUcpSpace@@UcpVect@@1IIP6AXPAUcpShape@@N1PAX@Z3@Z"
   cpSpaceSegmentQueryFirst(*space.cpSpace,start.cpVect,End.cpVect,layers.cpLayers,group.cpGroup,*out.cpSegmentQueryInfo) As "?cpSpaceSegmentQueryFirst@@YAPAUcpShape@@PAUcpSpace@@UcpVect@@1IIPAUcpSegmentQueryInfo@@@Z"
   cpSpaceSetDefaultCollisionHandler(. As "?cpSpaceSetDefaultCollisionHandler@@YAXPAUcpSpace@@P6AHPAUcpArbiter@@0PAX@Z3P6AX102@Z42@Z"
   cpSpaceShapeQuery(*space.cpSpace,*shape.cpShape,func.cpSpaceShapeQueryFunc,*data.void) As "?cpSpaceShapeQuery@@YAHPAUcpSpace@@PAUcpShape@@P6AX1PAUcpContactPointSet@@PAX@Z3@Z"
   cpSpaceStep(.) As "?cpSpaceStep@@YAXPAUcpSpace@@N@Z"
   cpSpaceUncacheArbiter(*space.cpSpace,*arb.cpArbiter) As "?cpSpaceUncacheArbiter@@YAXPAUcpSpace@@PAUcpArbiter@@@Z"
   cpSpaceUseSpatialHash(*space.cpSpace,Dim.cpFloat,count.int) As "?cpSpaceUseSpatialHash@@YAXPAUcpSpace@@NH@Z"
   cpSpatialIndexCollideStatic(*dynamicIndex.cpSpatialIndex,*staticIndex.cpSpatialIndex,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpatialIndexCollideStatic@@YAXPAUcpSpatialIndex@@0P6AXPAX11@Z1@Z"
   cpSpatialIndexCount(staticIndex.) As "?cpSpatialIndexCount@@YAHPAUcpSpatialIndex@@@Z"
   cpSpatialIndexDestroy(*index.cpSpatialIndex) As "?cpSpatialIndexDestroy@@YAXPAUcpSpatialIndex@@@Z"
   cpSpatialIndexEach(*index.cpSpatialIndex,func.cpSpatialIndexIteratorFunc,*data.void) As "?cpSpatialIndexEach@@YAXPAUcpSpatialIndex@@P6AXPAX1@Z1@Z"
   cpSpatialIndexFree(*index.cpSpatialIndex) As "?cpSpatialIndexFree@@YAXPAUcpSpatialIndex@@@Z"
   cpSpatialIndexInit(*index.cpSpatialIndex,*klass.cpSpatialIndexClass,bbfunc.cpSpatialIndexBBFunc,*staticIndex.cpSpatialIndex) As "?cpSpatialIndexInit@@YAPAUcpSpatialIndex@@PAU1@PAUcpSpatialIndexClass@@P6A?AUcpBB@@PAX@Z0@Z"
   cpSpatialIndexInsert(*index.cpSpatialIndex,*obj.void,hashid.cpHashValue) As "?cpSpatialIndexInsert@@YAXPAUcpSpatialIndex@@PAXI@Z"
   cpSpatialIndexPointQuery(*index.cpSpatialIndex,point.cpVect,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpatialIndexPointQuery@@YAXPAUcpSpatialIndex@@UcpVect@@P6AXPAX22@Z2@Z"
   cpSpatialIndexQuery(*index.cpSpatialIndex,*obj.void,bb.cpBB,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpatialIndexQuery@@YAXPAUcpSpatialIndex@@PAXUcpBB@@P6AX111@Z1@Z"
   cpSpatialIndexReindex(*index.cpSpatialIndex) As "?cpSpatialIndexReindex@@YAXPAUcpSpatialIndex@@@Z"
   cpSpatialIndexReindexObject(*index.cpSpatialIndex,*obj.void,hashid.cpHashValue) As "?cpSpatialIndexReindexObject@@YAXPAUcpSpatialIndex@@PAXI@Z"
   cpSpatialIndexReindexQuery(*index.cpSpatialIndex,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSpatialIndexReindexQuery@@YAXPAUcpSpatialIndex@@P6AXPAX11@Z1@Z"
   cpSpatialIndexRemove(*index.cpSpatialIndex,*obj.void,hashid.cpHashValue) As "?cpSpatialIndexRemove@@YAXPAUcpSpatialIndex@@PAXI@Z"
   cpSpatialIndexSegmentQuery(*index.cpSpatialIndex,*obj.void,a.cpVect,b.cpVect,t_exit.cpFloat,func.cpSpatialIndexSegmentQueryFunc,*data.void) As "?cpSpatialIndexSegmentQuery@@YAXPAUcpSpatialIndex@@PAXUcpVect@@2NP6AN111@Z1@Z"
   cpSweep1DContains(*sweep.cpSweep1D,*obj.void,hashid.cpHashValue) As "?cpSweep1DContains@@YAHPAUcpSweep1D@@PAXI@Z"
   cpSweep1DCount(*sweep.cpSweep1D) As "?cpSweep1DCount@@YAHPAUcpSweep1D@@@Z"
   cpSweep1DDestroy(*sweep.cpSweep1D) As "?cpSweep1DDestroy@@YAXPAUcpSweep1D@@@Z"
   cpSweep1DEach(*sweep.cpSweep1D,func.cpSpatialIndexIteratorFunc,*data.void) As "?cpSweep1DEach@@YAXPAUcpSweep1D@@P6AXPAX1@Z1@Z"
   cpSweep1DInsert(*sweep.cpSweep1D,*obj.void,hashid.cpHashValue) As "?cpSweep1DInsert@@YAXPAUcpSweep1D@@PAXI@Z"
   cpSweep1DNew(bbfunc.cpSpatialIndexBBFunc,*staticIndex.cpSpatialIndex) As "?cpSweep1DNew@@YAPAUcpSpatialIndex@@P6A?AUcpBB@@PAX@ZPAU1@@Z"
   cpSweep1DPointQuery(*sweep.cpSweep1D,point.cpVect,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSweep1DPointQuery@@YAXPAUcpSweep1D@@UcpVect@@P6AXPAX22@Z2@Z"
   cpSweep1DReindex(*sweep.cpSweep1D) As "?cpSweep1DReindex@@YAXPAUcpSweep1D@@@Z"
   cpSweep1DReindexObject(*sweep.cpSweep1D,*obj.void,hashid.cpHashValue) As "?cpSweep1DReindexObject@@YAXPAUcpSweep1D@@PAXI@Z"
   cpSweep1DReindexQuery(*sweep.cpSweep1D,func.cpSpatialIndexQueryFunc,*data.void) As "?cpSweep1DReindexQuery@@YAXPAUcpSweep1D@@P6AXPAX11@Z1@Z"
   cpSweep1DRemove(*sweep.cpSweep1D,*obj.void,hashid.cpHashValue) As "?cpSweep1DRemove@@YAXPAUcpSweep1D@@PAXI@Z"
   cpSweep1DSegmentQuery(*sweep.cpSweep1D,*obj.void,a.cpVect,b.cpVect,t_exit.cpFloat,func.cpSpatialIndexSegmentQueryFunc,*data.void) As "?cpSweep1DSegmentQuery@@YAXPAUcpSweep1D@@PAXUcpVect@@2NP6AN111@Z1@Z"
   cpfabs(f.cpFloat) As "?cpfabs@@YANN@Z"
   cpfcompare(*a.cpFloat,*b.cpFloat) As "?cpfcompare@@YAHPBN0@Z"
   cpvcross(v1.cpVect,v2.cpVect) As "?cpvcross@@YANUcpVect@@0@Z"
   cpvdist(v1.cpVect,v2.cpVect) As "?cpvdist@@YANUcpVect@@0@Z"
   cpvforangle(a.cpFlot) As "?cpvforangle@@YA?AUcpVect@@N@Z"
   cpvlength(v.cpVect) As "?cpvlength@@YANUcpVect@@@Z"
   cpvlerp(v1.cpVect,v2.cpVect,t.conscpFloa) As "?cpvlerp@@YA?AUcpVect@@U1@0N@Z"
   cpvnear(v1.cpVect,v2.cpVect,dist.cpFloat) As "?cpvnear@@YAHUcpVect@@0N@Z"
   cpvneg(v.cpVect) As "?cpvneg@@YA?AUcpVect@@U1@@Z"
   cpvperp(v.cpVect) As "?cpvperp@@YA?AUcpVect@@U1@@Z"
   cpvproject(v1.cpVect,v2.cpVect) As "?cpvproject@@YA?AUcpVect@@U1@0@Z"
   cpvrotate(v1.cpVect,v2.cpVect) As "?cpvrotate@@YA?AUcpVect@@U1@0@Z"
   cpvslerpconst(v1.cpVect,v2.cpVect,a.cpFlot) As "?cpvslerpconst@@YA?AUcpVect@@U1@0N@Z"
   cpvstr(v.cpVect) As "?cpvstr@@YAPADUcpVect@@@Z"
   cpvtoangle(v.cpVect) As "?cpvtoangle@@YANUcpVect@@@Z"
   cpvunrotate(v1.cpVect,v2.cpVect) As "?cpvunrotate@@YA?AUcpVect@@U1@0@Z"
EndImport

Re: E.S.L (Extract Static Libs) = a wrapper generator

Verfasst: 21.08.2011 21:41
von mpz
Hi,

sieht schon mal gut aus (besonders da ich mir auch schon mal diese lib angeschaut habe). Wenn jetzt noch die Structuren und Interface automatisch erkannt und reingeschrieben werden wäre ich wunschlos glücklich und kann meine C Kentnisse einmotten und verstauben lassen.

Ist so etwas den technisch denkbar und geplant?

Gruß Michael