Muster eines Visual Studio Projects in C# |
Das hier beschriebene Template kann als vollständige Visual Studio Projects mit allen benötigten Dateien vom Internet herunter geladen werden. Das Template ist mit Microsoft Visual Studio 2019 erstellt worden. Alternativ kann die kostenlose Community-Edition von Visual Studio 2019 verwendet werden. Für neuere Versionen sind eventuell einige Anpassungen notwendig.
Download des Templates von der KilletSoft Internetseite
Dieses Template wurde freundlicherweise von den Herren Timo Hebel und Tim Hoogkamer von der Firma GreenGate AG zur Verfügung gestellt.
Das Template besteht aus zwei Projekten. GeoDLLWrapper ist ein Projekt, das als Schnittstelle zwischen der GeoDLL und C# fungiert. GeoDLLTest ist ein Projekt, das den Methodenaufruf der einzelnen Methoden aufzeigt.
Folgende Methoden sind implementiert: Koordinatentransformationen: CoordTrans CoordTrans2 CoordTrans3 Meritrans (Ohne Beispielcode in GeoDLLTest) SetCoordArea Sonstige Funktionen: GetAuthor GetDisclaimer GetDLLVersion GetErrorCode GetLicensee SetDllInit (Ohne Beispielcode in GeoDLLTest) SetDLLWorkDir (Ohne Beispielcode in GeoDLLTest) SetEvetnLoop SetInternErrsys SetLanguage SetMultiThreading SetSilence SetStaticUse SetStringAllocate SetUnlockCode
Auszüge aus den in beiden Visual Studio Projects enthaltene Sourcecodes sind hier dargestellt. Es sind nur Teile aus den beiden Projects dargestellt. Das vollständige, funktionsfähige Template kann von der KilletSoft-Internetseite herunter geladen werden (siehe oben)!
// GeoDLLWrapper using System; using GeoDllWrapper; using GeoDllWrapper.Enum; namespace GeoDLLTest { internal static class Program { private static void Main() { try { CallMethods(); } catch (Exception e) { Console.WriteLine(e); } Console.ReadKey(); } private static void CallMethods() { // -------------------------------------------------------------------------------- // Instanz des GeoDLL-Wrappers // -------------------------------------------------------------------------------- // TODO: Im Constructor müssen noch die Freischaltcodes und der Lizenznehmer // eingetragen werden. Alternativ kann das auch durch separaten Aufruf der Methode // SetUnlockCode nachträglich erfolgen. var transformer = new Transformer(true); // -------------------------------------------------------------------------------- // Exemplarische Aufrufe der Wrapper-Methoden // -------------------------------------------------------------------------------- var author = transformer.GetAuthor(); Console.WriteLine(author + "\n"); var disclaimer = transformer.GetDisclaimer(); Console.WriteLine(disclaimer + "\n"); var dllVersion = transformer.GetVersion(); Console.WriteLine(dllVersion + "\n"); var lastError = transformer.GetLastError(); Console.WriteLine(lastError + "\n"); var licensee = transformer.GetLicensee(); Console.WriteLine(licensee + "\n"); transformer.SetEventLoop(true); Console.WriteLine("Die Hintergrundbearbeitung von Eingaben wurde aktiviert. \n"); transformer.SetLanguage(Language.German); Console.WriteLine("Die Sprache wurde auf Deutsch eingestellt. \n"); transformer.SetMultiThreading(true); Console.WriteLine("MultiThreading wurde eingeschaltet. \n"); transformer.SetSilence(true); Console.WriteLine("Meldungen der GEODLL werden nun ins EventLog ausgegeben. \n"); transformer.SetStaticUse(true); Console.WriteLine("Die Verwendung von statischen Variablen wurde eingeschaltet. \n"); transformer.SetStringAllocate(true); // müsste unseres Wissens nach so wieso akiv sein. Console.WriteLine("Die automatische Speicherreservierung für NULL-Strings wurde aktiviert. \n"); transformer.CoordTrans(7.424655, 50.758545, "", CoordinateSystem.GEOGRD, ReferenceSystem.WGS84, out var c1Lng, out var c1Lat, out var c1Coords, CoordinateSystem.UTMREF, ReferenceSystem.WGS84, 0); Console.WriteLine(c1Coords); Console.WriteLine(c1Lat); Console.WriteLine(c1Lng + "\n"); transformer.CoordTrans2(0, 0, "32ULB8888824157", CoordinateSystem.UTMREF, ReferenceSystem.WGS84, out var c2Lng, out var c2Lat, out var c2Coords, CoordinateSystem.GEOGRD, ReferenceSystem.WGS84, 0); Console.WriteLine(c2Coords); Console.WriteLine(c2Lat); Console.WriteLine(c2Lng + "\n"); transformer.CoordTrans3(7.424655, 50.758545, 0, CoordinateSystem.GEO, ReferenceSystem.WGS84, out var c3Lng, out var c3Lat, 1, CoordinateSystem.GEO, ReferenceSystem.WGS84, 0); Console.WriteLine(c3Lat); Console.WriteLine(c3Lng + "\n"); transformer.SetCoordArea(true); Console.WriteLine("Die Syntax- und Bereichsüberprüfung für die Quell- und Zielkoordinaten wurde eingeschaltet."); } } } // GeoDLLTest using System; using GeoDllWrapper; using GeoDllWrapper.Enum; namespace GeoDLLTest { internal static class Program { private static void Main() { try { CallMethods(); } catch (Exception e) { Console.WriteLine(e); } Console.ReadKey(); } private static void CallMethods() { // -------------------------------------------------------------------------------- // Instanz des GeoDLL-Wrappers // -------------------------------------------------------------------------------- // TODO: Im Constructor müssen noch die Freischaltcodes und der Lizenznehmer // eingetragen werden. Alternativ kann das auch durch separaten Aufruf der Methode // SetUnlockCode nachträglich erfolgen. var transformer = new Transformer(true); // -------------------------------------------------------------------------------- // Exemplarische Aufrufe der Wrapper-Methoden // -------------------------------------------------------------------------------- var author = transformer.GetAuthor(); Console.WriteLine(author + "\n"); var disclaimer = transformer.GetDisclaimer(); Console.WriteLine(disclaimer + "\n"); var dllVersion = transformer.GetVersion(); Console.WriteLine(dllVersion + "\n"); var lastError = transformer.GetLastError(); Console.WriteLine(lastError + "\n"); var licensee = transformer.GetLicensee(); Console.WriteLine(licensee + "\n"); transformer.SetEventLoop(true); Console.WriteLine("Die Hintergrundbearbeitung von Eingaben wurde aktiviert. \n"); transformer.SetLanguage(Language.German); Console.WriteLine("Die Sprache wurde auf Deutsch eingestellt. \n"); transformer.SetMultiThreading(true); Console.WriteLine("MultiThreading wurde eingeschaltet. \n"); transformer.SetSilence(true); Console.WriteLine("Meldungen der GEODLL werden nun ins EventLog ausgegeben. \n"); transformer.SetStaticUse(true); Console.WriteLine("Die Verwendung von statischen Variablen wurde eingeschaltet. \n"); transformer.SetStringAllocate(true); // müsste unseres Wissens nach so wieso akiv sein. Console.WriteLine("Die automatische Speicherreservierung für NULL-Strings wurde aktiviert. \n"); transformer.CoordTrans(7.424655, 50.758545, "", CoordinateSystem.GEOGRD, ReferenceSystem.WGS84, out var c1Lng, out var c1Lat, out var c1Coords, CoordinateSystem.UTMREF, ReferenceSystem.WGS84, 0); Console.WriteLine(c1Coords); Console.WriteLine(c1Lat); Console.WriteLine(c1Lng + "\n"); transformer.CoordTrans2(0, 0, "32ULB8888824157", CoordinateSystem.UTMREF, ReferenceSystem.WGS84, out var c2Lng, out var c2Lat, out var c2Coords, CoordinateSystem.GEOGRD, ReferenceSystem.WGS84, 0); Console.WriteLine(c2Coords); Console.WriteLine(c2Lat); Console.WriteLine(c2Lng + "\n"); transformer.CoordTrans3(7.424655, 50.758545, 0, CoordinateSystem.GEO, ReferenceSystem.WGS84, out var c3Lng, out var c3Lat, 1, CoordinateSystem.GEO, ReferenceSystem.WGS84, 0); Console.WriteLine(c3Lat); Console.WriteLine(c3Lng + "\n"); transformer.SetCoordArea(true); Console.WriteLine("Die Syntax- und Bereichsüberprüfung für die Quell- und Zielkoordinaten wurde eingeschaltet."); } } }
|