direct access to ns[C]String buffer
Brodie Thiesfield <[email protected]> Mon, 11 Nov 2002 14:24:36 +0900
| Newsgroups | gmane.comp.mozilla.devel.xpcom |
|---|---|
| Organization | Another Netscape Collabra Server User |
| Message-ID | <[email protected]> |
Hi, Is there any way to get direct access to a buffer in a string class similar to the MFC CString::GetBuffer()/CString::ReleaseBuffer() pair? Inside the implementation of an XPCOM interface, I am calling a library function that takes a raw pointer and a buffer length and writes a null terminated string into it. I want to assign this string to a nsCString which is returned from the interface. The easiest way would be to request the string to have the max size buffer, write the data directly into the strings buffer, then tell the string the actual size of the data. This way there is only a single allocation. e.g. nsCString str; int bufsiz = 1000; str.SetLength( bufsiz ); char * p = str.GetBuffer(); rawpointerfn( p, &bufsiz ); str.SetLength( bufsiz ); Surely this is possible? Or do I have to double allocate (once manually, once by the string)? Regards, Brodie.