Thema Datum  Von Nutzer Rating
Antwort
20.04.2018 13:31:31 Mike
NotSolved
20.04.2018 14:43:02 Gast49221
NotSolved
20.04.2018 17:43:15 Mackie
Solved
20.04.2018 18:48:28 Mike
NotSolved
20.04.2018 18:59:56 Mike
NotSolved
20.04.2018 20:03:17 Mackie
Solved
21.04.2018 13:28:38 Gast82948
NotSolved
Blau Für Abwärtskompatibilität KOMPILIERUNGSKONSTANTEN verwenden
21.04.2018 08:39:42 Trägheit
NotSolved
21.04.2018 08:44:04 Gast78496
Solved
21.04.2018 13:35:37 Gast99796
NotSolved
21.04.2018 15:56:28 Gast50918
NotSolved
21.04.2018 20:16:02 xlKing
NotSolved
22.04.2018 01:40:00 Mike
NotSolved

Ansicht des Beitrags:
Von:
Trägheit
Datum:
21.04.2018 08:39:42
Views:
704
Rating: Antwort:
  Ja
Thema:
Für Abwärtskompatibilität KOMPILIERUNGSKONSTANTEN verwenden

Unter Windows 64 bit sind Pointer auch 64 bit groß. Verwendet man also API Funktionen in seinem Code, muss man diese daraufhin gehend fit machen. Es gibt dazu einen Artikel hier.

Es gibt 2 Komplilierungskonstanten:

VBA7: Diese Konstante ist neu und gibt daher nur True zurück wenn die Umgebung die sogenannte VBA 7-Codebasis unterstützt.

Im Grunde bedeutet dies:

  • neuer, spezieller Datentyp für Zeiger (LongPtr) existiert; dieser hat auf einem 64bit System den Datentyp LongLong / auf einem 32 bit System ist dieser weiterhin Long
  • neues PtrSafe-Attribut wird unterstützt; steht wörtlich für: "Declare-Anweisung gilt als 64 bit sicher"

Win64: Diese Konstante gibt Auskunft darüber ob das System ein 64 bit System ist.

Was so manche Leute daran verwirrt ist; eigentlich kann man ja davon ausgehen, das wenn VBA7 existiert - sprich die 64 bit Unterstützung - muss das System automatisch 64 bit sein - FALSCH !!!

Denn wie gesagt: VBA7 bedeutet lediglich, Declare-Anweisungen sind per Attribut PtrSafe als 64bit sicher markiert, sowie Pointer dank LongPtr - abhängig des Systems - entweder 32 bit oder 64 bit lang. Kurz: Code mit dem VBA7 Attribute läuft auf 32/64 bit gleichermaßen, ohne großartig Mehraufwand zu betreiben.

>> Es kann aber sein << das man sich auf einem 64 bit System befindet, auf dem keine VBA 7-Codebasis existiert. Und genau für diesen Fall existiert das Win64-Attribut. Denn auch hier muss man mit 64 bit Zeigern umgehen, hat aber kein LongPtr / LongLong - Datentyp zur Verfügung - man muss hier also eine andere Lösung finden.

 

LG

Trägheit


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
20.04.2018 13:31:31 Mike
NotSolved
20.04.2018 14:43:02 Gast49221
NotSolved
20.04.2018 17:43:15 Mackie
Solved
20.04.2018 18:48:28 Mike
NotSolved
20.04.2018 18:59:56 Mike
NotSolved
20.04.2018 20:03:17 Mackie
Solved
21.04.2018 13:28:38 Gast82948
NotSolved
Blau Für Abwärtskompatibilität KOMPILIERUNGSKONSTANTEN verwenden
21.04.2018 08:39:42 Trägheit
NotSolved
21.04.2018 08:44:04 Gast78496
Solved
21.04.2018 13:35:37 Gast99796
NotSolved
21.04.2018 15:56:28 Gast50918
NotSolved
21.04.2018 20:16:02 xlKing
NotSolved
22.04.2018 01:40:00 Mike
NotSolved