AllJoyn 15.04版本应用程序的初使化
下载15.04版本的源码进行编译后,发现在应用程序初使化步骤中与前大不一样。楼主用chat程序稍微调试了下,发现在创建BusAttachment对象之前,有两个重要的初使化:
AllJoynInit()
AllJoynRouterInit()
AllJoynInit里的重要方法调用有:
alljoynInitLock.Lock()--------- alljoynInitLock是静态qcc::Mutex对象
EnterCriticalSection ----- win32 api,进入临界区
qcc::Init() ------------------ 当第一次初使化时,调用它
StaticGlobals::Init()
Event::Init();事件初始化
Environ::Init();环境初使化
String::Init();
DebugControl::Init();
LoggerSetting::Init();
QStatus status = Thread::Init();线程初使化
Crypto::Init();加密库初使化
allJoynInitLock.Unlock()
AllJoynRouterInit里的重要方法调用有:
AllJoynRouterInit //因为定义了Router预定义变量,所以它要被调用
allJoynRouterInitLock.Lock()
ajn::RouterGlobals::Init()
IpNameService::Init()
bundledRouter = new ajn::BundledRouter()//创建了BundledRouter
allJoynRouterInitLock.Unlock()
如果不加以上初使化步骤,程序将出现异常。。
目前还剖析得不深,待一定时间后LZ再来分享一下