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

new user question
new user question
hi,
i'm a completely new user to these libraries and am having some pretty basic problems.
is there any tutorial type documention or library reference? i haven't seen anything like that so if i missed it please excuse me.
basically, alls i want to do is open a dwg file and extract some of the header variables. i've been trying to work with odreadex, which i can extract the values with, but i really don't know how to do it without all the extra "cruft" in that code. i don't really know what all of the code is doing. is there a simpler example of this somewhere? i know it has to be very easy but i keep getting lost in all the code.
thank you in advance for any help you can provide.
hi,
here is a minimized odreadex.cpp version:
code:
#include "odacommon.h"
#include "dbdatabase.h"
#include "exsystemservices.h"
#include "dbhostappservices.h"
#include "staticrxobject.h"
class myappservices : public oddbhostappservices
{
protected:
odrx_using_heap_operators(oddbhostappservices);
private:
bool ttffilenamebydescriptor(const odttfdescriptor& description, odstring& filename)
{
return false;
}
odhatchpatternmanager* patternmanager()
{
return 0;
}
odgsdeviceptr gsbitmapdevice()
{
return odgsdeviceptr();
}
};
int main(int argc, char* argv[])
{
/* create a custom services instance. */
odstaticrxobject<exsystemservices> svcs;

/* initialize dwgdirect. */
odinitialize(&svcs);
odstaticrxobject<myappservices> appsvcs;
try
{
/* create a database and load the drawing into it. */
oddbdatabaseptr pdb = appsvcs.readfile(argv[1], true, false, oda::ksharedenyno);
printf("opened: \"%s\"\n\n", pdb->getfilename());
printf("tilemode: %d\n", pdb->gettilemode());
printf("tdcreate: %f\n", pdb->gettdcreate().julianfraction());
}
/* display the error */
catch (const oderror& e)
{
printf("\ndwgdirect error: %s\n", appsvcs.geterrordescription(e.code()).c_str());
}
catch (...)
{
printf("\nunknown error.\n");
return 0;
}
/* uninitialize dwgdirect */
oduninitialize();
return 0;
}
that is exactly what i was looking for. thanks for the help.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)