Обратная совместимость двоичных файлов с VB6 - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Добрый день! Портирую большой проект из VB6 в VB.net (VS 2008). Необходимо достигнуть обратной совместимости при чтении двоичных файлов между приложением, созданным в VB.net (Vs2008) и старым приложением, созданным в VB6. Ситуация. В двоичном файле VB6 сохранен сложный пользовательский тип (структура) из строк, строковых массивов, числовых динамических массивов. например: так выглядело в VB6 (это фрагмент работающей программы):
для сохранения и извлечения из файла использовалась простая технология Put / Get В VB 2008 это выглядит так:
Используется FilePut(1, MData) / FileGet(1, MData) По отдельности коды в VB6 и VB.net работают правильно. Файлы записываются и считываются. Проблема: Дебагер выдает сообщение: "Невозможно преобразовать объект типа "System.Int23[]" к типу "System.Int32[,]"." При замене с Integer на Long или Short меняется только разрядность в сообщении дебагера с Int23, например, на Int64 или Int16, но смысл тот же. Похоже, что FileGet неверно распознает размерность старого массива. Что я делаю неправильно? Как это вылечить? И возможно ли? Уверен, что проблема обратной совместимости не нова, но на форуме не нашел. Заранее спасибо!

Решение задачи: «Обратная совместимость двоичных файлов с VB6»

textual
Листинг программы
LatenTInSerLeft(0, 0) As Long

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы