Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

CoCreateGuid (API)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 22.07.2006, 20:52    Titel: CoCreateGuid (API) Antworten mit Zitat

Hallo!
Also, wenn ich ein MSI für mein Programm generieren will, brauch' ich ja eine GUID. Diese kann man mit der API erzeugen.
Hab' mal die Funktion in der API- Guide angeschaut, OK.
Dann hab' ich folgenden Code geschrieben:
Code:

'or and or
/'
or and or
'/
Declare Function CoCreateGuid Lib "ole32" alias "CoCreateGuid" (id As Any) As Long
dim MeineGUID as string
dim x as long
print "GUID: ";
x=CoCreateGuid(@MeineGUID)
print MeineGUID
sleep


Hier der Ausschnitt aus der API- Guide:
Infoseite:
Code:

Creates a GUID, a unique 128-bit integer used for CLSIDs and interface identifiers.


Deklaration:
Code:

Declare Function CoCreateGuid Lib "ole32" (id As Any) As Long


ich hab's so ins Programm geschrieben:
Code:

Declare Function CoCreateGuid Lib "ole32" alias "CoCreateGuid" (id As Any) As Long


Parameters:
Code:

· pguid
[out] Pointer to the requested GUID on return.


Return values:
Code:

· S_OK
The GUID was successfully created.


Das Programm geht zwar zum Compilieren, beim ausführen wird es aber sofort wegen eines ungültigen Zugriffs beendet.

Weis jemand rat?

edit: Einen Fehler behoben; Geht immer noch nicht!
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.


Zuletzt bearbeitet von raph ael am 13.03.2008, 19:56, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.07.2006, 21:13    Titel: Re: CoCreateGuid (API) Antworten mit Zitat

raph ael hat Folgendes geschrieben:
Code:
Declare Function CoCreateGuid Lib "ole32" alias "CoCreateGuid" (id As Any) As Long

Was soll denn id as Any für ein Typ sein?
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 22.07.2006, 21:17    Titel: Antworten mit Zitat

Wie du meinen?
In der API- Guide steht's halt so und so hab' ichs übernommen. mit den Augen rollen
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.07.2006, 21:39    Titel: Antworten mit Zitat

Any(<-Link) ist für Pointer..
Ich dachte, du wüßtest das..
..weil der VariablenTyp 'As Any' geht nicht..
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 23.07.2006, 08:31    Titel: Antworten mit Zitat

Active VB + ULongInt + dein Code + etwas Zeit und Erfahrung =
Code:
Declare sub CoCreateGuid Lib "ole32" alias "CoCreateGuid" (byref id As ulongint)
dim x as ulongint
do
    CoCreateGuid(x)
    ? x
    sleep
loop

zwinkern
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 23.07.2006, 08:40    Titel: Antworten mit Zitat

Aha! Danke happy .
Wenn man eine GUID will muss man natürlich
Code:

? hex$(x)

schreiben.
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 23.07.2006, 14:24    Titel: Antworten mit Zitat

Code:
/'So steht es in den FB inc-Dateien
Declare Function CoCreateGuid Alias "CoCreateGuid" (Byval As GUID Ptr) As HRESULT

Type HRESULT As Long

Type GUID
   Data1 As Uinteger
   Data2 As Ushort
   Data3 As Ushort
   Data4(0 To 8-1) As Ubyte
End Type
das sind 128 Bit eine Variable ulongint mit 64Bit reicht nicht!!
'/


#define WIN_INCLUDEALL
#include "Windows.bi"

Dim test As GUID
Dim i As Integer
Cls
CoCreateGuid(@test)

With test
  ?hex(.Data1,4) & "-" & hex(.Data2,2) &"-"& hex(.Data3,2) &"-";
  For i =0 To 7
    ?hex(.Data4(i),1);
  Next
End With
?
Sleep
End
aber was hier die Zahlen in GUID bedeuten ? keine Ahnung ?
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.


Zuletzt bearbeitet von volta am 23.07.2006, 15:15, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
raph ael



Anmeldungsdatum: 12.04.2006
Beiträge: 472

BeitragVerfasst am: 23.07.2006, 14:44    Titel: Antworten mit Zitat

Dat sind Zahlen...
Zufällige, nichtsbedeutende, ZAHLEN, die vom Sys generiert werden.
Braucht man(n) beim WiX (Windoof Installer XML).
_________________
Zitat:
1000 Yottabytes sind absurd. 640 Yottabytes sollten genug für jeden sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz