PRB: Omzetten MBF IEEE in Visual Basic voor Windows

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 140520 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Gegevens die zijn gemaakt met oudere Microsoft Basic producten (Snelle Basic GW-Basic en Basica (IBM en Compaq licentie Basic)) mogelijk leesbaar door Visual Basic voor Windows.

Oorzaak

Voor de IEEE zwevende punt standaard wordt alom geaccepteerd, gebruikt een interne zwevende punt indeling bekend als Microsoft Binaire indeling (MBF). De IEEE-standaard later werd geïntroduceerd en werd de industriestandaard.

Vroege versies van Microsoft QuickBASIC en GW-Basic ondersteund alleen MBF-indeling. Microsoft Basic professionele ontwikkeling Systeem (PDS) en Visual Basic voor MS-DOS-functies zijn beschikbaar voor het converteren tussen MBF- en IEEE-indelingen. Als Microsoft naar de volledige aanvaarding van verplaatst de IEEE-standaard, wordt echter ondersteuning voor de indeling MBF is verwijderd.

Visual Basic voor Windows gebruikt de IEEE-standaard. De indeling MBF is echter incompatibel is met de IEEE-standaard en de gegevens die zijn opgeslagen op deze manier niet worden leesbaar.

Oplossing

De PDS en Visual Basic voor MS-DOS-producten functies die tussen MBF en IEEE-indeling converteren. Deze functies zijn niet beschikbaar in Visual Basic voor Windows. Hier volgen twee mogelijke oplossingen naar Dit dilemma:
  1. Een programma kan worden geschreven in de PDS of Visual Basic voor MS-DOS dat maakt het bestand met de gegevens MBF. Na het lezen van het bestand de informatie in de PDS of Visual Basic voor MS-DOS, kunt u de $ MKxMBF functies (Zie de handleidingen de voor PDS of Visual Basic voor MS-DOS of hun Help menu's) de gegevens omzetten in IEEE-notatie. Deze methode verdient de voorkeur voor twee redenen:
    • Het converteert de gegevens naar IEEE, zodat andere programma 's toegang tot uw bestanden.
    • Als u methode 2 gebruikt, moet het programma een extra U moet met uw toepassing distribueert dll-bestand.
  2. Eerder, is er geen manier om te converteren van gegevens uit Visual Basic voor Windows. Maar nu is er een DLL-bestand beschikbaar om dit te doen. Dit DLL-bestand (MBF2IEEE.DLL-bestand) bevat functies die de MKS, MKD, CVS en CVD simuleren functies die in sommige MS-DOS-gebaseerde basisproducten aanwezig waren. Deze functies (MKS, MKD CVS en CVD) niet in Visual Basic voor Windows Daarom moet voor deze DLL. De volgende sectie voor meer informatie bevat details over de DLL en wordt uitgelegd hoe u het downloaden van het Microsoft Downloadcentrum Center.

Status

Dit gedrag is inherent aan het ontwerp.

Meer informatie

Details over de methode 2: Gebruik Mbf2ieee.dll

Opmerking: Deze alle functies doen conversies tussen Microsoft binair Indeling (MBF) en IEEE zwevende punt waarden. Sommige van de nieuwere MS-DOS gebaseerde Basisproducten had versies van deze functies die anders gewerkt. Voor voorbeeld, kunt u een aantal IEEE bekijken als een tekenreeks zonder deze te converteren naar MBF. De routines die hier worden beschreven zijn alleen beschikbaar als een manier van ophalen oude MBF-gegevens.

Deze functies bieden conversies tussen IEEE Wijs waarden zwevende puntwaarden en zwevende Microsoft binaire indeling (MBF). Hieronder vindt u een declare-instructies die moeten worden opgenomen in een Visual Basic het programma waarin deze functies:
   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
				

Hieronder vindt u een beschrijving van elk van deze functies samen met een in het volgende voorbeeld.

CVS en CVD functies

Deze functies accepteren een 4-bytes (CVS) of een tekenreeks van 8 byte (CVD) als een argument. Ze verwachten dat het bitpatroon van deze tekenreeks voor een enkele of dubbele precisie MBF waarde respectievelijk. De functie retourneert een IEEE resultaat.
   Dim MBF As String, IEEE As Single
   ' load the string from a file, etc.
   IEEE = CVS(MBF)
				

MKS en MKD functies

Deze functies accepteren van een enkele IEEE (MKS) of dubbele (MKD) de precisiewaarde als argument. Deze waarde vervolgens converteert naar een 4-byte of 8-bytewaarde MBF en terugstuurt in een tekenreeks.
   Dim MBF AS String, IEEE As Single
   MBF = MKS(IEEE)
   ' Now write the MBF value out to disk
				

Mogelijke problemen

Er zijn verschillen tussen de IEEE-notatie en MBF. Voor deze reden precisie mogelijk verloren tijdens de vertalingen. Het is ook mogelijk dat een nummer kan niet worden geconverteerd tussen de twee indelingen. Als dit het geval is een Visual Basic-overloop (fout # 6) gegenereerd. Dit is een te onderscheppen fout zo de fout dienovereenkomstig handelen.

Mbf2ieee.dll ophalen

De volgende bestand is gedownload van het Microsoft Downloadcentrum Midden:
Mbf2ieee.exe
Voor meer informatie over het downloaden van Microsoft-ondersteuningsbestanden klikt u op de volgende artikelnummer in de Microsoft Knowledge Base:
119591 Microsoft-ondersteuningsbestanden via Online Services ophalen
Microsoft heeft dit bestand gecontroleerd op virussen. Microsoft gebruikt de meest huidige antivirussoftware die beschikbaar op de datum was dat het bestand is geboekt. Het bestand is opgeslagen op beveiligde servers die helpen onbevoegde wijzigingen aan het bestand verhinderen. Na het downloaden van Mbf2ieee.exe uitvoeren om te downloaden Mbf2ieee.dll en de bronbestanden en een Mbf2ieee.txt-bestand is een Leesmij-bestand met de tekst van dit artikel.

Broncode opgenomen in Mbf2ieee.exe

De broncode is ook beschikbaar naast de .dll zelf, dus wijzigingen en compileren als u Microsoft-C. Naar compileren en een nieuwe maken.DLL-bestand, moet u Microsoft C omdat de routines zijn specifiek voor Microsoft C en afhankelijk van de manier waarop die Microsoft c retourneert zwevende puntwaarden. Deze broncode wordt niet gecompileerd met Borland C.

Gebruik de volgende opdrachtregel om te compileren met Microsoft C, instructies voor het bouwen van de 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
				

Eigenschappen

Artikel ID: 140520 - Laatste beoordeling: donderdag 12 juli 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Visual Basic 4.0 Professional Edition
Trefwoorden: 
kbdownload kb16bitonly kbfile kbprb kbsample kbmt KB140520 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 140520
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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