интересно девки пляшут....
оказывается pcoinTip->getstats(stats) отлично вызывается из main.cpp
более того этот getstats(stats) фигурирует в файлах version_set и db_impl
и там типа он и кешируется помоему
осталось узнать как в stats подсунуть мою переменную
Так если getstats(stats) вызывается, то перед передачей параметра stats просто инициализировать нужное. Правда скороей всего перетрёт, но нужно по коду смотреть. Или нужно добавить новое поле в структуре? Тогда там, где она определяется - в coins.h
struct CCoinsStats
{
int nHeight;
uint256 hashBlock;
uint64_t nTransactions;
uint64_t nTransactionOutputs;
uint64_t nSerializedSize;
uint256 hashSerialized;
CAmount nTotalAmount;
CCoinsStats() : nHeight(0), nTransactions(0), nTransactionOutputs(0), nSerializedSize(0), nTotalAmount(0) {}
};
до этого я уже дошел, но при добавлении в структуру дополнительного типа nAdress;
компилятор ругается что не может найти его, хотя он указан везде где ранее был указан например CAmount nTotalAmount
такое ощущение ему просто ненравится слово nAdress, причем неважно какой тип данных передавать
например пробовал подсовывать int64 nAdress казалось бы простой большой тип числа, но нифига!
с другой стороны пробовал CAmount nTotalAmount; заменить на int64 nTotalAmount; и все ок
думал это ограничение на размер структуры, но нет если менять местами CAmount nTotalAmount; с int64 nAdress
он все равно ругается именно на int64 nAdress;
но это все лирика, дело в том что мне нужно передать через эту структуру данные типа CTxDestination nAdress; и вот тут беда беда......
ухожу от проблемы ввода ной переменной nAdress; в структуру вместо нее просто использую переменную nTotalAmount;
везде ее прописываю (и на входе и на выходе как CTxDestination)
и соответственно в структуре прописываю CTxDestination nTotalAmount;
запускаю компилятор, и там вообще страх господень начинается :
заранее поясню, в main.h где сидит эта структура base58.h где описан тип CTxDestination инклюдил
вот результат
encing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
..\deps\boost_1_55_0/boost/thread/win32/shared_mutex.hpp:53:52: warning: derefer
encing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
return *reinterpret_cast(&res);
^
..\deps\boost_1_55_0/boost/thread/win32/shared_mutex.hpp:53:52: warning: derefer
encing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
In file included from ..\deps\boost_1_55_0/boost/variant.hpp:17:0,
from src/script.h:12,
from src/main.h:11,
from src/wallet.h:13,
from src/init.h:8,
from src\qt\bitcoin.cpp:13:
..\deps\boost_1_55_0/boost/variant/variant.hpp: In instantiation of 'void boost:
:variant16, T17, T18, T19>::convert_construct(T&, int, mpl_::false_) [with T = const int
; T0_ = CNoDestination; T1 = CKeyID; T2 = CScriptID; T3 = boost::detail::variant
::void_; T4 = boost::detail::variant::void_; T5 = boost::detail::variant::void_;
T6 = boost::detail::variant::void_; T7 = boost::detail::variant::void_; T8 = bo
ost::detail::variant::void_; T9 = boost::detail::variant::void_; T10 = boost::de
tail::variant::void_; T11 = boost::detail::variant::void_; T12 = boost::detail::
variant::void_; T13 = boost::detail::variant::void_; T14 = boost::detail::varian
t::void_; T15 = boost::detail::variant::void_; T16 = boost::detail::variant::voi
d_; T17 = boost::detail::variant::void_; T18 = boost::detail::variant::void_; T1
9 = boost::detail::variant::void_; mpl_::false_ = mpl_::bool_]':
..\deps\boost_1_55_0/boost/variant/variant.hpp:1740:38: required from 'boost::
variant6, T17, T18, T19>::variant(const T&) [with T = int; T0_ = CNoDestination; T1 = C
KeyID; T2 = CScriptID; T3 = boost::detail::variant::void_; T4 = boost::detail::v
ariant::void_; T5 = boost::detail::variant::void_; T6 = boost::detail::variant::
void_; T7 = boost::detail::variant::void_; T8 = boost::detail::variant::void_; T
9 = boost::detail::variant::void_; T10 = boost::detail::variant::void_; T11 = bo
ost::detail::variant::void_; T12 = boost::detail::variant::void_; T13 = boost::d
etail::variant::void_; T14 = boost::detail::variant::void_; T15 = boost::detail:
:variant::void_; T16 = boost::detail::variant::void_; T17 = boost::detail::varia
nt::void_; T18 = boost::detail::variant::void_; T19 = boost::detail::variant::vo
id_]'
src/main.h:2166:142: required from here
..\deps\boost_1_55_0/boost/variant/variant.hpp:1594:17: error: no matching funct
ion for call to 'boost::variant::initializer:
:initialize(void*, const int&)'
)
^
..\deps\boost_1_55_0/boost/variant/variant.hpp:1594:17: note: candidates are:
In file included from ..\deps\boost_1_55_0/boost/variant/variant.hpp:33:0,
from ..\deps\boost_1_55_0/boost/variant.hpp:17,
from src/script.h:12,
from src/main.h:11,
from src/wallet.h:13,
from src/init.h:8,
from src\qt\bitcoin.cpp:13:
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:104:24: note: static i
nt boost::detail::variant::make_initializer_node::apply
::initializer_node::initialize(void*, boost::detail::variant::make_initializer_n
ode::apply::initializer_node::param_T) [with BaseIndexP
air = boost::mpl::pairt::mpl::pairir >, boost::mpl::l_iter
> >::initializer_node, mpl
_::int_<1> >, boost::mpl::l_iter > >::initi
alizer_node, mpl_::int_<2> >; Iterator = boost::mpl::l_itercriptID> >; boost::detail::variant::make_initializer_node::applyIterator>::initializer_node::param_T = const CScriptID&]
static int initialize(void* dest, param_T operand)
^
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:104:24: note: no kno
wn conversion for argument 2 from 'const int' to 'boost::detail::variant::make_i
nitializer_node::apply_node::applyly >, b
oost::mpl::l_iter > >::init
ializer_node, mpl_::int_<1> >, boost::mpl::l_iteriptID> > >::initializer_node, mpl_::int_<2> >, boost::mpl::l_iterst1 > >::initializer_node::param_T {aka const CScriptID&}'
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:104:24: note: static i
nt boost::detail::variant::make_initializer_node::apply
::initializer_node::initialize(void*, boost::detail::variant::make_initializer_n
ode::apply::initializer_node::param_T) [with BaseIndexP
air = boost::mpl::pair >
; Iterator = boost::mpl::l_itertID> >; boost::detail::variant::make_initializer_node::applyator>::initializer_node::param_T = const CNoDestination&]
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:104:24: note: no kno
wn conversion for argument 2 from 'const int' to 'boost::detail::variant::make_i
nitializer_node::apply, mpl_::int_<0> >, boost::mpl::l_iterCScriptID> > >::initializer_node::param_T {aka const CNoDestination&}'
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:149:17: note: static v
oid boost::detail::variant::initializer_root::initialize()
static void initialize();
^
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:149:17: note: candid
ate expects 0 arguments, 2 provided
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:104:24: note: static i
nt boost::detail::variant::make_initializer_node::apply
::initializer_node::initialize(void*, boost::detail::variant::make_initializer_n
ode::apply::initializer_node::param_T) [with BaseIndexP
air = boost::mpl::pairt::mpl::pair >, boost::m
pl::l_iter > >::initializer
_node, mpl_::int_<1> >; Iterator = boost::mpl::l_iterCScriptID> >; boost::detail::variant::make_initializer_node::apply, Iterator>::initializer_node::param_T = const CKeyID&]
static int initialize(void* dest, param_T operand)
^
..\deps\boost_1_55_0/boost/variant/detail/initializer.hpp:104:24: note: no kno
wn conversion for argument 2 from 'const int' to 'boost::detail::variant::make_i
nitializer_node::apply_node::applyt_<0> >, boost::mpl::l_iter
> >::initializer_node, mpl_::int_<1> >, boost::mpl::l_itereyID, CScriptID> > >::initializer_node::param_T {aka const CKeyID&}'
In file included from ..\deps\boost_1_55_0/boost/system/system_error.hpp:14:0,
from ..\deps\boost_1_55_0/boost/thread/exceptions.hpp:22,
from ..\deps\boost_1_55_0/boost/thread/win32/thread_primitives.
hpp:16,
from ..\deps\boost_1_55_0/boost/thread/win32/basic_timed_mutex.
hpp:14,
from ..\deps\boost_1_55_0/boost/thread/win32/mutex.hpp:9,
from ..\deps\boost_1_55_0/boost/thread/mutex.hpp:14,
from src/allocators.h:10,
from src\qt\walletmodel.h:12,
from src\qt\bitcoin.cpp:9:
..\deps\boost_1_55_0/boost/system/error_code.hpp: At global scope:
..\deps\boost_1_55_0/boost/system/error_code.hpp:222:36: warning: 'boost::system
::posix_category' defined but not used [-Wunused-variable]
static const error_category & posix_category = generic_category();
^
..\deps\boost_1_55_0/boost/system/error_code.hpp:223:36: warning: 'boost::system
::errno_ecat' defined but not used [-Wunused-variable]
static const error_category & errno_ecat = generic_category();
^
..\deps\boost_1_55_0/boost/system/error_code.hpp:224:36: warning: 'boost::system
::native_ecat' defined but not used [-Wunused-variable]
static const error_category & native_ecat = system_category();
^
Makefile.Release:823: recipe for target 'build/bitcoin.o' failed
mingw32-make: *** [build/bitcoin.o] Error 1