allocate a byte buffer in VB an let C++ fill the bytes. Use the length as parameter to avoid buffer overruns.
i wolud write code like that:
in vb.net
Dim buffer(200) as Byte
Call_C_Plus_Plus(buffer,200)
in c++
int Call_C_Plus_Plus(char *buffer. in len)
{
strncpy( buffer, my_c_message, 200);
}