c++ dll has exported funtion call such as: void AccessUnknownBuf(char** cbuffer, int sizeofbuf); VB does not know about the size of cbuffer beforehand. It has to get the cbuffer and its size from dll. How VB can do this?. somehow it should be accessing dll's memory area...?. seconldy, how to allocate more than 40000 bytes for character string type?. dim s as string*50000 does not work.