Zwergli schrieb:
es gibt kein typedef in C#. Dein Ansatz mit den usings wird im allgemeinen genutzt. Bei lokalen Variablen kann man auch das var Schlüsselwort verwenden.
Uh! Danke! var kann mir da wohl einiges vereinfachen, an das hatte ich gar nicht mehr gedacht. Jetzt muss ich mal schauen, ob ich da noch ein Subclassing mache oder nicht. Aber besser wäre es wohl wenn nicht. Naja, geht eigentlich nur zur Überwindung meiner Schreibfaulheit und auf die sollte man ja nie hören
Grüssli
Wir konnten entscheiden, ob wir eine Schulaufgabe oder ein Projekt machen wollen. Wir haben uns für das Projekt entschieden (trotz Abendschule und dadurch sehr wenig Zeit...). Jeder macht ein eigenes Projekt in etwa der selben Größenordnung.
Ja, ich habe die Kartengraphiken, hab sie mir extra eingescannt und in PS bearbeitet.
Projekt wird nach Punkten bewertet. Folgendes gibt Punkte:
Pflichtenheft.
Fallbeispiele.
Klassendiagramme.
Dokumentation.
Lauffähiges Programm.
Code.
Ob das jetzt alles war, kann ich nicht 100%ig sagen, da der Zettel zu Hause liegt. Wie die Punkteverteilung ist staht da ebenfalls drauf.
Ja, ich mache das Projekt alleine.
Haha, okay, sorry, hätte ich's gleich so ausprobiert hätte ich Euch den Beitrag ersparen können, aber vlt. hilft's ja jemandem:
Mit einem Delegate auf eine statische Methode, braucht man in C++ nur einen 08/15 Funktionspointer mit der selben Signatur erwarten, dann geht's. Beispiel:
// C#
public delegate int delMyCallback();
{DllImport("MyCPP.dll")]
public static extern int MyCPPFunc(delMyCallback);
// Aufruf irgendwo
MyCPPFunc(MyCallbackImplementation);
// C++
extern "C"{
int __declspec(dllexport) MyCPPFunc(int(*fn)(void))
{
(*fn)();
return SUCCESS;
}}
War ja einfacher als gedacht!
Aber falls trotzdem noch jemand was hinzuzufügen hat, Diskussion ist ja noch offen
Gruß
PuerNoctis
EDIT: Danke Theta, hab' Deinen Beitrag gerade gesehen. Wie gesagt, hätte ich egtl. selbst drauf kommen können. War wohl zu ungeduldig mit dem Post, sry
Firefighter schrieb:
Jo ich hab ne Idee. Vermutlich stimmen die Endpoints des Service nicht mehr.
Wenn du lokal Webservices entwickelst, startet Visual Studio die in einem Debugging Server. Meistens ist der Server localhost. Sobald du aber das ding auf einen Server tust, sind die Endpoints noch immer auf localhost geeicht.
Das hat mir weitergeholfen - vielen Dank dafür!
Kennst Du vielleicht weiterführende Links [Schwerpunkt: Silverlight / WCF]?
Das wäre natürlich auch mal eine Idee...
Ne, ist nix wildes. Es ist ein kleines Tool das Tastenkombis abfängt und dann ein paar Makros ausführt.
z.B.
Ich drücke CTRL+F1 dann soll er z.B. einen Text an ein Fenster schicken und daraufhin eine Taste drücken. Bei dem Tastendrücken hängts hier natürlich, wenn ich die CTRL weiter gedrückt halte.
gruß
Hellsgore
Wenn es unbedingt als string übertragen werden muss könnte man auch den XmlSerializer benutzen um das Array zu serialisieren und dann die XMLDatei übertragen
AcceptTcpClient() gibt dir immer ein neu verbundenes TcpClient Objekt zurück.
Die sind verschieden, nur der Name der Variable (client) ist gleich.
Du kannst die clients z.B. in einer Liste sammeln.
Du musst ja deine Clients eh irgendwie "halten".
Pseudo Code:
TcpClient client = serverSocket.AcceptTcpClient();
connectedClients.Add(client);
// ...
Simon
Die Frage ist ob warum du hier unbedingt eine eigene Klasse "Pair" machst, vielleicht kannst du auch die KeyValuePair<T,R> von .NET nutzen. aber das ist nur ein tip, ich weiß ja nicht was du vor hast.
Ein Nachtrag noch zum Auslösen von Events.
Man sollte immer prüfen, ob auch ein Event abonniert wurde, sonst ist die Event-Variable null und es gibt eine entsprechende Exception.
Also immer so aufrufen:
public event CalcFinish_EventHandler CalcFinish; // <- Events immer in CamelCase
protected void OnCalcFinish(EventArgs e)
{
if(CalcFinish != null)
CalcFinish(this, e);
}
Achtung:
um diese Abfrage auch noch für Multithread-Programme korrekt auszuführen, sollte man immer so vorgehen:
protected void OnCalcFinish(EventArgs e)
{
var ev = CalcFinish;
if(ev != null)
ev(this, e);
}
Sonst könnte zwischen dem Überprüfen (auf null) und des Ausführens das Event mittels '-=' schon wieder gelöscht worden sein (und dann knallt es: bumm -).
leyden schrieb:
Bedeutet das, dass ich auch C# Programme auf Linux Systemen laufen lassen kann,
wie schon von anderen geschrieben - theoretisch ja ... aber ... Mono basiert auf einem komplett anderem Quelltext ... d.h. Dein Programm kann an einigen Stellen ein anderes Verhalten zeigen - weil sich der Quelltext von Mono & .NET unterscheiden ... wenn ich nicht weis auf welchem BS mein Programm später läuft, verwende ich lieber Java