Prototyp und Beschreibung der Funktion setunlockcode()

(Nicht freischaltpflichtige Funktion)

 

setunlockcode()
Freischalten von GeoDLL-Funktionsgruppen mittels Freischaltparameter.

Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) unsigned long __stdcall setunlockcode(
     char *pszUnlockkey,
     char *pszLicensee);

Prototyp der DLL-Funktion in Visual Objects Syntax:
_DLL function setunlockcode(;
     pszUnlockkey as psz,;                 // 4 Byte, char*
     pszLicensee as psz);                  // 4 Byte, char*
as logic pascal:geodll32.setunlockcode     // 4 Byte


Die Funktion schaltet alle DLL-Funktionen einer freischaltpflichtigen Gruppe
zur uneingeschränkten Nutzung frei. Dazu müssen für jede frei zuschaltende
Gruppe die Freischaltparameter aus dem Lizenzvertrag mit der Funktion
setunlockcode() an die DLL übergeben werden. Es ist wichtig, dass die
Parameter in derselben Schreibweise übergeben werden, wie sie im Lizenzvertrag
eingetragen sind. Wenn Funktionen aus verschiedenen Gruppen genutzt werden
sollen, muss setunlockcode() mehrmals nacheinander aufgerufen werden.

Die geodätischen Funktionen der DLL sind folgendermaßen in
freischaltpflichtige Gruppen zusammengefasst:

Die Gruppe "Koordinatentransformationen" enthält Funktionen zur Durchführung
von Koordinatentransformationen und Bezugssystemwechsel.
  coordtrans()       2D-Koordinatentransf., numerisch / alphanum. (char**)
  coordtrans2()      2D-Koordinatentransf., numerisch / alphanum. (char*)
  coordtrans3()      2D-Koordinatentransformation, numerisch
  coordtrans4()      2D-Koordinatentransf., numerisch, keine Notationen
  coordtransex()     2D-Koordinatentransformationen, reduzierte Ostwerte
  coordtrans3d()     3D-Koordinatentransf., numerisch / alphanum. (char**)
  coordtrans3d2()    3D-Koordinatentransf., numerisch / alphanum. (char*)
  coordtrans3d3()    3D-Koordinatentransformation, numerisch
  coordtrans3d4()    3D-Koordinatentransformation, numerisch, keine Notationen
  coordtrans3dex()   3D-Koordinatentransformationen, reduzierte Ostwerte
  coordtransepsg() - EPSG-kodierte Koordinatentransformation
  meritrans()        Meridianstreifenwechsel bei GK- und UTM-Koordinaten
  setcoordarea()     Ein-/Ausschalten der Bereichsüberprüfung

Die Gruppe "NTv2-Gitterdaten" enthält Funktionen zum Bezugssystemwechsel
mit Gitterdateien nach dem NTv2-Standard.
  convntvascii2bin()  NTv2-ASCII-Datei nach Binärdatei konvertieren
  getntvgridcount()   Anzahl der Subgitter in einer NTv2-Datei
  getntvgridheader()  Header-Parameter eines NTv2-Subgitters
  getntvheader()      Header-Parameter einer NTv2-Datei
  getntvrefbelong()   Ermitteln des zweiten NTv2-Bezugssystems
  getntvrefequiv()    NTv2-äquivalentes Bezugssystem
  getntvrefstatus()   NTv2-Zugehörigkeit eines Bezugssystems
  setntvbinaryfile()  NTv2-Binärdatei prüfen und initialisieren
  setntvbinautofile() NTv2-Binärdatei in die Warteposition setzen
  setntvpolyvalid()   Polygonale Gültigkeitsprüfung in NTv2-Dateien setzen

Die Gruppe "Benutzerdefinitionen" enthält Funktionen zur Eingabe von
selbst definierten Koordinatensystemen, Bezugssystemen und Erdellipsoiden,
die mit den Funktionen der Gruppe "Koordinatentransformationen" neben den
in GeoDLL vordefinierten Systemen genutzt werden können.
  setusercoordsys1() Definition eines Benutzer-Koordinatensystems
  setusercoordsys2() Definition eines zweiten Benutzer-Koordinatensystems
  setuserrefsys()    Definition eines Benutzer-Bezugssystems
  setuserellsource() Definition eines Benutzer-Quellellipsoids
  setuserelltarget() Definition eines Benutzer-Zielellipsoids
  getusercoordpar()  Parameter eines Benutzer-Koordinatensystems
  getusercoordtyp()  Bezeichnung eines Benutzer-Koordinatensystems

Die Gruppe "Parameterermittlung" enthält Funktionen zur Rückgabe von
Parametern der in GeoDLL vordefinierten und benutzerdefinierten
Koordinatensysteme, Bezugssysteme und Ellipsoide.
  getcoordname()     Bezeichnung eines Koordinatensystems
  getcoordsys()      Formatierte Parameter eines Koordinatensystems
  getcoordform()     Notation der Koordinaten eines 2D-Koordinatensystems
  getcoordform3d()   Notation der Koordinaten eines 3D-Koordinatensystems
  getcoordaxis()     Achsenbezeichnungen eines 2D-Koordinatensystems
  getcoordaxis3d()   Achsenbezeichnungen eines 3D-Koordinatensystems
  getcoordarea()     Bereichsgrenzen eines Koordinatensystems
  getcoordstdrefsys() Standard-Bezugssystem eines Koordinatensystems
  getcoordproj()     Projektionsmethodennummer eines Koordinatensystems
  getcoordstrstatus() Feststellen ob Koordinatensystem ein Streifensystem
  getrefname()       Bezeichnung eines Bezugssystems
  getrefsys()        Formatierte Parameter eines Bezugssystems
  getellname()       Bezeichnung eines Ellipsoids
  getellsys()        Formatierte Parameter eines Ellipsoids
  getellsource()     Halbachsen eines Quellellipsoids
  getelltarget()     Halbachsen eines Zielellipsoids

Die Gruppe "Entfernungsberechnungen" enthält Funktionen zur Ermittlung
der Entfernung zwischen zwei Koordinaten.
  distancegeo()      Entfernung zw. geogr. Koordinaten auf dem Ellipsoid
  distancesphere()   Entfernung zw. geogr. Koordinaten auf der Erdkugel
  distanceutm()      Entfernung zwischen UTM-Koordinaten
  point2pointgeo()   Zielpunkt auf Ellipsoid aus Startpunkt, Winkel, Entfernung
  point2pointsphere() Zielpunkt auf Erdkugel aus Startpunkt, Winkel, Entfernung
  point2pointutm()   UTM-Zielpunkt aus UTM-Startpunkt, Winkel und Entfernung
  vincentydirect()   Erste geodätische Hauptaufgabe
  vincentyinverse()  Zweite geodätische Hauptaufgabe

Die Gruppe "Notationsberechnungen" enthält Funktionen zur Umrechnung der
geographischen Koordinaten von einer Notation in eine andere und zum
korrekten Runden der geographischen Koordinaten verschiedener Notationen.
  umfd2g()           Umformung dezimale Notation in graduelle Notation
  umfd2gn()          Umformung dezimale Notation in gonale Notation
  umfd2n()           Umformung dezimale Notation in nautische Notation
  umfd2s()           Umformung dezimale Notation in Sekunden-Notation
  umfg2d()           Umformung graduelle Notation in dezimale Notation
  umfgn2d()          Umformung gonale Notation in dezimale Notation
  umfn2d()           Umformung nautische Notation in dezimale Notation
  umfs2d()           Umformung Sekunden-Notation in dezimale Notation
  umfroundg()        Exakte Rundung gradueller Koordinaten
  umfroundn()        Exakte Rundung nautischer Koordinaten

Die Gruppe "Kartenberechnungen" enthält Funktionen zum Umrechnen von
Koordinaten in TK-Nummern der topographischen Karten und zum Ermitteln der
Eckkoordinaten der topographischen Karten.
  kartgeo2tk()       Zu geographischen Koordinaten passende TK25-Nummer
  karttk2geo()       Eckkoordinaten einer Karte aus TK25-Nummer ermitteln
  karttknum()        TK50, TK100 und TKÜ200 aus TK25-Nummer ermitteln

Die Gruppe "Höhenberechnungen" enthält Funktionen zum Ermitteln von
Geländehöhen über dem Meeresspiegel aus digitalen Höhenmodellen.
  getelevation03()   Geländehöhe aus dem 3 Sek. Höhenmodell CGIAR ermitteln
  getelevation30()   Geländehöhe aus dem 30 Sek. Höhenmodell GLOBE ermitteln
  getelevation33()   Geländehöhe aus dem 3/30 Sek. Höhenmodell CGIAR/GLOBE
  setelev03datapath() Datenpfad für das 3 Sek. Höhenmodell CGIAR setzen
  setelev30datapath() Datenpfad für das 30 Sek. Höhenmodell GLOBE setzen
  convelev03ascii2bin() CGIAR ASCII-Datei nach Binärdatei konvertieren

