Посмотрите на этот фрагмент, демонстрирующий (теоретически), как он должен выглядеть:
using System;
using System.Runtime.InteropServices;
using System.Text; // For StringBuilder
class Example
{
[DllImport("mylib.dll", CharSet = CharSet.Unicode)]
public static extern int GetGroovyName(int grooovyId, ref StringBuilder sbGroovyName, int bufSize,)
static void Main()
{
StringBuilder sbGroovyNm = new StringBuilder(256);
int nStatus = GetGroovyName(1, ref sbGroovyNm, 256);
if (nStatus == 0) Console.WriteLine("Got the name for id of 1. {0}", sbGroovyNm.ToString().Trim());
else Console.WriteLine("Fail!");
}
}
Я установил для строителя строки максимальную емкость 256, вы можете определить что-то меньшее, предполагая, что он возвращает 0 в случае успеха, он печатает строковое значение для groovy id, равного 1, в противном случае печать не удалась.
Надеюсь это поможет.
Том