CRT-Konflikt bei "Getservbyname"

Dieser Artikel wurde zuvor veröffentlicht unter D37104
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
177653 CRT Conflict with Getservbyname
Problembeschreibung
Wenn Sie die Funktion "getservbyname()" verwenden, wird eine Fehlermeldung ausgegeben und die Datei "Services", die sich im Verzeichnis "%SystemRoot\System32\Drivers\Etc" befindet, kann nicht verarbeitet werden.
Ursache
Wenn CRTs (CRT - C RunTimes) dynamisch verknüpft sind (/MD - verwenden Sie "Msvcrt.dll"), dann verwenden die Module gemeinsam eine Version der globalen Variablen "_fmode". Wenn die Standardeinstellung "_O_TEXT" in "_O_BINARY" geändert wird, sind davon alle Module betroffen, und die Funktion "getservbyname" schlägt fehlt, weil "_O_TEXT" erwartet wird.

Wenn CRTs statisch verknüpft sind, gibt es mehrere Versionen von CRT (und als Folge davon auch mehrere Kopien von "_fmode"). Das heißt, dass bei einer Änderung des Wertes für "_fmode" im Programm der Standardmodus für "fopen" in der EXE-Datei geändert wird. Im Standardmodus greifen Aufrufe für "fopen" der Sockets-DLL auf die _fmode-Variable in der CRT-DLL zu, deren Wert "_O_TEXT" ist, deshalb schlägt die Funktion in diesem Fall nicht fehl.
Lösung
Zum Beheben dieses Problems installieren Sie das neueste Service Pack für Windows NT, Version 4.0. Weitere Informationen finden Sie im folgenden Artikel in der Microsoft Knowledge Base.
   ARTIKEL-ID: Q152734   TITEL     : How to Obtain the Latest Windows NT 4.0 Service Pack
Beachten Sie, dass eine spezielle Version dieses Hotfixes jetzt für Kunden verfügbar ist, bei denen dieses Problem auf den Windows NT Terminal Server auftritt. Wenden Sie sich bitte an den technischen Support von Microsoft, um diesen Fix zu erhalten.
Status
Microsoft hat bestätigt, dass es sich dabei um ein Problem in Windows NT, Version 4.0, handelt. Dieses Problem wurde zum ersten Mal mit Windows NT 4.0 Service Pack 4 behoben.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, daß nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
kbWinNT400sp4fix
Eigenschaften

Artikelnummer: 177653 – Letzte Überarbeitung: 02/08/2014 16:09:20 – Revision: 1.0

  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0 Terminal Server
  • kbnosurvey kbarchive kbwinnt400sp4fix KB177653
Feedback