Из Visual Basic мне нужно вызвать функцию в динамически подключаемой библиотеке (DLL), которая реализована в C. Функция C имеет сигнатуру
uint32_t F(char **str);
, где str - этовыходной параметр. Ожидается, что массив *str
будет иметь длину не менее n символов. На стороне Visual Basic функция объявлена как
<DllImport("lib.dll", CallingConvention:=CallingConvention.Cdecl)> _
Public Shared Function F(ByRef str As String) As UInteger
End Function
Как мне объявить строку длины n в Visual Basic, которая совместима с формальным параметром функции C F ?
Редактировать: вызов функции работает должным образом, если я объявлю фактический параметр как, например,
Dim str As String = " "
при условии, что n равно 10. Однако n является переменной.