Made it work again - everything needs to be _stdcall it seems.
This commit is contained in:
+593
-594
File diff suppressed because it is too large
Load Diff
+149
-148
@@ -1,149 +1,150 @@
|
||||
|
||||
#ifndef BASIC_H
|
||||
#define BASIC_H
|
||||
|
||||
#include <string>
|
||||
|
||||
enum{
|
||||
BBTYPE_END=0,
|
||||
BBTYPE_INT=1,BBTYPE_FLT=2,
|
||||
BBTYPE_STR=3,BBTYPE_CSTR=4,
|
||||
BBTYPE_OBJ=5,BBTYPE_VEC=6
|
||||
};
|
||||
|
||||
#pragma pack( push,1 )
|
||||
|
||||
struct BBObj;
|
||||
struct BBStr;
|
||||
struct BBType;
|
||||
struct BBObjType;
|
||||
struct BBVecType;
|
||||
union BBField;
|
||||
struct BBArray;
|
||||
|
||||
struct BBObj{
|
||||
BBField *fields;
|
||||
BBObj *next,*prev;
|
||||
BBObjType *type;
|
||||
int ref_cnt;
|
||||
};
|
||||
|
||||
struct BBType{
|
||||
int type;
|
||||
BBType( int n ):type(n){}
|
||||
};
|
||||
|
||||
struct BBObjType : public BBType{
|
||||
BBObj used,free;
|
||||
int fieldCnt;
|
||||
BBType *fieldTypes[1];
|
||||
};
|
||||
|
||||
struct BBVecType : public BBType{
|
||||
int size;
|
||||
BBType *elementType;
|
||||
};
|
||||
|
||||
union BBField{
|
||||
int INT;
|
||||
float FLT;
|
||||
BBStr *STR;
|
||||
char *CSTR;
|
||||
BBObj *OBJ;
|
||||
void *VEC;
|
||||
};
|
||||
|
||||
struct BBArray{
|
||||
void *data;
|
||||
int elementType,dims,scales[1];
|
||||
};
|
||||
|
||||
struct BBStr : public std::string{
|
||||
BBStr *next,*prev;
|
||||
|
||||
BBStr();
|
||||
BBStr( const char *s );
|
||||
BBStr( const char *s,int n );
|
||||
BBStr( const BBStr &s );
|
||||
BBStr( const std::string &s );
|
||||
BBStr &operator=( const char *s );
|
||||
BBStr &operator=( const BBStr &s );
|
||||
BBStr &operator=( const std::string &s );
|
||||
~BBStr();
|
||||
|
||||
void *operator new( size_t size );
|
||||
void operator delete( void *q );
|
||||
|
||||
void *operator new( size_t size,const char *file,int line ){ return operator new( size ); }
|
||||
void operator delete( void *q,const char *file,int line ){ operator delete( q ); }
|
||||
};
|
||||
|
||||
struct BBData{
|
||||
int fieldType;
|
||||
BBField field;
|
||||
};
|
||||
|
||||
#pragma pack( pop )
|
||||
|
||||
void basic_link();
|
||||
|
||||
extern BBType _bbIntType;
|
||||
extern BBType _bbFltType;
|
||||
extern BBType _bbStrType;
|
||||
extern BBType _bbCStrType;
|
||||
|
||||
BBStr * _bbStrLoad( BBStr **var );
|
||||
void _bbStrRelease( BBStr *str );
|
||||
void _bbStrStore( BBStr **var,BBStr *str );
|
||||
int _bbStrCompare( BBStr *lhs,BBStr *rhs );
|
||||
|
||||
BBStr * _bbStrConcat( BBStr *s1,BBStr *s2 );
|
||||
int _bbStrToInt( BBStr *s );
|
||||
BBStr * _bbStrFromInt( int n );
|
||||
float _bbStrToFloat( BBStr *s );
|
||||
BBStr * _bbStrFromFloat( float n );
|
||||
BBStr * _bbStrConst( const char *s );
|
||||
|
||||
void _bbDimArray( BBArray *array );
|
||||
void _bbUndimArray( BBArray *array );
|
||||
void _bbArrayBoundsEx();
|
||||
|
||||
void * _bbVecAlloc( BBVecType *type );
|
||||
void _bbVecFree( void *vec,BBVecType *type );
|
||||
void _bbVecBoundsEx();
|
||||
|
||||
BBObj * _bbObjNew( BBObjType *t );
|
||||
void _bbObjDelete( BBObj *obj );
|
||||
void _bbObjDeleteEach( BBObjType *type );
|
||||
void _bbObjRelease( BBObj *obj );
|
||||
void _bbObjStore( BBObj **var,BBObj *obj );
|
||||
BBObj * _bbObjNext( BBObj *obj );
|
||||
BBObj * _bbObjPrev( BBObj *obj );
|
||||
BBObj * _bbObjFirst( BBObjType *t );
|
||||
BBObj * _bbObjLast( BBObjType *t );
|
||||
void _bbObjInsBefore( BBObj *o1,BBObj *o2 );
|
||||
void _bbObjInsAfter( BBObj *o1,BBObj *o2 );
|
||||
int _bbObjEachFirst( BBObj **var,BBObjType *type );
|
||||
int _bbObjEachNext( BBObj **var );
|
||||
int _bbObjCompare( BBObj *o1,BBObj *o2 );
|
||||
BBStr * _bbObjToStr( BBObj *obj );
|
||||
int _bbObjToHandle( BBObj *obj );
|
||||
BBObj * _bbObjFromHandle( int handle,BBObjType *type );
|
||||
void _bbNullObjEx();
|
||||
|
||||
void _bbRestore( BBData *data );
|
||||
int _bbReadInt();
|
||||
float _bbReadFloat();
|
||||
BBStr * _bbReadStr();
|
||||
|
||||
int _bbAbs( int n );
|
||||
int _bbSgn( int n );
|
||||
int _bbMod( int x,int y );
|
||||
float _bbFAbs( float n );
|
||||
float _bbFSgn( float n );
|
||||
float _bbFMod( float x,float y );
|
||||
float _bbFPow( float x,float y );
|
||||
|
||||
void bbRuntimeStats();
|
||||
|
||||
|
||||
#ifndef BASIC_H
|
||||
#define BASIC_H
|
||||
|
||||
#include <string>
|
||||
#include <mutex>
|
||||
|
||||
enum {
|
||||
BBTYPE_END = 0,
|
||||
BBTYPE_INT = 1, BBTYPE_FLT = 2,
|
||||
BBTYPE_STR = 3, BBTYPE_CSTR = 4,
|
||||
BBTYPE_OBJ = 5, BBTYPE_VEC = 6
|
||||
};
|
||||
|
||||
#pragma pack( push,1 )
|
||||
|
||||
struct BBObj;
|
||||
struct BBStr;
|
||||
struct BBType;
|
||||
struct BBObjType;
|
||||
struct BBVecType;
|
||||
union BBField;
|
||||
struct BBArray;
|
||||
|
||||
struct BBObj {
|
||||
BBField *fields;
|
||||
BBObj *next, *prev;
|
||||
BBObjType *type;
|
||||
int ref_cnt;
|
||||
};
|
||||
|
||||
struct BBType {
|
||||
int type;
|
||||
BBType(int n) :type(n) {}
|
||||
};
|
||||
|
||||
struct BBObjType : public BBType {
|
||||
BBObj used, free;
|
||||
int fieldCnt;
|
||||
BBType *fieldTypes[1];
|
||||
};
|
||||
|
||||
struct BBVecType : public BBType {
|
||||
int size;
|
||||
BBType *elementType;
|
||||
};
|
||||
|
||||
union BBField {
|
||||
int INT;
|
||||
float FLT;
|
||||
BBStr *STR;
|
||||
char *CSTR;
|
||||
BBObj *OBJ;
|
||||
void *VEC;
|
||||
};
|
||||
|
||||
struct BBArray {
|
||||
void *data;
|
||||
int elementType, dims, scales[1];
|
||||
};
|
||||
|
||||
struct BBStr : public std::string {
|
||||
BBStr *next, *prev;
|
||||
|
||||
BBStr();
|
||||
BBStr(const char *s);
|
||||
BBStr(const char *s, int n);
|
||||
BBStr(const BBStr &s);
|
||||
BBStr(const std::string &s);
|
||||
BBStr &operator=(const char *s);
|
||||
BBStr &operator=(const BBStr &s);
|
||||
BBStr &operator=(const std::string &s);
|
||||
~BBStr();
|
||||
|
||||
void *operator new(size_t size);
|
||||
void operator delete(void *q);
|
||||
|
||||
void *operator new(size_t size, const char *file, int line) { return operator new(size); }
|
||||
void operator delete(void *q, const char *file, int line) { operator delete(q); }
|
||||
};
|
||||
|
||||
struct BBData {
|
||||
int fieldType;
|
||||
BBField field;
|
||||
};
|
||||
|
||||
#pragma pack( pop )
|
||||
|
||||
void basic_link();
|
||||
|
||||
extern BBType _bbIntType;
|
||||
extern BBType _bbFltType;
|
||||
extern BBType _bbStrType;
|
||||
extern BBType _bbCStrType;
|
||||
|
||||
BBStr * _bbStrLoad(BBStr **var);
|
||||
void _bbStrRelease(BBStr *str);
|
||||
void _bbStrStore(BBStr **var, BBStr *str);
|
||||
int _bbStrCompare(BBStr *lhs, BBStr *rhs);
|
||||
|
||||
BBStr * _bbStrConcat(BBStr *s1, BBStr *s2);
|
||||
int _bbStrToInt(BBStr *s);
|
||||
BBStr * _bbStrFromInt(int n);
|
||||
float _bbStrToFloat(BBStr *s);
|
||||
BBStr * _bbStrFromFloat(float n);
|
||||
BBStr * _bbStrConst(const char *s);
|
||||
|
||||
void _bbDimArray(BBArray *array);
|
||||
void _bbUndimArray(BBArray *array);
|
||||
void _bbArrayBoundsEx();
|
||||
|
||||
void * _bbVecAlloc(BBVecType *type);
|
||||
void _bbVecFree(void *vec, BBVecType *type);
|
||||
void _bbVecBoundsEx();
|
||||
|
||||
BBObj * _bbObjNew(BBObjType *t);
|
||||
void _bbObjDelete(BBObj *obj);
|
||||
void _bbObjDeleteEach(BBObjType *type);
|
||||
void _bbObjRelease(BBObj *obj);
|
||||
void _bbObjStore(BBObj **var, BBObj *obj);
|
||||
BBObj * _bbObjNext(BBObj *obj);
|
||||
BBObj * _bbObjPrev(BBObj *obj);
|
||||
BBObj * _bbObjFirst(BBObjType *t);
|
||||
BBObj * _bbObjLast(BBObjType *t);
|
||||
void _bbObjInsBefore(BBObj *o1, BBObj *o2);
|
||||
void _bbObjInsAfter(BBObj *o1, BBObj *o2);
|
||||
int _bbObjEachFirst(BBObj **var, BBObjType *type);
|
||||
int _bbObjEachNext(BBObj **var);
|
||||
int _bbObjCompare(BBObj *o1, BBObj *o2);
|
||||
BBStr * _bbObjToStr(BBObj *obj);
|
||||
int _bbObjToHandle(BBObj *obj);
|
||||
BBObj * _bbObjFromHandle(int handle, BBObjType *type);
|
||||
void _bbNullObjEx();
|
||||
|
||||
void _bbRestore(BBData *data);
|
||||
int _bbReadInt();
|
||||
float _bbReadFloat();
|
||||
BBStr * _bbReadStr();
|
||||
|
||||
int _bbAbs(int n);
|
||||
int _bbSgn(int n);
|
||||
int _bbMod(int x, int y);
|
||||
float _bbFAbs(float n);
|
||||
float _bbFSgn(float n);
|
||||
float _bbFMod(float x, float y);
|
||||
float _bbFPow(float x, float y);
|
||||
|
||||
void bbRuntimeStats();
|
||||
|
||||
#endif
|
||||
@@ -68,7 +68,7 @@
|
||||
<ControlFlowGuard>false</ControlFlowGuard>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
@@ -95,7 +95,7 @@
|
||||
<PrecompiledHeaderFile />
|
||||
<ControlFlowGuard>false</ControlFlowGuard>
|
||||
<ProgramDataBaseFileName>$(IntDir)vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<CallingConvention>StdCall</CallingConvention>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
|
||||
Reference in New Issue
Block a user