找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1666|回复: 3

[其他]:苦恼,V7及V8的MDL差得也太大了

[复制链接]
发表于 2004-9-17 21:39:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
真想不明白,苯特力怎么搞的,想发展V8,但V7下开发的程序竟然用不了,就算有源程序重新编译都不行,关键是差得也太多了,没有规律,又不搞个转换东东来,简直是不把V7用户的开发人员当回事嘛,强盗呀。你有看着成千上万行的V7源程序欲哭无泪的感觉吗?总之这段时间我是一直咬牙,有谁有高超?指教一下吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-18 16:38:40 | 显示全部楼层
Bentley也是实在没办法!V8与V7从根本上进行了改变,许多概念都发生了变化,我是紧跟V8 MDL的步伐才没有被落下的。
作为MDL的程序员,换个角度思考,Bentley这样做还是为我们这些MDL程序员找了升级的新工作呢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-21 15:24:34 | 显示全部楼层
V7和V8的MDL是有点差别大,原来我刚学V7的,不过没有用过具体开发,
后来是用V8开发了一个小应用的管理程序,我觉得V8简单一些,功能多一点点
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-21 21:25:44 | 显示全部楼层
[转帖]
一   关于 unicode:
    1   v8 中有一些地方使用 unicode,提供了转换函数,最常用的是:mdlCnv_convertMultibyteToUnicode 和 mdlCnv_convertUnicodeToMultibyte 。
    2   unicode 的声明用 MSWChar *unicodeCharsP;
    3   最常用的地方是层名和单元名。
        mdlElement_getProperties(&elmLevel,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&elm);
         mdlLevel_getName (uniLevelName, 256, MASTERFILE, elmLevel);
mdlCnv_convertUnicodeToMultibyte(uniLevelName, -1, g_Options.strPreLevel, sizeof(g_Options.strPreLevel));
二 关于文件模型 DgnModelRef:
   1  在 J 中一个dgn 文件就是一幅图,在 v8 的格式中,一个 dgn 文件可以包含多个 model.
   2  参考文件也用 model 的方式实现。
   3  workdgn 也用 model 的方式实现。 mdlWorkDgn_openFile () 返回值就是一个DgnModelRefP。
   4  这个做的结果是 mdlElmdscr_read 也要指定读取哪一个 DgnModelRefP 。第三个参数
   5  mdlView_fit 用起来挺麻烦。
      mdlModelRefList_create(&modelRefListP);
      mdlModelRefList_add(modelRefListP,MASTERFILE);
      mdlView_fit(tcb->lstvw,modelRefListP);
      mdlView_updateSingle(tcb->lstvw);
      mdlModelRefList_free(&modelRefListP);
  三  tcb 结构的变化:
     1  主单位变量没有了。
        tcb->mastname ,现在要用mdlModelRef_getMasterUnitLabel;
     2  全局原点变量没有了。
        tcb->globorg,  要用
mdlModelRef_getGlobalOrigin(MASTERFILE, &GlobalOrigin);
     3  文本对齐方式没有了。
        tcb->txtjust;换成
mdlParams_getActive(&oldjust,ACTIVEPARAM_TEXTJUST);
     等等……
四  元素描述符的改变:
     1  zlow 变了一个位置:
        现在应该用:elmDP->el.hdr.dhdr.range.zlowlim;
     2  数据类型基本上都变大了, UShort 大多是 ULong 了。
  五  关于包含文件:
     1  要包含很多的 fdf 文件,在编译是会提示很多的错。
     2  字符串操作要包含头文件 <string.h>
     3  数学函数要包含 <math.h>
     4  stringlist 操作要包含 <msstrlst.h>
  六  新的对话框控件:
      1  Container 控件.
         *  在 v8 中增加了这个控件,Container 被包含在 ContainerPanel 中。
         *  每一个 Container 可以包含DialogItemListRsc, 在这个中定义将出现这个容器的控件
         *  这样在切换页面时,只需要转换 ContainerPanel 中显示的 Container 即可。
       2  listBox 和 ComboBox.
         这类控件的使用方法更接近于 java 中的数据模型方法。在 mdl 中可以使用 mdlListModel_* 的函数。

七   Scan 函数的变化:
       1  在去年的时候听说这个函数变化很大,实际上我觉的,这个到没给我带来什么麻烦,使用新的mdlScanCriteria_* 函数确实在控制上更清晰了。
       2  好象也就这个改变bentley 提供了例子,可以对照  scanfile 的例子来改。

八   编译器的变化:
       1  类型检查更严格,在编译时,能检查出所有的隐式类型转换,并用黄颜色提示。
       2  函数声明检查更严格。
       3  一个例子。
          在  j 下,下面这句是可以编译通过的,并且可以工作很好。
          int color = 106;  mdlParams_setActive(color, ACTIVEPARAM_COLOR);
          但这句在 v8 下却不能编译,提示需要 color 需要地址。如果改成
          mdlParams_setActive(&color, ACTIVEPARAM_COLOR);
          可以编译成功却不能产生效果,颜色改不到 106 去,最后我用这个才可以:
          mdlParams_setActive((void*)iColor, ACTIVEPARAM_COLOR);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-9 23:01 , Processed in 0.168021 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表