Die Schnittstellenregistrierungsdatei
Die Schnittstellenregistrierungsdatei sammelt Informationen, die bei der Registrierung von COM-Schnittstellen hilfreich sind, die in eine DLL- oder EXE-Datei gepackt sind. Die Schnittstellenregistrierungsdatei unterscheidet sich von anderen generierten Dateien, da sie Informationen beim Kompilieren mehrerer verschiedener IDL-Dateien sammeln kann. Jeder MIDL-Compiler, der für COM-Schnittstellen ausgeführt wird, sucht zuerst nach einer vorhandenen dlldata.c-Datei, und wenn die Datei nicht gefunden wird, wird eine neue dlldata.c-Datei erstellt. Wenn eine dlldata.c-Datei gefunden wird, werden Informationen zur aktuellen IDL hinzugefügt (falls nicht vorhanden) oder ersetzt.
Die Schnittstellenregistrierungsdatei wird sicher in einer Multiprozessorumgebung generiert oder aktualisiert, da parallele MIDL-Kompilierungen nicht gleichzeitig in die Datei schreiben können. Da jede dlldata.c-Datei entweder von der Buildumgebung oder vom Benutzer als schreibgeschützt gekennzeichnet werden kann, implementiert der MIDL-Compiler einen Timeoutansatz, um auf eine Datei zu warten, die nicht geöffnet werden kann, und gibt eine entsprechende Fehlermeldung aus, wenn das Timeout abläuft.
Der Standardname für die Schnittstellenregistrierungsdatei, die aus einer Eingabedatei generiert wird, lautet dlldata.c. Der MIDL-Compilerschalter /dlldata kann verwendet werden, um den Standardnamen der Datei zu überschreiben. Das Überschreiben des Standardnamens der Schnittstellenregistrierungsdatei ist besonders nützlich, wenn sich einige IDL-Dateien, die in eine gemeinsame Binärdatei gepackt sind, in verschiedenen Verzeichnissen befinden.