MicroStation CONNECT从开发的角度看可能比从使用角度看变化更大。许多函数不能再继续使用了,比如获取一个配置变量的展开值的函数mdlSystem_expandCfgVar在CONNECT版下不能再继续使用。而新公开的ConfigurationManager对象是该函数的替代。
在实际工作中有一个技巧需要掌握,那就是mdlSystem_expandCfgVar可以直接支持一个含有宏展开的字符串,但ConfigurationManager::GetVariable则不可以。所以,对于如下的V8i代码,
char* valueP = mdlSystem_expandCfgVar ( "$(MSDIR)config\\mslocal.cfg" ); mdlDialog_dmsgsPrint (valueP); mdlSystem_freeCfgVarBuffer (valueP);
需要用到如下的CONNECT代码来替代。即我们先将这个含有宏的字符串定义给一个临时的配置变量,如这里的MS_FOO,然后再调用GetVariable函数取得该临时配置变量的值。此时,所有宏都是可以被展开的。
WString cfgValue; ConfigurationManager::DefineVariable(L"MS_FOO", L"$(MSDIR)config\\mslocal.cfg"); ConfigurationManager::GetVariable(cfgValue, L"MS_FOO"); mdlDialog_dmsgsPrint(cfgValue.GetWCharCP());