Такая проблема: в проект на C# подключил COM объект (через Add Reference). У объекта есть функция объявленная как GetDeviceName(string name, int maxlen). Проблема в том что "name" это возвращаемый параметр, т.е. в этот параметр ф-ция запишет имя, а я не могу его получить! Это не работает хотя компилируется:
string str;
obj.GetDeviceName(str, 256);
Это в теории должно бы работать но не компилится:
StringBuilder str;
obj.GetDeviceName(str, 256); //ошибка компиляции — не совпадает тип
Что же делать? Привести тип не удаётся, может конечно мозгов не хватает. А под типом string си шарп явно имеет ввиду не тот string который имеет ввиду COM объект. Погуглив, нашёл только как решить проблему при использовании ф-ций из DLL, там можно при объявлении ф-ции сразу сказать что тип параметра StringBuilder, но здесь-то как это сделать?
К слову, в VB6 никаких проблем нет:
Dim str As String
str = Space$(256)
obj.GetAdapterName(str, 256)
Может, у кого хоть какие-то идеи есть как с этим бороться?