Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

64 bit Declare-Anweisung

64 bit Declare-Anweisung
Michael
Moin Allerseits!
Ich möchte mein Projekt gerne auf ein 64bit-System laufen lassen. Ichhabe mir schon so weit herausgesucht, dass die Declare-Anweisung zu unterteilen ist:
#If Win64 Then
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName _
As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As _
Long, ByVal nIndex As Long) As Long
Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As _
Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
#Else
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
#End If
Aber nach dem #else steht alles rot da bis zum #EndIf. Wieso denn jetzt? Weiß jemand da warum? Danke für Eure Hilfe.
Gruß
Michael H

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 64 bit Declare-Anweisung
07.12.2011 11:38:59
Nepumuk
Hallo,
das ist normal da der 64Bit Interpreter die 32Bit Declare-Anweisungen nicht verarbeiten kann. Durch die bedingte Kompilierung kann aber nichts passieren.
Woruaf du aber achten musst, GetWindowLong und SetWindowLong können mit 32Bit Excel unter 64Bit Windows zu spontanen Abstürzen führen. Die versuchen nämlich in einen 32Bit breiten Speicherbereich zu lesen und zu schreiben der Speicherbereich ist aber 64Bit breit.
Aus der Hilfe zu den Funktionen:
The GetWindowLong function retrieves information about the specified window. The function also retrieves the 32-bit (long) value at the specified offset into the extra window memory of a window.
The SetWindowLong function changes an attribute of the specified window. The function also sets a 32-bit (long) value at the specified offset into the extra window memory of a window.
Eine Lösung zu diesem Problem gibt es nicht da du in einem 32Bit Excel keine 64Bit Variablen (LongLong) benutzen kannst.
Gruß
Nepumuk
Anzeige
AW: 64 bit Declare-Anweisung
07.12.2011 12:19:32
Michael
Hallo Nepumuk!
Vielen Dank. Der Code läuft tatsächlich so durch.
VG
Michael H

12 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige