MIDL Compilation-Fehler (und vielleicht idl-Dateigenerierungsfrage)
-
16-09-2020 - |
Frage
Wir schauen uns in den Umzug unserer Anwendung von VS2008 bis VS2010.
Wir erzeugen einige COM-Objekte mit "zugeführten Programmierung" und die IDL wird automatisch generiert.
Die Importanrichtungen für beide Dateien sind unterschiedlich und die Kompilierung schlägt auf VS2010 aus.
Bei VS2008 erzeugt es so etwas wie:
generasacodicetagpre.auf vs vs 2010
generasacodicetagpre.Wenn die IDL auf VS2010 kompiliert ist, erzeugt er die folgenden Fehler
generasacodicetagpre.Das manuelle Entfernen der Einfuhrrichtlinie "wincrypt.idl" entfernt den Kompilierungsfehler, aber das ist keine Lösung, da die IDL automatisch generiert wird.
Ich bin nicht sicher, warum die beiden IDL anders sind und was dazu ist, die Importanweisungen hinzuzufügen;oder sogar, wie Sie den MIDL-Kompilierungsfehler beheben.
Alle Ideen?
Vielen Dank im Voraus.
max.
Lösung
es fehlt
generasacodicetagpre.Sie können es beheben, indem Sie das Attribut [ImportIDL] in Ihrem Code verwenden.
zugeordnete Programmierung war ein bisschen Fehler, er wurde im Wesentlichen veraltet, als es als Option für den ATL-Projektassistenten in VS2008 entfernt wurde.Für die langfristige Wartung Ihrer Codebasis betrachten Sie das Entfernen.Sie können den automatisch generierten .idl als Weg verwenden, um das gestartet zu erhalten.
Andere Tipps
Perhaps I was using the [importidl]
attribute wrong, but I couldn't get Hans' answer to fix this problem. But the fix here worked. Just add this to the top of your stdafx.h file:
[idl_quote("import \"ocidl.idl\";")];