Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: VB 6.0 -> VB.NET, проблемы конвертирования Добавлено: 01.02.07 12:03  

Автор вопроса:  SteeL HeaD
Уважаемые коллеги,
некоторое время назад я столкнулся с переводом довольно большой программы на VB 6.0 (около 50 форм ввода и отображения данных) на новую верисю VB.
Сначала я воспользовался конвертером, входящим в состав Visual Studio 2005, а потом результат "дорботал напильником". MS в каком то источнике утверждает, что таким образом можно сконвертировать 95% программ. Я не знаю, как они меряли — возможно, по объему кода, не подлежащего исправлению, это и 95%. Но оставшиеся 5% — это песня
В результате программа
1) стала без ошибок компилироваться и запускаться
2) Стала показывать все формы отображения данных, но без единой колонки данных.
Краткое исследование показало, что почти во всех формах используется для отображения списков грид MSDataGridLib.DataGrid.
Если на нем в редакторе VB 6.0 кликнуть правой кнопкой и выбрать Properties, то открываются закладки Property pages, на которых и указаны колонки и привязка колонок к полям данных. При эток указвывается еще много параметров — Locked (защита от редактирования), ширина колонок и т.п.
Информация эта, как показывает простое наблюдение, хранится в файле с расширением frx, тогда как сам VB- код формы — в файле .frm.
при конвертировании грид преобразуется в AxMSDataGridLib.AxDataGrid, но информация о колонках безнадежно теряется. я попробовал руками выставить все необходимые свойства, но очень быстро обалдел от бессмысленности этой работы (свойств много, колонок много, контролов много, работа заключается в выборе из выпадающео списка колонки и проставлении у неё всех необходимых свойств).
Новая студия сохраняет эту информацию в файле *.resx, но — барабанная дробь! — по прежнему в бинарном виде, то есть соответствующая запись выглядит как что то типа
<data name="dg.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAnQsAAAIB
Я поискал в Гугле утилиты конвертирования frx- файлов, но все что находилось было недоступно (типичный пример — "FRX Split 2.0.1", ссылка по которой можно прочитать — http://www.topshareware.com/FRX-Split-download-9464.htm, скачать не удается так как попадаешь на поисковую систему которая сама ищет все что угодно с уклоном в порно, но никак не нужный мне файл). При этом еще и про сам FRX Split 2.0.1 пишут туманно — якобы, иконки он умеет из файлов вытаскивать А что кроме иконок — баг его знает...
Поиск по DataGrid на RSDN дает около 13000 ссылок, поиск по MSDataGridLib приводит к ряду топиков, ни в одном из которых эта проблема не обсуждается.
Вот я и стою на распутье — с одной стороны, конвертировать вручную неохота. Написать сам утилиту конрвертирования я могу, но не вижу смысла тартить на это действительно много сил и времени. Как быть — может, кто то уже сталкивался с этим?
Заранее спасибо!

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 01.02.07 12:13
(имхо) Ни одна из подобных утилит никогда не переконвертирует проект так, как он должен быть в виду ряда причин.. Отсюда вывод: Если необходимо переложить программу под НЕТ, то ЕДИНСТВЕННЫЙ выход это сесть и переписать ее с нуля!! И второго тут не дано..

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 01.02.07 23:19
Ну, можно не переписывать, а отдельные части копипастить

Ответить

Номер ответа: 3
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #3
Добавлено: 02.02.07 09:09
Я добивал какую-то прогу(не помню какую) с помощью Visual Studio 2005 Converter, MSDN 2003 и рук растущих откуда надо...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам