Hier ist das Problem:Gibt es in Visual Studio 2008 ein Makro, das ein 64-Bit-Windows-Betriebssystem identifiziert?
Um die richtige Version von ADO für mein 32-Bit-Programm zu #import, muß ich wissen, ob ich auf einem 32-Bit-Windows-Betriebssystem (dh die Datei im Programm ist bin Kompilieren Dateien) oder ein 64-Bit-Betriebssystem (dh die Datei befindet sich in Programme (x86)). Aber ich kann kein Makro finden, das mir das sagt, oder sogar ein Makro, das mir sagt, dass der Prozessor 64-Bit ist.
Wenn ich testen Sie es auf 64-Bit-Windows-7 Visual Studio 2008 Express ausgeführt wird, werden die folgenden relevanten Makros definiert:
_M_IX86
X86
Aber keiner der * 64 Makros erscheinen definiert werden, was wohl der Fall wäre, wenn sie sich auf/target/architectures beziehen und nicht auf die Architektur der aktuellen Maschine.
Gibt es ein Präprozessor-Makro, das mir sagen wird, ob ich ein 64-Bit-Windows-Betriebssystem ausführen?
Und wenn ja, was ist das? Ich würde mich sogar mit einem zufrieden geben, der mir sagen wird, ob ich einen 64-Bit-Prozessor verwende.
(ps Ich bin bereits bekannt this list)
aktualisieren
Bisher zu denken die Leute scheinen, dass es kein solches Makro ist, und die DLLs kopieren oder Umgebungsvariablen verwendet, ist eine bessere Sache machen.
Also habe ich die Umgebungsvariable Hinweis, habe ich das Problem für Entwickler umgehen, indem Sie beide Ordner - Programmdateien (x86) und Programme - auf den Include-Pfad und mit der Winkel-Klammer-Syntax von #import. Ich vermute jedoch, dass ich Release-Versionen für jede Version des Betriebssystems erstellen muss, da die ADO-DLLs jetzt Teil des Betriebssystems sind und nicht weitervertreibbar sind. Ein Blick darauf.
Obwohl nicht das, was ich gesucht habe, scheint die Verwendung von Umgebungsvariablen in Kombination mit der Winkelsymbol-Syntax von # import das Problem ohne viel Aufwand zu lösen. Ich denke, das ist die beste Alternative, aber ich lasse sie für einen weiteren Tag offen, für den Fall, dass jemand uns etwas Autoritäres geben kann. –