Compiler-Konstante Win64 leer

Diskutiere und helfe bei Compiler-Konstante Win64 leer im Bereich Microsoft Office im Windows Info bei einer Lösung; Ich verwende Windows 7 Pro x64 und habe Office 2010 Pro ×64 installiert. Nun möchte ich meine Anwendung jemandem weitergeben, der Office 2016 x32... Dieses Thema im Forum "Microsoft Office" wurde erstellt von DU-CH, 15. März 2019.

  1. DU-CH
    DU-CH Gast

    Compiler-Konstante Win64 leer


    Ich verwende Windows 7 Pro x64 und habe Office 2010 Pro ×64 installiert. Nun möchte ich meine Anwendung jemandem weitergeben, der Office 2016 x32 verwendet. Gemäss vielen Quellen geht das mt der Compiler-Konstante "Win64" für gewisse Funktionsdefinitionen, zum Beispiel:


    #If Win64 Then
    Private Declare PtrSafe Function … as LongLong
    #Else
    Private Declare PtrSafe Function … as Long
    #End If


    Mein Problem: Win64 ist immer leer; es wird immer die erste Definition übernommen, auch wenn der Code (Testweise) mit #If Not Win64 beginnt… Und wenn ich Win64 selbst definiere gibt auch keinen Fehler:


    Public Win64 As Boolean ' Win64 immer Falsch


    Da kann ich also nicht testen, ob mein Code auch in ×32 funktionieren wird. Was mache ich falsch ?
     
  2. Andreas Killer Win User

    Compiler-Konstante Win64 leer

    Da kann ich also nicht testen, ob mein Code auch in ×32 funktionieren wird. Was mache ich falsch ?
    Genau, mit der 64-Bit Office Version kannst Du keinen 32-Bit Code testen.

    Die Anweisung #If Win64 Then tritt nur dann in Aktion wenn der Code kompiliert wird, d.h. sie ist kein normales
    If XXX Then welches zur Laufzeit ausgewertet wird.

    Du kannst zwar mit #If Not die 32-Bit Deklaration erzwingen, aber die wird dann mit der 64-Bit Version Probleme machen. Es geht bei diesen Sachen ja nicht darum wie der Code in VBA läuft, sondern ob der Aufruf der Funktion der externen DLL richtig funktioniert...

    Bitte versuche nicht ein 2tes Office in 32-Bit zu installieren, das geht in die Hose. Ich empfehle (und verwende selber) virtuelle Maschinen für diese Zwecke (ich verwende
    VirtualBox) auf denen ich ein übliches Windows mit einer üblichen Office-Version installiere um die zu erwartenden Gegebenheiten bei einem Kunden zu haben.

    Andreas.
  3. Andreas Killer Win User

    Compiler-Konstante Win64 leer

    Meine Frage ist vor allem, ob das normal oder ein Bug ist oder ob irgend etwas bei mir fehlt. Win64 wird zwar als Systemvariable erkannt (z.B. wenn ich "win64" tippe wird daraus "Win64"), aber diese ist immer
    leer (weder True noch False) und steuert keineswegs die #If-Bedingung beim Compilen…
    Es ist kein Bug, Deine Interpretation von dem Geschehen ist einfach falsch.

    Das Ding ist auch keine "Systemvariable" noch nicht mal eine Variable im eigentlichen Sinn.

    Der Compiler ließt den Text und sortiert das was er nicht braucht aus. Auf einem 64-Bit System kannst Du aber sofort sehen ob die Deklaration richtig ist oder nicht:


    [​IMG]


    Und wenn ich mir Dein Beispiel ankucke, dann sehe ich schon mal 2 Fehler:

    a) Die 32-Bit Varainte braucht kein PtrSafe

    b) LongLong bei 64-Bit ist wahrscheinlich falsch, die Dinger sind in aller Regel als LongPtr zu deklarieren.

    Das ist aber nicht soo schlimm, VBA modelt das wahrscheinlich so hin das der Aufruf dann doch funktioniert...

    Andreas.
  4. DU-CH Win User

    Compiler-Konstante Win64 leer

    Allerbesten Dank. Klar kann ich Office ×32 nicht installieren, ohne ×64 vorher zu deinstallieren. Das mache ich sicher nicht. Was ich meinte ist dass ich nicht einmal testen kann, ob die #If- Bedingung auf dem Ziel-PC das gewünschte Resultat ergeben würde,
    da sie bei mir unter Office 2010 Pro ×64 überhaupt nicht funktioniert: #If Win64 und #If Not Win64 ergeben immer genau dasselbe Resultat (z.B. [k]ein Fehler je nach Variablentyp) - es wird immer nur die Zeile vor dem #Else ausgeführt. Meine Frage ist vor allem,
    ob das normal oder ein Bug ist oder ob irgend etwas bei mir fehlt. Win64 wird zwar als Systemvariable erkannt (z.B. wenn ich "win64" tippe wird daraus "Win64"), aber diese ist immer
    leer (weder True noch False) und steuert keineswegs die #If-Bedingung beim Compilen…

    Aber ich gib's auf, die Migration auf ×32 auf dem eigenen PC vorzubereiten. Die korrekten Funktionsdeklarationen sind ja für ×32 gut bekannt (im Gegensatz zu ×64 wo verschiedene Internetquellen bezüglich der korrekten Variablentypen zum Teil widersprüchliche
    Angaben machen). Ich muss einfach von jeder Vorlage mit Makros eine zweite Version für ×32 machen, das ist in dem Einzelfall noch überschaubar.
  5. Andreas Killer Win User

    Excel VBA Objektmodell

    Wenn der Compiler den Code kompiliert ,damit die Maschine ihn ausführen kann, dann müssen alle Texte in Zahlen umgewandelt werden.
    In diesem Fall ersetzt er xlFillValues durch eine 4. Daher nennt man das eine Konstante.
    Andreas.
  6. G.O.Tuhls Win User

    Makro-Aufzeichnung für Word und PDF funktioniert nicht

    Anna hat ja dusseligerweise den den Code übersetzen lassen, da ist es kein Wunder, dass der Compiler das anmeckert. :D
    Gruß
    Burkhard
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Compiler-Konstante Win64 leer - Microsoft Office

Die Seite wird geladen...

Compiler-Konstante Win64 leer - Similar Threads - Compiler Konstante Win64

Forum Datum

Konstante Spam Mails werden nicht mehr als solche identifiziert

Konstante Spam Mails werden nicht mehr als solche identifiziert: Hallo zusammen,seit circa 2 Monaten bekomme ich täglich circa 20 Spam Mails in meinen "Relevant"-Ordner. Diese werden von mir als entweder Phishing oder Spam markiert und dorthin verschoben,...
Outlook.com 15. März 2024

Audiogeräte verbinden und trennen sich konstant

Audiogeräte verbinden und trennen sich konstant: Hey, ich habe einen 15,6 Zoll, 512 GB Laptop auf einem Zettel steht V130-15IGM, ich nehme an das ist der Name ist aber nicht wirklich klar und obwohl ich es schon mit mehreren Kopfhörern und...
Apps 24. Januar 2024

Audiogeräte verbinden und trennen sich konstant

Audiogeräte verbinden und trennen sich konstant: Hey, ich habe einen 15,6 Zoll, 512 GB Laptop auf einem Zettel steht V130-15IGM, ich nehme an das ist der Name ist aber nicht wirklich klar und obwohl ich es schon mit mehreren Kopfhörern und...
Games und Spiele 24. Januar 2024

PowerApps Record-Konstante

PowerApps Record-Konstante: Ich habe folgendes Problem mit PowerApps. Auf einem Button und dem OnSelect-Ereignis habe ich folg. Coding hinterlegt: Patchlst_Fahrtenplanung; Defaultslst_Fahrtenplanung; {Status: "Planung"}...
Microsoft Office 22. Juni 2021

Verschiedene Konstanten

Verschiedene Konstanten: Kleiner Kommentar zu Verschiedene Konstanten chr11 ist bei mirWORD2019 VBA der weiche Zeilenumbruch, in der Liste als 'vbVerticalTab' bezeichnet. Vielleicht ist hier etwas nicht ganz aktuell....
Microsoft Office 1. Juni 2020

Konstante PC Freezes bei Spielen

Konstante PC Freezes bei Spielen: Hallo, nach einiger Zeit wenn ich ein Spiel spiele hängt sich mein ganzer PC auf, so dass ich es nur noch mehr manuell ausschalten kann indem ich den Power Button beim Pc gedrückt halte. variiert...
Games und Spiele 8. Februar 2020

Excel auf Mac. Konstanter Faktor.

Excel auf Mac. Konstanter Faktor.: Mit der Anweisung für PC → Zeichen $ vor und hinter Zellenbuchstaben für konstanten Faktor - komme ich auf dem Mac nicht klar. Wie kriege ich auf Excel für Mac einen konstanten Faktor in eine...
Microsoft Office 15. Dezember 2017
Compiler-Konstante Win64 leer solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.