String и StringBuilder в C#
От: Аноним  
Дата: 04.03.07 10:06
Оценка:
Такая проблема: в проект на 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)

Может, у кого хоть какие-то идеи есть как с этим бороться?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.