Przeglądaj źródła

Projektdateien hinzufügen.

Kolja Strohm 6 lat temu
rodzic
commit
95360cf708

+ 44 - 0
TestWalker.sln

@@ -0,0 +1,44 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2036
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWalker", "TestWalker\TestWalker.vcxproj", "{8A59609B-B9E3-413B-94F0-A232D893623A}"
+	ProjectSection(ProjectDependencies) = postProject
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9} = {873A8B1A-A214-4AD6-BE36-20C87B675ED9}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ConnectTest", "Tests\ConnectTest\ConnectTest.vcxproj", "{873A8B1A-A214-4AD6-BE36-20C87B675ED9}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Debug|x64.ActiveCfg = Debug|x64
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Debug|x64.Build.0 = Debug|x64
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Debug|x86.ActiveCfg = Debug|Win32
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Debug|x86.Build.0 = Debug|Win32
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Release|x64.ActiveCfg = Release|x64
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Release|x64.Build.0 = Release|x64
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Release|x86.ActiveCfg = Release|Win32
+		{8A59609B-B9E3-413B-94F0-A232D893623A}.Release|x86.Build.0 = Release|Win32
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Debug|x64.ActiveCfg = Debug|x64
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Debug|x64.Build.0 = Debug|x64
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Debug|x86.ActiveCfg = Debug|Win32
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Debug|x86.Build.0 = Debug|Win32
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Release|x64.ActiveCfg = Release|x64
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Release|x64.Build.0 = Release|x64
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Release|x86.ActiveCfg = Release|Win32
+		{873A8B1A-A214-4AD6-BE36-20C87B675ED9}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {D4474896-0179-4D5B-A31F-EB0DB06BFE35}
+	EndGlobalSection
+EndGlobal

BIN
TestWalker/Framework.dll


+ 62 - 0
TestWalker/Keys.h

@@ -0,0 +1,62 @@
+#pragma once
+#pragma once
+
+class Keys
+{
+public:
+
+    // Servertypen
+    enum Server
+    {
+        MAIN = 0,
+        ANMELDUNG = 1,
+        CHAT = 2,
+        EDITOR = 3,
+        HISTORIE = 4,
+        INFORMATION = 5,
+        KARTEN = 6,
+        LOGIN = 7,
+        NEWS = 8,
+        REGISTER = 9,
+        SHOP = 10,
+        SPIEL = 11,
+        PATCH = 12,
+        ERHALTUNG = 13
+    };
+
+    // Keytypen
+    enum Key
+    {
+        EMPFANGEN = 0,
+        SENDEN = 0
+    };
+
+    // Gibt den Schlüssel eines Servers zurück
+    //  key: Ein Zeiger auf ein array von bytes. Wird als ausgabe verwendet. Enthält nach aufruf den gewünschten Key
+    //  length: Enthält nach aufruf die Länge des Schlüssels
+    //  sTyp: Der Servertyp, zu dem der Schlüssel ermittelt werden soll
+    //  kTyp: Die art des Schlüssels der ermittelt werden soll
+    static void getServerKey( char **key, int &length, Server sTyp, Key kTyp )
+    {
+        unsigned char keys[][ 20 ] = {
+            { 199, 164, 172, 55, 246, 16, 155, 8, 151, 176, 250, 181, 227, 133, 30, 41, 200, 26, 7, 151 }, // Main
+        { 158, 10, 37, 155, 117, 58, 28, 197, 132, 76, 252, 83, 84, 222, 11, 125, 240, 218, 25, 201 }, // Anmeldung
+        { 78, 20, 190, 133, 10, 175, 51, 96, 62, 1, 180, 194, 126, 50, 211, 154, 105, 227, 22, 101 }, // Chat
+        { 55, 124, 19, 204, 23, 5, 59, 75, 247, 138, 119, 111, 57, 250, 206, 187, 165, 6, 247, 151 }, // Editor
+        { 207, 30, 72, 46, 30, 50, 56, 213, 82, 107, 14, 201, 149, 58, 110, 138, 228, 241, 52, 54 }, // Historie
+        { 231, 246, 125, 32, 88, 172, 229, 223, 246, 138, 74, 64, 142, 245, 217, 218, 162, 62, 103, 50 }, // Information
+        { 24, 15, 53, 87, 38, 73, 154, 38, 246, 90, 39, 133, 11, 199, 22, 80, 26, 132, 95, 54 }, // Karten
+        { 143, 166, 245, 235, 76, 75, 116, 80, 26, 178, 142, 176, 109, 53, 106, 222, 223, 55, 139, 111 }, // Login
+        { 4, 150, 243, 145, 204, 71, 253, 88, 4, 51, 189, 207, 189, 248, 231, 40, 106, 7, 182, 5 }, // News
+        { 186, 186, 179, 126, 216, 207, 123, 154, 168, 149, 51, 221, 6, 193, 160, 141, 164, 126, 44, 242 }, // Register
+        { 218, 226, 231, 216, 68, 63, 132, 155, 49, 235, 239, 0, 19, 23, 116, 244, 235, 21, 189, 53 }, // Shop
+        { 253, 234, 211, 132, 121, 230, 95, 145, 201, 13, 43, 77, 153, 223, 253, 69, 234, 43, 52, 99 }, // Spiel
+        {}, // Patch
+        { 207, 242, 142, 161, 148, 107, 131, 33, 172, 68, 91, 169, 81, 106, 69, 131, 207, 56, 166, 248 } // Erhaltung
+        };
+        length = 20;
+        *key = new char[ 20 ];
+        for( int i = 0; i < 20; i++ )
+            ( *key )[ i ] = keys[ sTyp ][ i ];
+    }
+};

