Laden...

Forenbeiträge von Nejox Ingesamt 19 Beiträge

23.07.2021 - 12:34 Uhr

Ok danke für die Antwort.
Dann muss ich jetzt nur noch eine ordentliche Möglichkeit finden das zu prüfen.
Die Parameter in meinen Code waren nur Beispiele. Das können bis zu 50 Parameter sein... leider muss ich diese DLL benutzen und hab kein einfluss darauf.

23.07.2021 - 11:45 Uhr

Also müsste ich vorher sicherstellen das alle Parameter einen Wert haben bevor die Methode aufgerufen wird?.

23.07.2021 - 10:33 Uhr

Eine allgemeine Exception, keine bestimmte.
Es muss ja auch nicht unbedingt ein Try Catch sein. Ich bräuchte halt etwas das wenn es zu einem Fehler kommt mir das Programm nicht abstürzen lässt ich mir aber eine Fehlermeldung speichern kann.

23.07.2021 - 10:11 Uhr

Hallo zusammen,

Ich rufe mir eine externe DLL mittels Delegaten auf. Dabei muss jeder Parameter gesetzt sein sonst gibt es eine Speicher verletzung.
Wenn eine Speicher verletzung auftritt möchte ich dies gerne abfangen das mein Programm nicht abstürzt. Jedoch scheint ein Try Catch in einem Delegaten nicht so einfach zu funktionieren da das Programm weiterhin abstürzt.

Mein Delegate sieht wie folgt aus.


