查看单个帖子
旧 2009-05-06, 05:12 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】load a plotstyle file

load a plotstyle file
load a plotstyle file
hello all :
how can i load a plotstyle file (.ctb) for an odpsplotstyletable ?
in dd 1.12 odpsplotstyleservices::loadplotstyletable(...) is a pure virtual function,how can i use this function , or have other methods ?


you can obtain smartpointer for this interface in manner:
odpsplotstyleservicesptr ppss = odrxdynamiclinker()->loadapp(odps_plotstyle_services_appname);
you also can use odgicontextfordbdatabase::loadplotstyletable (just like odamfcapp sample does) in case you use odgicontextfordbdatabase's inheritant as odgicontext instantiation.
sincerely yours,
george udov
odpsplotstyleservicesptr ppss = odrxdynamiclinker()->loadapp(odps_plotstyle_services_appname);
odrxdynamiclinker()->loadapp(...) return an odrxdynamiclinkerptr , but how can i convert from odrxdynamiclinkerptr to an odpsplotstyleservicesptr ?

odrxdynamiclinker() returns odrxdynamiclinkerptr; odrxdynamiclinker()->loadapp(...) returns odrxmoduleptr, it must cast automatically to odpsplotstyleservicesptr. this string should work in form just as i written.
sincerely yours,
george udov
odpsplotstyleservicesptr ppss = odrxdynamiclinker()->loadapp(odps_plotstyle_services_appname);
the string can't work , when i build , the compiler report this error : rror c2440: 'initializing' : cannot convert from 'unsigned long' to 'class odsmartptr<class odpsplotstyleservices>'
no constructor could take the source type, or constructor overload resolution was ambiguous
oduint -- odpsplotstyleservicesptr ?
please help me~

did you
#include "ps/plotstyles.h"
?
sincerely yours,
george udov
yes , i included "ps/plotstyle.h" , but why the string can't work ?


sorry, i cut-&-past'ed string from 1.13 pre-release code
in 1.12 you should write like this:
code:
odrxdynamiclinkerptr pdynlnk = odrxdynamiclinker();
oduint32 psmodid = pdynlnk->loadapp(odps_plotstyle_services_appname);
if(psmodid)
{
odpsplotstyleservicesptr ppss = pdynlnk->module(psmodid);
if(ppss.get())
{
pplotstyletable = ppss->loadplotstyletable(ppstfile);
}
}
sincerely yours,
george udov
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)