![]() |
【转帖】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. |