Daten aus unmanged Code an System.Windows.Forms.Textbox senden



  • Hallo Jochen

    Ich habe nun bemerkt. Der Aufruf wird gemacht. Ich habe nämlich das das Exe-File im Debug-Verzeichnis aufgerufen und das Programm funktioniert einwandrei:):):) Dank Deiner Hilfe!!!
    Nur der Debugger springt nicht rein. 😕

    Beste Grüsse
    Geri



  • Hallo Jochen

    Ich möchte dir hiermit nochmals herzlichen Dank für die ausführliche und kompetente Hilfe sagen!!! 👍 👍 👍 Ich habe hier wieder viele interessante Dinge gelernt!!!

    Das Debug-Problem habe ich zwar noch nicht gelöst, meine Anwendung macht nun aber genau das was ich will und vielleicht komme ich irgendwann auch noch drauf.

    Ich hoffe, ich kann die Hilfe hier oder in einm anderen Forum einem anderen Benutzer retour geben.

    Beste Grüsse
    Geri



  • Kein Problem... deswegen ist ja so ein Forum da...

    Bzgl. des Debuggen: Du könntest in den Projekteinstellungen unter "Debugger|Typ" mal "Both" anstelle von "Auto" verwenden. Vielleicht geht es dann..



  • Hallo Jochen

    Auch wenn es das Wesen eines Forums ist, ein grosses Lob kann man schon austeilen, hat mir wirklich sehr weiter geholfen. Toll fand ich vor allem die detaillierte und nachvollziehbare Darstellung des Lösungsweges. Das nicht immer der Fall.

    Den Debugger habe ich nun mal auf mixed gestellt.

    Ich arbeite mit VS 7.1.3088, Net-Framework-Version 1.1.4322 SP1

    Nachdem bei dir das Debuggen erfolgreich durchgeführt werden konnte, nehme ich langsam an, es liegt an der Entwicklungsumgebung oder den Projekteinstellungen.

    Freundliche Grüsse
    Geri



  • Hallo zusammen

    Ich habe jetzt probiert das Problem zu lösen, indem ich ein neues Projekt angelegt habe. 😕 😕 Es hat allerdings nichts genutzt

    Beste Grüsse
    Geri



  • Du musst einfach in der CPP-Datei ein

    #include "stdafx.h"
    

    ganz oben machen (vor allen anderen includes).
    Falls Du keine Precompiled-Header aktivierst hast, musst Du es halt machen... (oder Du fragst den LIB-Hersteller, warum er dies so macht...)



  • Hallo Jochen

    Jetzt bis du mir gerade zuvor gekommen. 🙂 Habe den Beitrag gerade geändert:)
    Entschuldige bitte die Umstände. Das Problem lag an einer Datei, die ich wieder aus versehen mit eingebunden hatte, die aber nicht notwendig war.

    Wie beschrieben, am Debug-Problem hat sich trotz dem neuen Projekt nichts geändert.

    Beste Grüsse
    Geri



  • Hallo zusammen

    Kann es vielleicht daran liegen, dass der Breakpoint innerhalb einer erzeugten gesetzt ist (es handelt sich um die Thread der SocketComm-Klasse)?

    Wenn ich eine Routine der SocketComm-Klasse direkt aufrufe, dann kann ich in den Code hinein steppen. 😕 😕

    Beste Grüsse
    Geri



  • Geri schrieb:

    Kann es vielleicht daran liegen, dass der Breakpoint innerhalb einer erzeugten gesetzt ist

    Einer erzeugten "was"???



  • Sorry, innerhalb einer erzeugten Thread. Diese Thread ist für das Empfangen und Senden von Daten über Winsock verantwortlich. u.a. ruft sie auch dei Methode OnDataReceived auf.

    Wenn ich eine Routine der SocketComm-Klasse direkt z.B. über ein Button-Event aufrufe, dann kann ich schön hinein steppen.

    Beste Grüsse
    Geri



  • Dem Debugger dürfte es nichts ausmachen, in welchem Thread eine Methode aufgerufen wird... wie gesagt, bei mir geht es ja auch... seltsam...



  • Hallo Jochen

    Vielen Dank für Deine Info!

    Hm, habe nun fast alle Register meines Wissen der Informationsbeschaffung gezogen.

    Anbei habe ich noch einmal das aktuelle Projekt.

    [url]
    http://www.burger-web.com/Downloads/CPlusPlus/SocketTest3.zip (70Kb)
    [/url]

    Vielleicht hat sich hier etwas geändert.

    Meine Vorgehensweise:

    1.)Setze in Zeile 132 der Datei SocketManager.cpp einen Breakpoint

    Zeile 132:
    	if (IsSmartAddressing())
    	{
    		dwCount = __min(sizeof(msgProxy), dwCount);
    		memcpy(&msgProxy, lpBuffer, dwCount);
           ....
    

    2.) Starte Hyperterminal mit der Adresse 127.0.0.1, Port 2000

    3.) Drücke in im Formular der .NET-Anwendung die Taste start (Socket wird gestartet)

    4.) gehe zurück ins Hyperterminal und drücke eine Taste

    ===> VS liefert die Meldung: There ist no source code available for the...

    Variante 2.
    1.) Setze in Zeile 152 von Form1.h einen Breakpoint.
    2.) drücke die Taste End
    ==> VS steppt schön in den Code hinein..

    Beste Grüsse

    Geri



  • Ich habe hier absolut keine Probleme...
    Sicherheitshalber solltest Du mal die Symbole für Dein OS aktivieren...
    Setze dazu in den Umgebungsvariablen (Systemsteuerung | System | Erweitert | Umgebungsvariablen) folgendes:
    Key: _NT_SYMBOL_PATH
    Value: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

    Dann lädt VS2003 zwar einige PDB runter, aber das debuggen wird dadurch "schöner", weil jetzt zu allen OS Funktionen auch die Symbole verfügbar sind. Und vielleicht liegt es auch daran, dass es bei mir geht und bei Dir nicht...



  • Hallo Jochen

    Vielen Dank für Deine Info. Den Eintrag habe ich hinzugefügt. Es sieht auch so aus, als ob VS die Symbole heruntergeladen hat. Am Debuggen hat sich aber leider nichts geändert. Der Einsprung klappt immer noch nur, wenn ich über ein Button-Click-Ereignis die Routine selbst aufrufe.

    Eine seltsame Geschichte 🙄

    Freundliche Grüsse und nochmals vielen Dank für Deine nachhaltige Hilfe!!!

    Geri


Anmelden zum Antworten