Die Gruppe "Transformationsparameter" enthält Funktionen zur Berechnung von
Helmert- und Molodenski-Parametersätzen, Ausreißern und Klaffungen aus
identischen Punkten der Quell- und Ziel-Koordinatenbezugssysteme.
  gettranshelmert()   Berechnnen von sieben Helmert-Parametern
  gettransmolodenski() Berechnen von drei Molodenski-Parametern
  gettransoutliers()  Berechnen der Ausreißer von identischen Punkten
  gettransresiduals() Berechnen der Klaffungen von identischen Punkten
  gettransresidualmax() Berechnen der "Maximalen Räumlichen Klaffung"
  gettransresidualaverage() Berechnen der "Mittleren Räumlichen Klaffung"
  gettransresidualrms() Berechnen der "Quadratischen Mittleren Klaffung" (RMS)

Die Gruppe "Zeitzonenberechnungen" enthält Funktionen zur Ermittlung und
Berechnung von Zeitzonen, UTC, DST, Sommerzeitdaten und anderen Zeitzonen-
Parametern aus Koordinaten und aus GeoDLL-Zeitzonen-Indexen.
  settzgridfile()    Zeitzonen-Gitterdatei prüfen und initialisieren
  settzshapefile()   Zeitzonen-Shapedatei prüfen und initialisieren
  gettzcurrentbynum() Ermittlung aktueller Zeitzonen-Parameter aus GeoDLL-Index
  gettznamebynum()   Ermittlung der Zeitzonenbezeichnung aus einem GeoDLL-Index
  gettznumbycoordexact() Genaue Ermittlung des GeoDLL-Index aus Koordinate
  gettznumbycoordfast() Schnelle Ermittlung des GeoDLL-Index aus Koordinate
  gettzparbynum()    Ermittlung allgemeiner Zeitzonen-Parameter aus GeoDLL-Index

Sonstige Funktionen, die nicht freischaltpflichtig sind und mit allen
Gruppen genutzt werden können.
  getauthor()        Urheberhinweis und Anschrift des Programmautoren
  getdisclaimer()    Hinweis zum Haftungsausschluss der GeoDLL
  getdllversion()    Versionsnummer der vorliegenden GeoDLL
  geterrorcode()     Beschreibung des zuletzt aufgetretenen Fehlers
  getlicensee()      Bezeichnung des Lizenznehmers
  setcoordarea()     Ein-/Ausschalten der Bereichsüberprüfung
  seteventloop()     Ein-/Ausschalten der Event-Verarbeitung
  setinternerrsys()  Ein-/Ausschalten der internen Fehlerbehandlung
  setlanguage()      Wahl der Sprache für alle textlichen Rückgaben
  setmultithreading() Ein-/ Ausschalten einer Multithreading-Umgebung
  setsilence()       Ein-/Ausschalten der EventLog-Ausgabe
  setstaticuse()     Ein-/Ausschalten der Verwendung interner Statics
  setstringallocate() Ein-/Ausschalten des internen Speichermanagements
  setunlockcode()    Eingabe der Freischaltparameter

Beim Aufruf der Funktion setunlockcode() müssen die übergebenen
Freischaltparameter korrekt sein. Bei der Übergabe eines einzigen ungültigen
Freischaltparameters werden die Funktionen aller freischaltbaren Gruppen von
weiteren Funktionsaufrufen ausgeschlossen.

Falls noch keine Freischaltparameter bei der Vertriebsfirma erworben worden
sind, können die Funktionen freischaltpflichtiger Gruppen pro Programmlauf
einige Mal zu Testzwecken aufgerufen werden (Sharewareprinzip). Die
Testversion zeigt außerdem ein kleines Hinweisfenster an und gibt eine
Dreitonfolge aus. Die Funktion setunlockcode() darf in diesem Fall nicht
aufgerufen werden (siehe vorherigen Absatz).


Die Parameter werden folgendermaßen übergeben:
pszUnlockkey  Freischaltcode aus dem beim Lizenzgeber erworbenen
              Lizenzvertrag als ein mit Null abschließender
              Characterstring (nullterminated string). Sollte die
              verwendete Programmiersprache keine nullterminated strings
              unterstützen, so kann auch ein normaler String mit einem
              angehängten Null-Character übergeben werden.

pszLicensee   Bezeichnung des Lizenznehmers aus dem Lizenzvertrag als ein
              mit Null abschließender Characterstring (nullterminated
              string). Sollte die verwendete Programmiersprache keine
              nullterminated strings unterstützen, so kann auch ein
              normaler String mit einem angehängten Null-Character
              übergeben werden. Die Lizenznehmerbezeichnung kann später mit
              der Funktion getlicensee() abgefragt werden.

returnWert    Bei ungültigen Freischaltparametern gibt die Funktion FALSE
              zurück, sonst TRUE.


Freischaltung:
Die Funktion ist nicht freischaltpflichtig.