Если строка идёт как аргумент функции, то особой проблемы нет. Проблема есть если строка идёт как поле записи. В .Net строки ссылочные. Пересылать указатели на объекты смысла нет: Блэкбоксовый сборщик мусора чужие указатели собирать не будет, равно как и дотнетный, зато объекты на которые по их мнению никто не ссылается они оба угрохают. Поэтому имеет смысл устроить канал обмена сериализованным представлением объектов сообщений. Тоже самое сериализованное представление можно было бы прокачивать через TCP соединение, но через обратный вызов процедур будет экономнее.