PRB: Преобразование MBF IEEE в Visual Basic для Windows

Переводы статьи Переводы статьи
Код статьи: 140520 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

Файлы данных, созданные с помощью устаревших продуктов Microsoft Basic (Быстрый Basic GW-Basic и Basica (IBM и Compaq лицензированные Basic)) может быть прочитать в Visual Basic для Windows.

Причина

До IEEE плавающей точки стандартной being широко принято, известная как Microsoft внутренний с плавающей точкой формат используется Microsoft Двоичный формат (MBF). Стандарт IEEE позже появилась и стала промышленный стандарт.

Ранние версии Microsoft QuickBASIC и GW-Basic поддерживается только формат MBF. В Microsoft Basic профессиональной разработки Система (PDS) и Visual Basic для MS-DOS, доступны функции для преобразования между форматами MBF и IEEE. При перемещении Майкрософт ближе к полное согласие стандарт IEEE, поддержка формата MBF был удален.

Visual Basic для Windows использует стандарт IEEE. Тем не менее, является формат MBF несовместимый со стандартом IEEE и данные, сохраненные таким образом не будет. для чтения.

Решение

PDS и Visual Basic для содержащимся продуктов MS-DOS функции, которые преобразуют между MBF формате и формате IEEE. Следующие функции: недоступно в Visual Basic для Windows. Ниже приведены два возможных способа решения для Эта дилемма:
  1. Программы могут быть написаны на Visual Basic или PDS для MS-DOS повторно создает файл, содержащий MBF. После прочтения файла сведения в PDS или Visual Basic для MS-DOS, можно использовать MKxMBF$ функции (см. раздел руководства для Visual Basic или PDS для MS-DOS или их помощь меню) для преобразования данных в формате IEEE. Этот метод является предпочтительным для двух по причинам:
    • Он преобразует данные IEEE так других программ доступа к файлам.
    • При использовании метода 2 программы потребуется один дополнительный Библиотека DLL, необходимо распространять вместе с приложением.
  2. Ранее не существует способа преобразования данных из Visual Basic для Windows. Но теперь отсутствует DLL, доступных для этого. Эта библиотека DLL (MBF2IEEE.Библиотека DLL) содержит функции, которые имитируют MKS, MKD, CVS и CVD функции, которые отсутствовали в некоторые основные продукты на основе MS-DOS. К ним функции (MKS MKD, CVS и CVD) не существуют в Visual Basic для Windows Таким образом необходимость данной библиотеки DLL. Ниже в разделе Дополнительная информация содержит подробные сведения о библиотеке DLL и объясняется, как загрузить из загрузки Майкрософт Центр.

Статус

Данное поведение является особенностью.

Дополнительная информация

Подробности О два метода: Использование Mbf2ieee.dll

Примечание: Все эти функции выполнять преобразование между двоичный файл Microsoft Формат (MBF) и IEEE с плавающей точкой значения. Некоторые из новых основе MS-DOS Основные продукты были версии этих функций, которые работали по-разному. Для пример, с их помощью можно просмотреть номер IEEE как строку без преобразования Чтобы MBF. Процедуры, описанные здесь предлагаются только как способ получения старые данные MBF.

Эти функции обеспечивают преобразование между IEEE с плавающей запятой и двоичный формат Microsoft (MBF) с плавающей точкой значения. Ниже приведен набор операторов, которые должны быть включены в Visual Basic объявления Программа, которая вызывает следующие функции:
   Public Declare Function Cvs Lib "MBF2IEEE.DLL" (X As String) As Single
   Public Declare Function Cvd Lib "MBF2IEEE.DLL" (X As String) As Double
   Public Declare Function Mks Lib "MBF2IEEE.DLL" (X As Single) As String
   Public Declare Function Mkd Lib "MBF2IEEE.DLL" (X As Double) As String
				

Ниже приведено описание каждой из этих функций, а также пример.

Функции CVD и CVS

Эти функции принимают 4 байта (CVS) или строку длиной 8 байт (CVD) аргумент. Они ожидали битовый шаблон для представления одной строкой или двойной точности MBF значение соответственно. Функция возвращает IEEE результат.
   Dim MBF As String, IEEE As Single
   ' load the string from a file, etc.
   IEEE = CVS(MBF)
				

Функции MKD и MKS

Эти функции принимают один IEEE (MKS) или двойной (MKD) значение точности как аргумент. Затем преобразует это значение в 4-байтовое или 8-байтовое значение MBF и возвращает его в строку.
   Dim MBF AS String, IEEE As Single
   MBF = MKS(IEEE)
   ' Now write the MBF value out to disk
				

Потенциальные проблемы

Существуют различия в формате IEEE и MBF. Для этого Причина может привести к потере точности во время преобразования. Возможно, Невозможно преобразовать несколько разных форматов. Если это так, Созданный Visual Basic переполнения (ошибка № 6). Перехватываемая ошибка, это так соответствующим образом Обработайте ошибку.

Как получить Mbf2ieee.dll

Ниже файл доступен для загрузки из загрузки Майкрософт Центр:
Mbf2ieee.exe
Для Нажмите кнопку Дополнительные сведения о том, как загрузить файлы поддержки Майкрософт следующий номер статьи базы знаний Майкрософт:
119591 Как загрузить файлы поддержки Майкрософт из Интернета
Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует наиболее текущего антивирусного программного обеспечения на дату, файл была учтена. Файл хранится на защищенных серверах, которые помогают для файла предотвращает его несанкционированное изменение. После загрузки Mbf2ieee.exe, запустите его, чтобы получить Mbf2ieee.dll вместе с исходные файлы и файл Mbf2ieee.txt, который является файл readme, содержащий текст статьи.

Исходный код включен в Mbf2ieee.exe

В дополнение к самой библиотеки DLL также приведен исходный код, поэтому вносить изменения и выполните повторную компиляцию при наличии Microsoft C. Для Перекомпилируйте и построить новый.Файл DLL, необходимо использовать Microsoft C поскольку подпрограммы относятся к Microsoft C и зависит от способа, возвращает Microsoft C Значения с плавающей точкой. Этот исходный код компилируется с Borland C.

Перекомпиляция с Microsoft C, используйте следующую команду операторы для построения библиотеки DLL:
    cl -ALw -Ow -W2 -Zp -Tp mbf2ieee.c
    link /nod c:\vb\cdk\vbapi.lib mbf2ieee, mbf2ieee.dll, NUL, sdllcew
       oldnames libw, mbf2ieee
    rc -t mbf2ieee.dll
    implib mbf2ieee.lib mbf2ieee.def
				

Свойства

Код статьи: 140520 - Последний отзыв: 2 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Basic 4.0 Professional Edition
Ключевые слова: 
kbdownload kb16bitonly kbfile kbprb kbsample kbmt KB140520 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:140520
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com