Hallo,
ich habe mir mit C# eine ASP.NET Anwendung geschrieben, die für mich etwas in meine Datenbank schreibt.
Ich rufe sie von meinem anderen Programm (in C++) via URL + Übergabeparameter auf und schreibe in den Message-Body eine xml-Datei.
Als Antwort kommt vom Server der Status 204.
Das funktioniert wunderbar.
Jetzt brauch ich noch eine Funktion, die das umgekehrt macht, also etwas aus der Datenbank liest und mit ein paar Parametern und einer xml-Datei antwortet.
Wenn ich danach google kommt die Antwort, es mit
System.Net.WebRequest
zu machen und es wieder in den Message-Body zu schreiben. Das Problem dabei ist, dass dies aber ein aufruf einer Seite ist, ich will es aber als Antwort einer Anfrage haben.
Die zweite Idee war, die Internetseite (also die .aspx-Datei im Prinzip) zu nutzen, da ich ja eh keinen Content darstelle.
Also schreib ich erst die Parameter hin, die ich mir einlese und der Rest, der danach kommt, ist alles von der XML-Datei.
Der Vorteil dieser Methode ist, dass das einelsen auf der C++-Seite einfach ist. Den Header oder Message-Body einzulesen habe ich mit CHttpFile noch nicht geschafft. Aber ich habe das Gefühl, dass meine Lösung nicht wirklich sinnvoll ist.
Wie würdet ihr es machen?
Danke
CStoll schrieb:
GPC schrieb:
CStoll schrieb:
@GPC: Da war ich wohl zu sehr auf C++ orientiert.
Auch in C++ wäre da kein Ctor aufgerufen worden, da die Listbox intern eine Liste mit bereits instantiierten Objekten vorhält und diese über die "SelectedItem"-Property nur abgerufen werden
Das kommt ganz auf die beteiligten Typen ab - C++ verwendet auch Konstruktoren, um damit Typumwandlungen durchzuführen.
Stimmt auch wieder, getreu dem C++ Umwandlungsmotto.. "Was nicht passt, wird passend gemacht"
Redneet schrieb:
Wie gesagt das Aufrufen der Forms durch die Buttons funktioniert, lediglich der wiederholte Aufruf(Deklaration) der Forms(4+5) in Form(2+3)führt zu Problemen.
Du sollst sie ja auch nicht nochmal anzeigen, sondern auf die vorhandenen zugreifen. Entweder du führst selbst Buch darüber, welche Form gerade offen ist und wie man sie referenziert.. oder du greifst in einer der MDI-Forms über f.MdiParent.MdiChildren auf Liste der MDI-Forms zu, die zum MDI-Parent gehören.
Einfacher ist es aber wohl, es so zu machen:
//Pseudocode
class MainWindow : Form {
private Form fNeuGebiet, fNeuAustraeger, fGebietsliste, fAustraegerliste; //etc
private void toolStripButtonGebiet_Click(Object sender, EventArgs e) {
if (this.fNeuGebiet == null)
this.fNeuGebiet = new FormGebiet();
this.fNeuGebiet.Show();
}
//Und so weiter...
private void toolStripButtonForm5_Click(Object sender, EventArgs e) {
//Hier auch checks... je nach Bedarf.
Form5 f5 = new Form5(this.fAustraegerliste);
f5.Show();
}
}
Tachyon76 schrieb:
Oder gibt es eine Möglichkeit Objekte der Win+Web-Application hinzuzufügen?
Verstehe nicht ganz was du mit dieser Frage meinst.
Neben dem übergeben an alle Objekte, gäbe es ja eigentlich noch die Möglichkeit, eine Registry einzurichten, wo du die Verbindung eines jeden Users reinlegst. Die User holen sich dann dort die DB-Verbindung raus. Dadurch gibt es auch die Möglichkeit, dass man Strategien in dieser Registry verwenden kann, wie zum Beispiel, dass immer nur eine Verbindung existiert.
Grüssli
Das Problem der sehr vielen Elemente hast du in der UI sowieso. Zb in ItemControls (ListBox, ComboBox usw), da wird der ItemContainer auch immer erstellt. Wenn mann dann noch viele Panels, nested Controls usw erstellt wächst es sehr schnell.
Mit dem Virtualisieren kann WPF dem aber gut entgegenwirken
Alter Schwede blurry warum liest Du nicht endlich mal ein Buch?
Das ist ja ein Verbrechen am Compiler was Du da treibst.
Du kappierst ja nichtmal wie events funktionieren.
David W schrieb:
Ach du redest von der CodeBehind?
Ich sag mal so, ich kenne in meiner Firma kein WPF Entwickler der UI Elemente im CodeBehind erzeugt, nichtmal im Code von Custom Controls. Ich frage mich wann man soetwas braucht.
Wenn man dem User die Möglichkeit geben möchte, Elemente auf einer Flächer selber anzuordnen. Zum Beispiel in einem Diagram-Designer oder sowas ähnliches. Dann musst du auf den User reagieren und nach dessen Vorgaben Elemente erzeugen und positionieren.
Grüssli
Ich habe auf die Threads geantwortet - setzen da die Problemlösungen fort.
Was mail und ICQ an geht, auf meiner Seite bei Kontakt findeste alles was du brauchst. Wenn du dich auf ein WPF Fanboy einlassen willst (auch nachdem ich dampf ab lies ^^)
Zudem musst du im StringBuilder genügend Speicher im voraus reservieren. StringBuilder bietet dazu einen Konstruktor an.
Also zusammengefasst:
StringBuilder mit genügend Speicherplatz erstellen.
StringBuilder Objekt übergeben ohne out , ref oder sonstwas.
3. In der C Funktion die Sache mit strcpy , strncpy oder ähnliches kopieren. Zeigerzuweisung bringt da überhaupt gar nichts.
4. Dich ab dem Text erfreuen.
Grüssli
Hallo Leute,
ich hab einen RDP Clienten in c# (WinForm) implementiert. Da hab ich das ActiveX (COM-Object) via Toolbox auf meine winform gezogen etc.
Dabei wurden AxInterop.MSTSCLib und Interop.MSTSCLib erstellt (sind ja quasie die .net wraper zu den orginalen dlls)
So, wenn ich nun die anwendung auf eine anderen rechenr kopiere, und ausführe bekomm ichd ie exception:
System.Runtime.InteropService.COMException (0x80040154) Class not registered.???
Dann is mir aufgefallen das auf der entwickeler maschine (wo das ding geht) ne neuere version der "mstscax.dll" vorhanden ist, wie auf dem problem PC.. die hab ich dann kopiert mit regsvr32 registiere, aber es kommt immer noch der gleiche fehler!?!?
kann mir jemand helfen?
P.S.: Ich hasse ActiveX COM Zeugs, aber es geht nich andere um eine RDP Client zu coden.
schmidt-webdesign.net schrieb:
Verstehe die Aufregung nicht ... zur Ermittlung aller im System installierten Schriftarten dient die Klasse InstalledFontCollection.
Wurde schon längstens erwähnt. Schau dir mal die restlichen Beiträge von blurry an, dann weisst du wieso es diese Aufregung hat.
Ich mache hier ebenfalls mal dicht.
Grüssli
Breaker schrieb:
Nun zu deinem Problem, ihr solltet ihn nicht alle sofort verurteilen, vielleicht weiss er ja nicht, dass er für die Textfarbe den ForeColor braucht.
Schau dir den restlichen Mist den er bisher gepostet hat an. Niemand wird hier einfach verurteilt, aber blurry ist einfach nur lernresistent. Er befindet sich an der Grenze zum Troll. Am besten sollten die Leute ihn einfach ignorieren.
Und ich mach hier mal zu, kommt sowieso nix sinnvolles mehr.
Grüssli
Jo, das ist scheinbar auch der einzig "richtige" Weg... hätte ja gehofft da gibts nochwas anderes. Aber scheinbar muss ich zumindest die Pfeilspitzen über das CustomCap selber anlegen.