[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int Module(
            string name,
            string vName,
            string geschlecht,
            string alter);

Der Aufruf des Delegaten sieht so aus


protected override void LoadModuleFall()
{
   try
   {
       MyClass parameter = new MyClass (parameter);
                
       ModuleFalldaten loadData = (Module)Marshal.GetDelegateForFunctionPointer(Funktion, typeof(Module));
       loadData (
                    parameter.name,
                    parameter.vName,
                    parameter.geschlecht,
                    parameter.alter);
    }
    catch (Exception ex)
    {
     // Exception ausgeben
    }
}           

Es würde mich freuen wenn mir jemand helfen könnte wie man dieses Problem lösen kann 🙂

14.07.2021 - 08:38 Uhr

Danke für die Antworten.
Das hilft mir weiter 🙂

13.07.2021 - 10:44 Uhr

Hallo zusammen,

leider weis ich nicht wonach ich suchen sollte für mein Problem. Es geht um die vereinfachung von einem If Ausdruck und ob dies überhaupt möglich ist.

Ich habe mehrere Werte die ich auf null Prüfe.


if (a == null || b == null || c == null || d == null /*... und immer so weiter */)
{
  // mein code
}

Gibt es hier eine Schreibweise die mir das ganze etwas abkürzen kann?
Ich dachte da an so etwas wie folgendes.


if ((a || b || c  || d) == null)
{
  // mein code
}

Freue mich auf eine Antwort

07.06.2021 - 10:11 Uhr

Ich möchte das ganze eher Dynamisch händeln. Der Grund ist das es mehrere Versionen von der aufzurufenden DLL gibt. Hier muss ich bestimmte Unterscheidungen machen was für eine Version genutzt werden soll. Sonst müsste ich ja jede einzelne DLL als DLL Import definieren. Oder sehe ich das falsch?

07.06.2021 - 08:59 Uhr

Wenn du wirklich ein Plugin System bastelen möchtest, dann solltest du dir noch mal Gedanken über dein Konzept machen. So wie das aktuell ist, kann es nur nach hinten losgehen.

Dein Plugin sollte eine Schnittstelle haben, die das Programm, welches das Plugin nutzen möchte eindeutig versteht. Das kann man Besten über ein Interface machen, das dein Plugin implementiert und dein Programm laden kann. Dann musst auch nicht mehr die Parameter herausfinden, da alles mit einer eindeutigen Schnittstelle bekannt sein sollte für beide Seiten.

Hier noch etwas ausführlicher:

>

Ich wollte nochmal nachfragen ob du davon ausgegangen bist das "myDll" eine dll von mir ist?
Wenn ja, ist sie nicht. Sorry für das Missverständniss. Hätte es dann anders benennen sollen. Ich muss damit arbeiten und kann auch nichts an der "myDll" ändern.

07.06.2021 - 08:03 Uhr

MyDll ist eine Fremd Dll auf C bzw. C++ Basis soweit ich weiß.

04.06.2021 - 15:08 Uhr

Ah sorry habs gerade geshen 🙂
Danke.

04.06.2021 - 14:40 Uhr

Danke für die Antworten.

@ClaraSoft
Hättest du hier mal ein Beispielprogramm? Kann mir das ehrlich gesagt noch nicht so richtig vorstellen.

04.06.2021 - 12:42 Uhr

Hallo zusammen,

ich bin mir gerade nich sicher wonach ich Suchen soll. Ich wollte mal in Erfahrung bringen ob es möglich ist die Anzahl von Parametern aus einer DLL Methode zu bekommen?

Ich habe folgenden Code


public class MyClass
{
        [DllImport("kernel32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
        private static extern IntPtr LoadLibrary(string library);

        [DllImport("kernel32.dll", CharSet = CharSet.Ansi)]
        public static extern IntPtr GetProcAddress(IntPtr hModule, string methodName);

        public void LoadDll()
       {
           IntPtr module = LoadLibrary("myDll");

           // Fehler behandlung wenn DLL nicht gefunden wurde
            if (module == IntPtr.Zero)
            {
                return $"Could not load library: {Marshal.GetLastWin32Error()}";
            }

            IntPtr dllMethod = GetProcAddress(module, "myFunction");

            // Fehler behandlung wenn Methode in der DLL nicht gefunden wurde
            if (dllMethod== IntPtr.Zero)
            {
                return $"Fehler beim Laden der DLL Methode { Marshal.GetLastWin32Error() }";
            }

             // Hier möchte ich nun abfragen wieviel Parameter in der dll Methode "myFunction" vorhanden sind.
        }
}

Freue mich auf eine Antwort 🙂

28.05.2021 - 12:03 Uhr

Danke für die Antworten.
Ich gehe nochmal anders an das Problem ran um das ganze besser aufzubauen.

28.05.2021 - 08:35 Uhr

Hallo,

mein Ziel ist es eine Art Dynamische Methode zu erstellen und auf Basis der Person Klasse soll die Anzahl der Paramater Dynamisch gesetzt werden.

Ich habe eine DLL. Diese DLL hat viele Versionen und es müssen auch weiterhin ältere Versionen angesprochen werden. Mittels DLL import wird die gewünschte DLL geladen.
Nun müsste ich ja unterscheiden welche Methode ich anspreche je nach Parameteranzahl die übergeben wurde. Und genau das wöllte ich durch eine Dynamische Methode ändern wollen. Eine Methode die ihre Parameter selbst aufbaut.

Aber soweit wie ich das Verstanden habe ist das nicht möglich?

Erstmal Danke für eure Antworten.

27.05.2021 - 15:26 Uhr

Hallo zusammen,

ich hoffe ich kann mein Problem gut beschreiben denn ich weis nicht wonach ich Suchen sollte.

Ich habe meine Hauptklasse und eine Klasse mit Properties


class Main
    {
        public Main()
        {
            Person person = new Person()
            {
                Vorname = Tom,
                Alter = 12,
                Geschlecht = M
            };

            Code code = new Code(person);
        }
    }


class Person
    {
        public string Name{ get; set; }

        public string Vorname{ get; set; }

        public string Alter { get; set; }

        public string Geschlecht { get; set; }
    }

Und ich habe eine Klasse in der Code ausgeführt wird. Hier möchte ich das meine Methode Dynamische Parameter besitzt die sich anhand der items von der Personen Klasse orientieren. D.h. wenn ich eine Personen Klasse mit 3 Propteries initialisiere und übergebe soll es mir 3 Parameter in der Methode erstellen. Initialisiere ich 4 werden mir 4 Parameter erstellt. etc.


class Code
    {
        public Code(Person personDaten)
        {
            DoSomething(personDaten);
        }

        private void DoSomething( /*> Hier sollen die Parameter Dynamisch aus dem übergeben objekt Person klasse erstellt werden in einer Reinfolge die ich anhand der Person Klasse selber bestimme <*/)
        {
            Console.WriteLine(paramVorname, paramAlter, paramGeschlecht);
              //Ausgabe wäre in diesem Fall 
              //Tom, 12, M
        }
    }

Ich hoffe das ist einigermaßen verständlich 🙂
Ist so etwas möglich? Wenn ja hätte jemand ein simples Beispiel?

Freue mich auf eure Antworten.

12.05.2021 - 08:27 Uhr

Hello Abt and dannoe,

thanks a lot 🙂
Now it works.

11.05.2021 - 17:06 Uhr

Hallo zusammen,

ich hab eine kleine Blockade und hoffe Ihr könnt mir helfen 🙂

ich möchte gerne in einer Liste alle items suchen die meinen string ähneln mittels linq und ein Count() machen.

Dabei habe ich eine Liste aus meiner Klasse Person.


public class Person
{
        public string Name{ get; set; }

        public string Vorname{ get; set; }
}

Mein string ist eine Variable die über eine TextBox gesetzt wird.


string name = TextBox.Text;

Nun möchte ich mit alle Namen in meiner Liste Personen holen die %name% enthalten. Also quasi wie im SQL ein LIKE.


//Man müsste sich vorstellen die Liste wäre hier schon gefüllt :-)
List<Person> liste = new List<Person>()

//Das wäre mein Ansatz. Funktioniert aber so nicht.
var CountPerson = liste.Select(s => s.Name).Contains(name).toList().Count();

Hoffe ihr könnt mir helfen 🙂

23.03.2021 - 15:32 Uhr

Hallo,

hat sich erledigt. Habe es hinbekommen 🙂
Trotzdem danke.

23.03.2021 - 11:19 Uhr

Verwendetes Datenbanksystem: Oaracle SQL

Hallo zusammen,

könnte mir bitte jemand helfen folgendes select Statement in ein Linq ausdruck umzuwandeln?


SELECT
    pe.abr_nr,
    st.stapel_nr,
    sub.eingereicht,
    sub.erfasst,
    sub.korrigiert,
    sub.abgelehnt,
    st.erfass_prot_dat,
    st.pruef_prot_dat,
    st.bearb_status_key
FROM
    prax_einreichung   pe,
    stapel             st,
    (
        SELECT
            ef.einreich_nr,
            ef.stapel_nr,
            COUNT(*) as eingereicht,
            COUNT(*) - COUNT(CASE WHEN ef.bearb_status_key = 1 THEN 1 END) as erfasst,
            COUNT(ef.bearb_dat) as korrigiert,
            COUNT(CASE WHEN ef.bearb_status_key = 1 THEN 1 END) as abgelehnt
        FROM
            einreichung_fall ef        
            group by ef.stapel_nr, ef.einreich_nr
    ) sub
WHERE
    pe.einreich_nr = sub.einreich_nr
    AND sub.stapel_nr = st.stapel_nr
    and st.abr_jahr = pe.abr_jahr
    and st.abr_qm = pe.abr_qm
    and st.abr_art = pe.abr_art
    AND pe.abr_jahr = 2020
    AND pe.abr_qm = 10
    AND pe.abr_art = 'ZE';

Gruß Nejox