几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】read from a buffer (http://www.dimcax.com/hust/showthread.php?t=18331)

yang686526 2009-05-07 12:25 PM

【转帖】read from a buffer
 
read from a buffer
read from a buffer
hello,
i need help to use readfile using a buffer. i succeed in reading the content of a file but i also need to read the content of a buffer.
so, i created a odstreambufptr filebuf; so as to use readfile(filebuf) that i defined in exhostappservices (and declared in .h with default arguments obviously...) :
oddbdatabaseptr exhostappservices::readfile(odstreambuf* filebuff,
bool ballowcpconversion, bool bpartial, const odpassword& password)
{
oddbdatabaseptr pres = oddbhostappservices::readfile(filebuff, ballowcpconversion, bpartial, password);
return pres;
}
a problem occurs when i try to put bytes into my filebuf (odstreambufptr) :
filebuf->putbytes(buf,nbbytes); an access violation error appears. (my buf is a char * )
if someone has an idea about how to open from a buffer ... or on my error ...
thanks a lot.
daymo.
how did you create your odstreambufptr filebuf?
note that odstrembufptr is a pointer and it's initialized by null. it should be initialized like
code:
odstreambufptr pbuf = new mybufimpl;
there mybufimpl is class implementing odstreambuf interface.
sergey slezkin
i know that odstreambufptr is a smartpointer to an odstreambuf object but i don't really get how to initialize it !
i'm trying to get examples on how to use smartpointers but except for oddbdatabaseptr i'm still failling...
is there a way you know to open and access data from a buffer ?
i tried to initialize odstreambufptr like for odresbufptr
odresbufptr prb, temp;
temp = prb = odresbuf::newrb(1000);
temp->setstring("sample xrecord data");
but there's no newsomething (!) to get a pointer on an odstreambuf object ... i mean there must but i didn't find it.
i may have missed something on the use of dwgdirect library i think...
nad if i do something like
odstreambufptr filebuf=odstreambuf::createobject();
there's no compilation error : but where does createobject function come from !!! cos odstreambuf is a subclass of odrxobject but that's all. and in these 2 classes : no createobject() function...
you need to write your own class derived from odstreambuf and implementing its interface.
odstreambuf functions are not declared abstract because depending on usage not all of them are required (for example only read or only write functions). all odstreambuf functions if they are not overridden throw exception "notapplicable"
sergey slezkin


所有的时间均为北京时间。 现在的时间是 09:12 AM.