У меня есть третья часть DLL, в которой есть функция, которая возвращает строку.
Когда я вызываю функцию, я получаю, например, «123456» обратно. По крайней мере, это выглядит так, но когда я делаю mystring.length, он не возвращает никакой длины. Если я устанавливаю свойство text метки, оно показывает «123456».
Когда у меня есть строка, которую я получил от dll, я отправляю ее в функцию веб-сервиса:
rem call dll and get string
dim mystring as string=mydll.getstring()
rem Send it to the webservice
webservice.SaveString(mystring)
Веб-служба аварийно завершает работу с webexeption («ошибка protocoll»), когда я отправляю строку, полученную из библиотеки DLL. Если я вместо этого отправлю это так:
rem call dll and get string
dim mystring as string=mydll.getstring()
rem Send it to the webservice
dim FixedString as string = mid(mystring,1,6)
webservice.SaveString(mystring)
Тогда все работает и все нормально. Это заставляет меня думать, что строка, которую я получил из DLL, в некотором роде неверно завершена. И я не знаю, как это исправить с vb.net (я не могу изменить DLL)
и я не знаю заранее, как долго будет длиться строка.
DLL работает только на месте, когда подключено определенное оборудование, поэтому я не могу сидеть в офисе, пытаясь это исправить в dev-среде. Поэтому я хотел бы найти некоторые возможные решения, прежде чем снова обратиться к клиенту.
Редактировать 1:
Я попытался сделать цикл с 1 по 100 (потому что я не знаю реальной длины) и попытался скопировать все символы, которые <> "", в новую переменную, но это не сработало. Я не пробовал другие варианты, потому что день прошел, и мне пришлось покинуть сайт клиента.
Редактировать 2:
DLL, с которой я разговариваю, сделана в VB6. Эта DLL общается с другими DLL, созданными на C ++ (я думаю).
Моя программа <-> vb6-DLL <-> c ++ - DLL <-> аппаратное обеспечение