+ 164 - 0
TestWalker/MSClient.h

@@ -0,0 +1,164 @@
+#pragma once
+#include <Klient.h>
+#include <iostream>
+#include "Keys.h"
+
+#define MAIN_SERVER_PORT 5225
+#define MAIN_SERVER_IP "94.130.27.12"
+
+#define ACCOUNT_NAME "Test"
+#define ACCOUNT_PASSWORD "t"
+
+class MSClient
+{
+private:
+    Network::Klient *k;
+    char *key;
+    unsigned char keyLen;
+    int cId;
+    unsigned short port;
+    
+public:
+    MSClient()
+    {
+        k = 0;
+        key = 0;
+        keyLen = 0;
+        cId = 0;
+        port = 0;
+    }
+
+    ~MSClient()
+    {
+        if( k )
+            k->release();
+        delete[] key;
+    }
+
+    bool registerSSL()
+    {
+        Network::SSLKlient *klientSSL = new Network::SSLKlient();
+        int l = 0;
+        if( !klientSSL->verbinde( MAIN_SERVER_PORT, MAIN_SERVER_IP ) )
+        {
+            std::cerr << "error while trying to connect to Main SSL Server\n";
+            klientSSL->release();
+            return 0;
+        }
+        klientSSL->sende( "\1", 5 );
+        char byte = 0;
+        klientSSL->getNachricht( &byte, 1 );
+        if( byte == 3 )
+        {
+            klientSSL->getNachricht( &byte, 1 );
+            char *message = new char[ byte + 1 ];
+            message[ byte ] = 0;
+            klientSSL->getNachricht( message, byte );
+            std::cerr << "error while register new client server returned: " << message << "\n";
+            delete[]message;
+            klientSSL->sende( "\3", 1 );
+            klientSSL->getNachricht( &byte, 1 );
+            klientSSL->trenne();
+            klientSSL->release();
+            return 0;
+        }
+        if( byte == 1 )
+        {
+            klientSSL->getNachricht( (char*)&port, 4 );
+            klientSSL->getNachricht( (char*)&cId, 4 );
+            klientSSL->getNachricht( (char*)&keyLen, 1 );
+            if( keyLen )
+            {
+                key = new char[ keyLen ];
+                klientSSL->getNachricht( key, keyLen );
+            }
+        }
+        klientSSL->sende( "\3", 1 );
+        klientSSL->getNachricht( &byte, 1 );
+        klientSSL->trenne();
+        klientSSL->release();
+        return 1;
+    }
+
+    bool connect()
+    {
+        if( k )
+            return 1;
+        k = new Network::Klient(); 
+        int l = 0;
+        char *key;
+        Keys::getServerKey( &key, l, Keys::MAIN, Keys::SENDEN );
+        k->setSendeKey( key, l );
+        delete[] key;
+        Keys::getServerKey( &key, l, Keys::MAIN, Keys::EMPFANGEN );
+        k->setEmpfangKey( key, l );
+        delete[] key;
+        if( !k->verbinde( port, MAIN_SERVER_IP ) )
+        {
+            std::cerr << "error while trying to connect to Main Server\n";
+            k = k->release();
+            return 0;
+        }
+        k->sende( "\0", 1 ); // Verschlüsselung aktivieren
+        k->sendeEncrypted( "\1", 1 );
+        k->sendeEncrypted( (char*)&cId, 4 );
+        char serverReturn = 0;
+        k->getNachrichtEncrypted( &serverReturn, 1 );
+        if( serverReturn == 3 )
+        {
+            k->getNachrichtEncrypted( &serverReturn, 1 );
+            char *message = new char[ serverReturn + 1 ];
+            message[ serverReturn ] = 0;
+            k->getNachrichtEncrypted( message, serverReturn );
+            std::cerr << "error while trying to identify registered client server returned: " << message << "\n";
+            delete[] message;
+            k->sendeEncrypted( "\3", 1 );
+            k->getNachrichtEncrypted( &serverReturn, 1 );
+            k->trenne();
+            k = k->release();
+            return 0;
+        }
+        else
+        {
+            k->setSendeKey( this->key, keyLen );
+            k->setEmpfangKey( this->key, keyLen );
+            return 1;
+        }
+    }
+
+    bool unregister()
+    {
+        connect();
+        if( !k )
+        {
+            std::cerr << "no connection to Main Server\n";
+            return 0;
+        }
+        k->sendeEncrypted( "\7", 1 );
+        char serverReturn = 0;
+        k->getNachrichtEncrypted( &serverReturn, 1 );
+        if( serverReturn == 3 )
+        {
+            k->getNachrichtEncrypted( &serverReturn, 1 );
+            char *message = new char[ serverReturn + 1 ];
+            message[ serverReturn ] = 0;
+            k->getNachrichtEncrypted( message, serverReturn );
+            std::cerr << "error while trying to unregistere client server returned: " << message << "\n";
+            delete[] message;
+            k->sendeEncrypted( "\3", 1 );
+            k->getNachrichtEncrypted( &serverReturn, 1 );
+            k->trenne();
+            k = k->release();
+            return 0;
+        }
+        k->sendeEncrypted( "\3", 1 );
+        k->getNachrichtEncrypted( &serverReturn, 1 );
+        k->trenne();
+        k = k->release();
+        cId = 0;
+        delete key;
+        key = 0;
+        keyLen = 0;
+        return 1;
+    }
+};

BIN
TestWalker/Network.dll


+ 156 - 0
TestWalker/Start.cpp

@@ -0,0 +1,156 @@
+#include <main.h>
+#include <Fenster.h>
+#include <Bildschirm.h>
+#include <RenderThread.h>
+#include <TextFeld.h>
+#include <iostream>
+#include <Schrift.h>
+#include <DateiSystem.h>
+#include "TestThread.h"
+#include <Network.h>
+
+// Output
+template <class charT, class traits = std::char_traits<charT> >
+class CDG_CoutRerouteStr : public std::basic_streambuf<charT, traits>
+{
+private:
+    Framework::TextFeld * tf;
+public:
+    CDG_CoutRerouteStr( Framework::TextFeld *tf )
+    {
+        this->tf = tf;
+    };
+protected:
+    std::streamsize xsputn( const charT * pChar, std::streamsize n )
+    {
+        tf->lockZeichnung();
+        tf->zText()->append( pChar );
+        tf->setRender();
+        tf->updateVScroll();
+        if( tf->zText()->anzahlVon( '\n' ) > 1000 )
+            tf->zText()->remove( 0, tf->zText()->positionVon( '\n' ) + 1 );
+        tf->unlockZeichnung();
+        return strlen( pChar );
+    }
+
+    typedef typename traits::int_type int_type;
+    int_type overflow( int_type ch ) override
+    {
+        tf->zText()->append( (char)ch );
+        return 1;
+    }
+}; 
+
+template <class charT, class traits = std::char_traits<charT> >
+class CDG_CerrRerouteStr : public std::basic_streambuf<charT, traits>
+{
+private:
+    Framework::TextFeld * tf;
+public:
+    CDG_CerrRerouteStr( Framework::TextFeld *tf )
+    {
+        this->tf = tf;
+    };
+protected:
+    std::streamsize xsputn( const charT * pChar, std::streamsize n )
+    {
+        tf->lockZeichnung();
+        tf->zText()->append( "\r0xFFFF0000" );
+        tf->zText()->append( pChar );
+        tf->zText()->append( "\r0xFFFFFFFF" );
+        tf->setRender();
+        tf->updateVScroll();
+        tf->updateHScroll();
+        if( tf->zText()->anzahlVon( '\n' ) > 1000 )
+            tf->zText()->remove( 0, tf->zText()->positionVon( '\n' ) + 1 );
+        tf->unlockZeichnung();
+        return strlen( pChar );
+    }
+
+    typedef typename traits::int_type int_type;
+    int_type overflow( int_type ch ) override
+    {
+        tf->zText()->append( "\r0xFFFF0000" );
+        tf->zText()->append( (char)ch );
+        tf->zText()->append( "\r0xFFFFFFFF" );
+        return 1;
+    }
+};
+
+int Framework::Start( Framework::Startparam p )
+{
+    Network::Start( 100 );
+    WNDCLASS wc = Framework::F_Normal( p.hinst );
+    wc.lpszClassName = "Server System Checker";
+    WFenster frame;
+    frame.erstellen( WS_OVERLAPPEDWINDOW, wc );
+    Punkt pos( 100, 100 );
+    frame.setPosition( pos );
+    frame.setSize( 600, 400 );
+    frame.setMausAktion( _ret1ME );
+    frame.setTastaturAktion( []( void *param, void *obj, TastaturEreignis te ) -> bool
+    {
+        if( te.id == TE_Release )
+            std::cin.putback( te.taste );
+        return 1;
+    } );
+    frame.setVSchließAktion( []( void*, void*f )
+    {
+        StopNachrichtenSchleife( ( (WFenster*)f )->getFensterHandle() );
+    } );
+    frame.setAnzeigeModus( 1 );
+    frame.setNSchließAktion( []( void *param, void *object )
+    {
+        StopNachrichtenSchleife( ( (WFenster*)object )->getFensterHandle() );
+    } );
+
+    Bildschirm3D screen( frame.getThis() );
+    frame.setBildschirm( screen.getThis() );
+    screen.update();
+
+    RenderTh thread;
+    thread.setBildschirm( screen.getThis() );
+    thread.beginn();
+
+    LTDSDatei d;
+    d.setPfad( new Text( "console.ltds" ) );
+    d.leseDaten();
+    Schrift *schrift = d.ladeSchrift();
+
+    TextFeld console;
+    console.setStyle( TextFeld::Style::Scroll | TextFeld::Style::Mehrfarbig | TextFeld::Style::Mehrzeilig | TextFeld::Style::Sichtbar );
+    console.setSize( screen.getBackBufferSize() );
+    console.setSchriftFarbe( 0xFFFFFFFF );
+    console.setSchriftZ( schrift );
+    console.setMausEreignis( _ret1ME );
+    console.setText( "" );
+    screen.addMember( &console );
+
+    // output umleiten...
+    CDG_CoutRerouteStr<char> str( &console );
+    std::streambuf* old_buffer = std::cout.rdbuf();
+    std::cout.rdbuf( &str );
+    CDG_CerrRerouteStr<char> err( &console );
+    std::streambuf* old_errbuffer = std::cerr.rdbuf();
+    std::cerr.rdbuf( &err );
+
+    TestThread tests;
+
+    StartNachrichtenSchleife();
+
+    tests.abbrechen();
+    tests.warteAufThread( 10000 );
+    tests.ende();
+    
+    std::cout.rdbuf( old_buffer );
+    std::cerr.rdbuf( old_errbuffer );
+
+    thread.beenden();
+
+    frame.setBildschirm( 0 );
+    frame.zerstören();
+
+    Network::Exit();
+
+    return 0;
+}

+ 10 - 0
TestWalker/Test.h

@@ -0,0 +1,10 @@
+#pragma once
+
+class Test
+{
+public:
+    virtual void init() = 0;
+    virtual void run() = 0;
+    virtual bool failed() = 0;
+    virtual void destroy() = 0;
+};

+ 79 - 0
TestWalker/TestThread.cpp

@@ -0,0 +1,79 @@
+#include "TestThread.h"
+#include <iostream>
+#include <Datei.h>
+#include "Test.h"
+
+using namespace Framework;
+
+TestThread::TestThread()
+    : Thread()
+{
+    abbruch = 0;
+    start();
+}
+
+void TestThread::abbrechen()
+{
+    abbruch = 1;
+}
+
+typedef Test *( *GetTest )( );
+
+void TestThread::thread()
+{
+    Datei d;
+    d.setDatei( "../Tests/bin" );
+    RCArray< Text > *files = d.getDateiListe();
+    int anz = files->getEintragAnzahl();
+    for( int i = 0; i < anz; i++ )
+    {
+        Text *name = files->z( i );
+        name->insert( 0, "../Tests/bin/" );
+        HMODULE dll = LoadLibrary( name->getText() );
+        if( !dll )
+            std::cerr << "Failed to load Test: " << name->getText() << "\n";
+        else
+        {
+            GetTest createTest = (GetTest)GetProcAddress( dll, "createTest" );
+            if( !createTest )
+                std::cerr << "Failed to load 'createTest' entry point: " << name->getText() << "\n";
+            else
+            {
+                Test *t = createTest();
+                t->init();
+                while( 1 )
+                {
+                    t->run();
+                    if( t->failed() )
+                    {
+                        std::cout << "retry or skip (r/s)?\n";
+                        int c;
+                        do
+                        {
+                            c = getchar();
+                            if( c == EOF )
+                                Sleep( 100 );
+                            if( abbruch )
+                                c = 's';
+                        } while( c == EOF );
+                        if( c == 's' )
+                            break;
+                    }
+                    else
+                        break;
+                    t->destroy();
+                    t = createTest();
+                    t->init();
+                }
+                if( !t->failed() )
+                    std::cout << "\r0xFF00FF00succsess\n\r0xFFFFFFFF";
+                t->destroy();
+            }
+            FreeLibrary( dll );
+        }
+        if( abbruch )
+            break;
+    }
+    files->release();
+    std::cout << "\r0xFF00FF00tests finished";
+}

+ 12 - 0
TestWalker/TestThread.h

@@ -0,0 +1,12 @@
+#pragma once
+#include <Thread.h>
+
+class TestThread : public Framework::Thread
+{
+private:
+    bool abbruch;
+public:
+    TestThread();
+    void abbrechen();
+    void thread() override;
+};

+ 148 - 0
TestWalker/TestWalker.vcxproj

@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{8A59609B-B9E3-413B-94F0-A232D893623A}</ProjectGuid>
+    <RootNamespace>TestWalker</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\..\..\..\..\Allgemein\Network\Network;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\..\Allgemein\Framework\x64\Release;..\..\..\..\..\Allgemein\Network\x64\Release;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\..\..\..\..\Allgemein\Network\Network;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\..\Allgemein\Framework\x64\Debug;..\..\..\..\..\Allgemein\Network\x64\Debug;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <PreprocessorDefinitions>WIN32;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Command>copy "..\..\..\..\..\allgemein\Framework\x64\Debug\Framework.dll" Framework.dll
+copy "..\..\..\..\..\allgemein\Network\x64\Debug\Network.dll" Network.dll</Command>
+    </CustomBuildStep>
+    <CustomBuildStep>
+      <Outputs>Kopieren...;%(Outputs)</Outputs>
+    </CustomBuildStep>
+    <Link>
+      <AdditionalDependencies>Framework.lib;Network.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="Start.cpp" />
+    <ClCompile Include="TestThread.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Keys.h" />
+    <ClInclude Include="MSClient.h" />
+    <ClInclude Include="Test.h" />
+    <ClInclude Include="TestThread.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 42 - 0
TestWalker/TestWalker.vcxproj.filters

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien\Allgemein">
+      <UniqueIdentifier>{34d0fe54-9752-4f50-b047-3ad0c8afee85}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Start.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="TestThread.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="TestThread.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+    <ClInclude Include="Test.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+    <ClInclude Include="MSClient.h">
+      <Filter>Headerdateien\Allgemein</Filter>
+    </ClInclude>
+    <ClInclude Include="Keys.h">
+      <Filter>Headerdateien\Allgemein</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>

BIN
TestWalker/console.ltds


+ 140 - 0
Tests/ConnectTest/ConnectTest.vcxproj

@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{873A8B1A-A214-4AD6-BE36-20C87B675ED9}</ProjectGuid>
+    <RootNamespace>ConnectTest</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <IncludePath>..\..\..\..\..\..\Allgemein\Network\Network;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\..\..\Allgemein\Network\x64\Debug;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+      <PreprocessorDefinitions>WIN32;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <CustomBuildStep>
+      <Command>copy "..\..\x64\Debug\ConnectTest.dll" "..\bin\ConnectTest.dll"</Command>
+    </CustomBuildStep>
+    <CustomBuildStep>
+      <Outputs>Kopieren;%(Outputs)</Outputs>
+    </CustomBuildStep>
+    <Link>
+      <AdditionalDependencies>Network.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="Test.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Main.cpp" />
+    <ClCompile Include="Test.cpp" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 30 - 0
Tests/ConnectTest/ConnectTest.vcxproj.filters

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Test.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Main.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="Test.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>

+ 9 - 0
Tests/ConnectTest/Main.cpp

@@ -0,0 +1,9 @@
+#include "Test.h"
+
+extern "C"
+{
+    __declspec( dllexport ) Test *createTest()
+    {
+        return new ConnectTest();
+    }
+}

+ 40 - 0
Tests/ConnectTest/Test.cpp

@@ -0,0 +1,40 @@
+#include "Test.h"
+#include <iostream>
+#include "../../TestWalker/MSClient.h"
+
+ConnectTest::ConnectTest()
+{
+    ok = 0;
+}
+
+void ConnectTest::init()
+{
+    std::cout << "starting connection Test\n";
+}
+
+void ConnectTest::run()
+{
+    MSClient msc;
+    if( !msc.registerSSL() )
+    {
+        std::cerr << "client registration failed " __FILE__ ":" << __LINE__ << "\n";
+        return;
+    }
+    // TODO
+    if( !msc.unregister() )
+    {
+        std::cerr << "client unregistration failed " __FILE__ ":" << __LINE__ << "\n";
+        return;
+    }
+    ok = 1;
+}
+
+bool ConnectTest::failed()
+{
+    return !ok;
+}
+
+void ConnectTest::destroy()
+{
+    delete this;
+}

+ 14 - 0
Tests/ConnectTest/Test.h

@@ -0,0 +1,14 @@
+#pragma once
+#include "../../TestWalker/Test.h"
+
+class ConnectTest : public Test
+{
+private:
+    bool ok;
+public:
+    ConnectTest();
+    virtual void init() override;
+    virtual void run() override;
+    virtual bool failed() override;
+    virtual void destroy() override;
+};