[msce C++]请问migradeTool怎么用

需要把v8i代码升级到ce

用了一下migradeTool:

管理员运行

然后就退出了,

请问有没有migradeTool的使用教程?

  • 没有什么大用处,还需要安装Python等环境才行,就是帮你做了一些固定替换而已。



  • 请问v8i转到ce的mke要怎么修改呢?

    v8i:

    #--------------------------------------------------------------------------------------
    #
    #   $RCSfile: RoadWayTool.mke,v $
    #   $Revision: 1.0 $
    #   $Date: 2019/05/05 02:15:54 $
    #
    #  $Copyright: (c) 2013 Bentley Systems, Incorporated. All rights reserved. $
    #
    #--------------------------------------------------------------------------------------
    appName  = RoadWayTool
    sAppName = RoadWayTool
    
    baseDir  = $(_MakeFilePath)
    
    %include mdl.mki
    
    dirToSearch = $(MSMDE)mdl/MicroStationAPI/
    %include cincapnd.mki
    
    dirToSearch = $(genSrc)
    %include cincapnd.mki
    
    #----------------------------------------------------------------------
    # Define macros specific to this program
    #----------------------------------------------------------------------
    baseDir     = $(_MakeFilePath)
    privateInc  = $(baseDir)
    langSpec    = $(baseDir)
    
    #------------------------------------------------------------------------
    #   Define symbols
    #------------------------------------------------------------------------
    DLM_NAME            = $(appName)
    DLM_OBJECT_DEST     = $(o)
    DLM_LIBDEF_SRC      = $(_MakefilePath)
    DLM_DEST            = $(mdlapps)
    DLM_NO_DLS          = 1
    DLM_NO_DEF          = 1
    DLM_NOENTRY         = 1
    DLM_NO_DELAYLOAD    = 1
    DLM_NO_SIGN         = 1
    #DLM_NO_MANIFEST     = 1
    
    DLM_OBJECT_FILES = \
        $(o)$(appName)$(oext) \
    	$(o)RoadWayBuild$(oext) \
    	$(o)BaseLine$(oext) \
    	$(o)Section$(oext) \
    	$(o)ExportData$(oext) \
    	$(o)Anchor$(oext) \
    	$(o)TubeWire$(oext) \
    	$(o)AnchorSet$(oext) \
    	$(o)RailInstance$(oext) \
    	$(o)pugixml$(oext) \
    	$(o)XAttributeOperate$(oext) \
    	$(o)RoadWayDependency$(oext) \
    	$(o)RoadWayDelete$(oext)
        
    
    DLM_LIBRARY_FILES = \
        $(mdlLibs)basegeocoord$(libExt) \
        $(mdlLibs)bentley.imodelconnection$(libExt) \
        $(mdlLibs)bentley.imodelmessage$(libExt) \
        $(mdlLibs)Bentley.MicroStation.GeoCoord$(libExt) \
        $(mdlLibs)Bentley.MicroStation.Templates.Support$(libExt) \
        $(mdlLibs)bentley.provenancenative$(libExt) \
        $(mdlLibs)BentleyDGN$(libExt) \
        $(mdlLibs)conslib$(libExt) \
        $(mdlLibs)consolver$(libExt) \
        $(mdlLibs)dbdlglib$(libExt) \
        $(mdlLibs)ditemlib$(libExt) \
        $(mdlLibs)insolationlib$(libExt) \
        $(mdlLibs)kisolid$(libExt) \
        $(mdlLibs)libextp$(libExt) \
        $(mdlLibs)mdllib$(libExt) \
        $(mdlLibs)msacis$(libExt) \
        $(mdlLibs)msbspline$(libExt) \
        $(mdlLibs)mspoplib$(libExt) \
        $(mdlLibs)mtg$(libExt) \
        $(mdlLibs)nativewindow$(libExt) \
        $(mdlLibs)nativewinmfc$(libExt) \
        $(mdlLibs)nativewinmfcu$(libExt) \
        $(mdlLibs)packagerwiz$(libExt) \
        $(mdlLibs)PointCloudHandler$(libExt) \
        $(mdlLibs)rasterlib$(libExt) \
        $(mdlLibs)rdbmslib$(libExt) \
        $(mdlLibs)rendlib$(libExt) \
        $(mdlLibs)rmgrsubs$(libExt) \
        $(mdlLibs)sdaidlm$(libExt) \
        $(mdlLibs)setmlib$(libExt) \
        $(mdlLibs)solmisc$(libExt) \
        $(mdlLibs)splindlm$(libExt) \
        $(mdlLibs)stdutillib$(libExt) \
        $(mdlLibs)toolsubs$(libExt) \
        $(mdlLibs)zbhline$(libExt) \
        $(mdlLibs)imagelib$(libExt)  \
    	$(baseDir)PitOffice.lib 
        
    #----------------------------------------------------------------------
    # Define macros for files included in our link and resource merge
    #----------------------------------------------------------------------
    appRscs         = $(rscObjects)$(appName).rsc \
                      $(rscObjects)$(appName)msg.rsc \
                      $(rscObjects)$(sAppName)cmd.rsc \
                      $(o)$(appName)typ.rsc
                      
    #----------------------------------------------------------------------
    #   Create output directories
    #----------------------------------------------------------------------
    $(DLM_OBJECT_DEST)$(tstdir)             : $(DLM_OBJECT_DEST)$(tstdir)
    
    $(DLM_DEST)$(tstdir)                    : $(DLM_DEST)$(tstdir)
    
    $(rscObjects)$(tstdir)                  : $(rscObjects)$(tstdir)
    
    $(baseDir)$(appName)cmd.h				: $(baseDir)$(appName)cmd.r
    
    $(rscObjects)$(appName)cmd.rsc			: $(baseDir)$(appName)cmd.r
    
    nameToDefine = SELECTFACETOOL_BUILD
    %include cdefapnd.mki
    
    #------------------------------------------------------------------------------
    #   Create & compile the application's resource files using rsctype and rcomp
    #   These resources CONTAIN TRANSLATABLE TEXT.
    #------------------------------------------------------------------------------
    $(rscObjects)$(appName).rsc    : $(baseDir)$(appName).r 
    
    $(o)$(appName)typ.r : $(baseDir)$(appName)typ.mt
    
    $(o)$(appName)typ.rsc : $(o)$(appName)typ.r
    
    #-----------------------------------------------------------------------
    #       Generate language resource files
    #-----------------------------------------------------------------------
    $(rscObjects)$(appName)msg.rsc              :$(langSpec)$(appName)msg.r
    
    #------------------------------------------------------------------------------
    #   Compile source files
    #------------------------------------------------------------------------------
    $(o)$(appName)$(oext)   : $(baseDir)$(appName).cpp \
    						  $(baseDir)$(appName).h \
    						  $(baseDir)$(appName)ids.h
    
    $(o)RoadWayBuild$(oext) : $(baseDir)RoadWayBuild.cpp \
    					$(baseDir)RoadWayBuild.h \
    					$(baseDir)BaseLine.h \
    					$(baseDir)Section.h \
    					$(baseDir)Anchor.h \
    					$(baseDir)TubeWire.h
    
    $(o)pugixml$(oext) : $(baseDir)pugixml.cpp \
    					$(baseDir)pugixml.hpp \
    					$(baseDir)pugiconfig.hpp
    					
    $(o)BaseLine$(oext) : $(baseDir)BaseLine.cpp \
    					$(baseDir)BaseLine.h	
    
    $(o)Section$(oext) : $(baseDir)Section.cpp \
    					$(baseDir)Section.h	
    					
    $(o)ExportData$(oext) : $(baseDir)ExportData.cpp \
    					$(baseDir)ExportData.h 
    							 
    $(o)Anchor$(oext) : $(baseDir)Anchor.cpp \
    					$(baseDir)Anchor.h
    
    $(o)TubeWire$(oext) : $(baseDir)TubeWire.cpp \
    					  $(baseDir)TubeWire.h
    
    $(o)AnchorSet$(oext) : $(baseDir)AnchorSet.cpp \
    					  $(baseDir)AnchorSet.h
    
    $(o)RailInstance$(oext) : $(baseDir)RailInstance.cpp \
    						$(baseDir)RailInstance.h
    
    $(o)XAttributeOperate$(oext) : $(baseDir)XAttributeOperate.cpp \
    							$(baseDir)XAttributeOperate.h
    
    $(o)RoadWayDependency$(oext) : $(baseDir)RoadWayDependency.cpp \
    							$(baseDir)RoadWayDependency.h
    
    $(o)RoadWayDelete$(oext) : $(baseDir)RoadWayDelete.cpp \
    							$(baseDir)RoadWayDelete.h
    							
    #---------------------------------------------
    #   link MDL Application
    #---------------------------------------------
    $(rscObjects)$(appName).mi  : $(appRscs)
        $(msg)
        > $(o)make.opt
        -o$@
        $(appRscs)
        <
        $(RLibCmd) @$(o)make.opt
        ~time
    
    #------------------------------------------------------------------------------
    #   Link the DLM
    #------------------------------------------------------------------------------
    %include dlmlink.mki
    
    appRscs = \
        $(rscObjects)$(appName).mi   
    
    moreRscCompileOpts + -i$(basedir)
    
    #------------------------------------------------------------------------------
    #   Create the final .ma (that holds just resources)
    #------------------------------------------------------------------------------
    MA_NAME      = $(appName)
    MA_DEST      = $(tfMdlApp)
    MA_RSC_FILES = $(bbformsRscObjs)
    
    #---------------------------------------------
    #   Merge Objects into one file
    #---------------------------------------------
    $(mdlapps)$(MA_NAME).ma   : $(appRscs)
        $(msg)
        >$(o)make.opt
        -o$@
        $(appRscs)
        <
        $(RLibCmd) @$(o)make.opt
        ~time
    

    cmd.r:

    #include        <rscdefs.h>
    #include        <cmdclass.h>
    #include "RoadWayTool.h"
    #include "RoadWayToolids.h"
    
    
    #define CT_NONE   0 
    #define CT_MAIN   1
    #define CT_SUB    2
    #define CT_SUB_EX 3
    
    /*------------------------------------------------------------------------------+
    |  Table <tableId> =                                                            |
    |  {
    		{ <number>, <subTableId>, <cmdclass>, <option>, "<cmdWord>" };
    	};
    +-------------------------------------------------------------------------------*/
    
    Table CT_MAIN = 
    {
    	{ 1, CT_SUB, PLACEMENT, REQ,  "ROADWAY" },
    	{ 2, CT_SUB_EX, PLACEMENT, REQ,  "EXCEL" },
    };
    
    
    //巷道创建工具
    Table CT_SUB =
    {	
    	{ 1, CT_NONE, INHERIT, NONE, "PICK" },
    	{ 2, CT_NONE, INHERIT, NONE, "PLACE"},
    	{ 3, CT_NONE, INHERIT, NONE, "DELETE"},
    	{ 4, CT_NONE, INHERIT, NONE, "ANCHOR"},
    	{ 5, CT_NONE, INHERIT, NONE, "ADDROW"},
    	{ 6, CT_NONE, INHERIT, NONE, "DELROW"},	
    	{ 7, CT_NONE, INHERIT, NONE, "CLEARATTRIBUTE" },
    };
    
    //巷道Excel表
    Table CT_SUB_EX =
    {	
    	{ 1, CT_NONE, INHERIT, NONE, "CORDINATE"},
    	{ 2, CT_NONE, INHERIT, NONE, "ENGENEER"},
    };

    修改部分:

    appName  = RoadWayTool
    sAppName = RoadWayTool
    
    mdlLibs = $(MSMDE)library/
    baseDir  = $(_MakeFilePath)
    o=$(baseDir)temp/
    genSrc = $(o)
    %include mdl.mki
    
    dirToSearch = $(MSMDE)include/
    %warn $(dirToSearch)
    %include cincapnd.mki
    
    dirToSearch = $(genSrc)
    %include cincapnd.mki

    #include        <Mstn\MdlApi\rscdefs.r.h>
    #include        <Mstn\MdlApi\cmdclass.r.h>
    #include "RoadWayTool.h"
    #include "RoadWayToolids.h"
    
    
    #define CT_NONE   0 
    #define CT_MAIN   1
    #define CT_SUB    2
    #define CT_SUB_EX 3
    
    /*------------------------------------------------------------------------------+
    |  Table <tableId> =                                                            |
    |  {
    		{ <number>, <subTableId>, <cmdclass>, <option>, "<cmdWord>" };
    	};
    +-------------------------------------------------------------------------------*/
    
    CommandTable CT_MAIN = 
    {
    	{ 1, CT_SUB, PLACEMENT, REQ,  "ROADWAY" },
    	{ 2, CT_SUB_EX, PLACEMENT, REQ,  "EXCEL" },
    };
    
    
    //巷道创建工具
    CommandTable CT_SUB =
    {	
    	{ 1, CT_NONE, INHERIT, NONE, "PICK" },
    	{ 2, CT_NONE, INHERIT, NONE, "PLACE"},
    	{ 3, CT_NONE, INHERIT, NONE, "DELETE"},
    	{ 4, CT_NONE, INHERIT, NONE, "ANCHOR"},
    	{ 5, CT_NONE, INHERIT, NONE, "ADDROW"},
    	{ 6, CT_NONE, INHERIT, NONE, "DELROW"},	
    	{ 7, CT_NONE, INHERIT, NONE, "CLEARATTRIBUTE" },
    };
    
    //巷道Excel表
    CommandTable CT_SUB_EX =
    {	
    	{ 1, CT_NONE, INHERIT, NONE, "CORDINATE"},
    	{ 2, CT_NONE, INHERIT, NONE, "ENGENEER"},
    };

    出现了

    路径是存在的

  • v8i的项目用到的mke文件跟CE的mke文件里边有很多宏都变了,而且SDK的路径也有不小的变化。不建议您直接拿一个v8i的完整项目直接改成CE的项目,而是先拿一个现成的CE的项目,然后把v8i的项目的内容一点一点放到这个CE的项目里边,SDK这个目录下边C:\Program Files\Bentley\MicroStationCONNECTSDK\examples有很多现成的例子,找一个代码文件比较少的改改名字变成自己的项目,然后把v8i的代码一点一点搬过来。

  • 在SDK中找到如下PDF文件:

    C:\Program Files\Bentley\MicroStationCONNECTSDK\Documentation\Migration\Using MicroStation x64 Beta 1 MDL SDK\Using MicroStation x64 Beta 1 MDL SDK-v2.pdf

    里面有一个从V8i到CE的项目移植过程的描述。您可以参照执行。

    当然,写文档时MSCE刚刚出技术预览版,里面的内容许多比较老,仅供参考。