; 
; Exports of file bnts.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY bnts.dll
EXPORTS
; public: __cdecl BNTS::BNTS(void) __ptr64
??0BNTS@@QEAA@XZ
; public: __cdecl BNTS::~BNTS(void) __ptr64
??1BNTS@@QEAA@XZ
; public: class BNTS & __ptr64 __cdecl BNTS::operator=(class BNTS const & __ptr64) __ptr64
??4BNTS@@QEAAAEAV0@AEBV0@@Z
; protected: int __cdecl BNTS::BGetPropItemReal(class LTBNPROP & __ptr64,char const * __ptr64,int,double & __ptr64) __ptr64
?BGetPropItemReal@BNTS@@IEAAHAEAVLTBNPROP@@PEBDHAEAN@Z
; protected: int __cdecl BNTS::BGetPropItemStr(class LTBNPROP & __ptr64,char const * __ptr64,int,class ZSTR & __ptr64) __ptr64
?BGetPropItemStr@BNTS@@IEAAHAEAVLTBNPROP@@PEBDHAEAVZSTR@@@Z
; public: int __cdecl BNTS::BGetRecommendations(void) __ptr64
?BGetRecommendations@BNTS@@QEAAHXZ
; public: int __cdecl BNTS::BImpossible(void) __ptr64
?BImpossible@BNTS@@QEAAHXZ
; public: int __cdecl BNTS::BNetPropItemReal(char const * __ptr64,int,double & __ptr64) __ptr64
?BNetPropItemReal@BNTS@@QEAAHPEBDHAEAN@Z
; public: int __cdecl BNTS::BNetPropItemStr(char const * __ptr64,int) __ptr64
?BNetPropItemStr@BNTS@@QEAAHPEBDH@Z
; public: int __cdecl BNTS::BNodePropItemReal(char const * __ptr64,int,double & __ptr64) __ptr64
?BNodePropItemReal@BNTS@@QEAAHPEBDHAEAN@Z
; public: int __cdecl BNTS::BNodePropItemStr(char const * __ptr64,int) __ptr64
?BNodePropItemStr@BNTS@@QEAAHPEBDH@Z
; public: int __cdecl BNTS::BNodeSet(int,bool) __ptr64
?BNodeSet@BNTS@@QEAAHH_N@Z
; public: int __cdecl BNTS::BNodeSetCurrent(int) __ptr64
?BNodeSetCurrent@BNTS@@QEAAHH@Z
; public: int __cdecl BNTS::BReadModel(char const * __ptr64,char const * __ptr64) __ptr64
?BReadModel@BNTS@@QEAAHPEBD0@Z
; public: bool __cdecl BNTS::BValidNet(void)const  __ptr64
?BValidNet@BNTS@@QEBA_NXZ
; public: bool __cdecl BNTS::BValidNode(void)const  __ptr64
?BValidNode@BNTS@@QEBA_NXZ
; public: int __cdecl BNTS::CInt(void)const  __ptr64
?CInt@BNTS@@QEBAHXZ
; public: int __cdecl BNTS::CNode(void) __ptr64
?CNode@BNTS@@QEAAHXZ
; public: int __cdecl BNTS::CReal(void)const  __ptr64
?CReal@BNTS@@QEBAHXZ
; public: void __cdecl BNTS::Clear(void) __ptr64
?Clear@BNTS@@QEAAXXZ
; protected: void __cdecl BNTS::ClearArrays(void) __ptr64
?ClearArrays@BNTS@@IEAAXXZ
; protected: void __cdecl BNTS::ClearString(void) __ptr64
?ClearString@BNTS@@IEAAXXZ
; public: enum ESTDLBL  __cdecl BNTS::ELblNode(void) __ptr64
?ELblNode@BNTS@@QEAA?AW4ESTDLBL@@XZ
; public: int __cdecl BNTS::INode(char const * __ptr64) __ptr64
?INode@BNTS@@QEAAHPEBD@Z
; public: int __cdecl BNTS::INodeCst(void) __ptr64
?INodeCst@BNTS@@QEAAHXZ
; public: int __cdecl BNTS::INodeCurrent(void) __ptr64
?INodeCurrent@BNTS@@QEAAHXZ
; public: int __cdecl BNTS::INodeState(void) __ptr64
?INodeState@BNTS@@QEAAHXZ
; protected: class MBNETDSCTS & __ptr64 __cdecl BNTS::Mbnet(void) __ptr64
?Mbnet@BNTS@@IEAAAEAVMBNETDSCTS@@XZ
; protected: class MBNETDSCTS const & __ptr64 __cdecl BNTS::Mbnet(void)const  __ptr64
?Mbnet@BNTS@@IEBAAEBVMBNETDSCTS@@XZ
; public: void __cdecl BNTS::NodeBelief(void) __ptr64
?NodeBelief@BNTS@@QEAAXXZ
; public: void __cdecl BNTS::NodeFullName(void) __ptr64
?NodeFullName@BNTS@@QEAAXXZ
; public: void __cdecl BNTS::NodeStateName(int) __ptr64
?NodeStateName@BNTS@@QEAAXH@Z
; public: void __cdecl BNTS::NodeSymName(void) __ptr64
?NodeSymName@BNTS@@QEAAXXZ
; protected: class GNODEMBND * __ptr64 __cdecl BNTS::Pgndd(void) __ptr64
?Pgndd@BNTS@@IEAAPEAVGNODEMBND@@XZ
; public: int const * __ptr64 __cdecl BNTS::RgInt(void)const  __ptr64
?RgInt@BNTS@@QEBAPEBHXZ
; public: double const * __ptr64 __cdecl BNTS::RgReal(void)const  __ptr64
?RgReal@BNTS@@QEBAPEBNXZ
; public: char const * __ptr64 __cdecl BNTS::SzcResult(void)const  __ptr64
?SzcResult@BNTS@@QEBAPEBDXZ
; protected: class ZSTR & __ptr64 __cdecl BNTS::ZstrResult(void) __ptr64
?ZstrResult@BNTS@@IEAAAEAVZSTR@@XZ
