Naja, die üblichen verdächtigen: CodePlex, Code Project, Novell Forge, Google Code, ...
... ups, SourceForge vergessen 🙂
Das Programm ist auf jeden Fall OS (GPL). Du könntest die relevanten Komponenten nach .Net / C# portieren.
Was ist das für ein Router?
Zufällig eine Fritz!Box? Wenn ja, dann häng sie mit an den internen ISDN-Bus der TK-Anlage. Du kannst dann jFritz (mit Klingeling) übers Netzwerk nutzen.
http://msdn2.microsoft.com/de-de/library/system.double.parse(VS.80).aspx
Erläuterungen zum erlaubten Zahlenformat bei Nichtangabe von IFormatProvider / NumberStyles:
http://msdn2.microsoft.com/de-de/library/fd84bdyt(VS.80).aspx
Das hat wahrscheinlich auch eher weniger mit C# zu tun. Er meint wahrscheinlich Citrix WinFrame. Mitlerweile nennt sich das Produkt jedoch Citrix Presentation Server.
Mit C++/CLI (der mit VS2005 eingeführte Nachfolger von managed C++) kannst du sog. mixed-mode assemblies erstellen, in denen unmanaged und managed Code vereint ist. Um die "Details im Hintergrund" kümmert sich der Compiler.
Siehe auch:
Original von herbivore
Die Frage ist eher, wo ist die BuildArgumentOutOfRangeException-Methode definiert. Ich vermute in dem "(...)"-Teil.
Richtig: Es handelt sich um eine private Helfer-Methode der selben Klasse.
Hier ein Beispiel für einen ExceptionBuilder:
using System;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using EpiSource.Common.Resources;
namespace EpiSource.Common.ExceptionBuilders
{
/// <summary>
/// Builds common <seealso cref="ArgumentOutOfRangeException" />s with consistent exception messages.
/// </summary>
public static class ArgumentOutOfRangeExceptionBuilder
{
// (...)
#region BuildIndexOutOfRangeException
/// <summary>
/// (...)
/// </summary>
public static ArgumentOutOfRangeException BuildIndexOutOfRangeException()
{
return BuildIndexOutOfRangeException(null, null, null);
}
/// <summary>
/// (...)
/// </summary>
public static ArgumentOutOfRangeException BuildIndexOutOfRangeException(string parameterName)
{
return BuildIndexOutOfRangeException(parameterName, null, null);
}
/// <summary>
/// (...)
/// </summary>
public static ArgumentOutOfRangeException BuildIndexOutOfRangeException(object actualValue)
{
return BuildIndexOutOfRangeException(null, actualValue, null);
}
/// <summary>
/// (...)
/// </summary>
public static ArgumentOutOfRangeException BuildIndexOutOfRangeException(Exception innerException)
{
return BuildIndexOutOfRangeException(null, null, innerException);
}
/// <summary>
/// (...)
/// </summary>
public static ArgumentOutOfRangeException BuildIndexOutOfRangeException(string parameterName, object actualValue)
{
return BuildIndexOutOfRangeException(parameterName, actualValue, null);
}
/// <summary>
/// (...)
/// </summary>
public static ArgumentOutOfRangeException BuildIndexOutOfRangeException(string parameterName, object actualValue, Exception innerException)
{
return BuildArgumentOutOfRangeException(CommonExceptionMessages.ArgumentOutOfRange_IndexOutOfRange, parameterName, actualValue, innerException);
}
#endregion
// (...)
}
}
Ich verwende statische ExceptionBuilder-Klassen. Es gibt sowohl globale, als auch lokale ExceptionBuilder. Ein globaler ExceptionBuilder ist in meinem Fall immer im Namespace EpiSource.Common.ExceptionBuilders definiert. Ein lokaler ExceptionBuilder ist eine private Unterklasse des Typs, der die generierten Exceptions benötigt. Die notwendigen Strings sind in Ressourcendateien gespeichert. Die für globale ExceptionBuilder in der Datei CommonExceptionMessages.resx, die für lokale ExceptionBuilder gesammelt in der Ressource ExceptionMessages.resx.
Im Bsp sind Schlüssel und Wert identisch. Die Verwendung eines Dictionary anstelle einer gewöhnlichen Liste ermöglicht jedoch das auffinden von enthaltenen objekten mit einer operation der Größenordnung O(1).
M.E. handelt es sich um eine Zeitspanne von 0s und keine Datumsangabe. Folgende Suchergebnisse könnten dir weiterhelfen: http://www.google.de/search?hl=de&q=xsd%3Aduration+PnYnMnDTnHnMnS&btnG=Suche&meta=
/edit: Speziell womöglich dieser Link.
Allerdings zeigt dir Reflector nie den tatsächlichen Quellcode. Die Rückumwandlung ist immer verlustbehaftet. Es fehlen selbstverständlich jegliche Kommentare und außerdem ist Reflector nicht immer in der Lage jedes Sprachkonstrukt korrekt rückzuwandeln. Das beste Beispiel sind compilergenerierte Iteratoren (C#: yield return). Bei denen liefert Reflector zwar logischen IL-Code, aber den C#-Code würde niemand so schreiben. Der Iterator wie er im tatsächlichen Quellcode steht ist nur noch schwer zu erahnen.
Immer noch nicht die Beste Performance, aber deutlich besser als dein Code:
string[] tokens = inputString.Split(' ');
// Hashset wäre besser geeignet, Dictionary geht auch
IDictionary words = new Dictionary<string, string>(tokens.Length);
// Achtung: O(n)
foreach (string token in tokens)
{
if (!words.ContainsKey(token))
words.Add(token, token);
}
// words enthält nun jedes Wort genau einmal
// ein Array lässt sich daraus folgendermaßen erstellen; Achtung: O(n)
string[] wordsArray = new string[words.Count];
words.Values.CopyTo(wordsArray, 0);
// so erstellst du wieder einen string; Annahme, dass ein durschnittliches Wort (einschließlich dem nachfolgenden Leerzeichen) aus sieben Zeichen besteht. Durch schätzen der Länge des fertigen Strings lässt sich die Performance erhöhen. Über die Verwendung eines genaueren Durchschnittswerts sollte nachgedacht werden.
StringBuilder keywordsBuilder = new StringBuilder(inputString.Length - 7 * (tokens.Length - words.Count));
// Achtung O(n)
foreach (string keyword in words.Values)
{
keywordsBuilder.Append(keyword);
keywordsBuilder.Append(" ");
}
// letztes Leerzeichen entfernen
keywordsBuilder.Remove(keywordBuilder.Length - 1, 1);
Nicht unmöglich, aber mit ordentlich Aufwand verbunden. Tipps sind hier im Forum höchstwahrscheinlich unerwünscht.
Hier ein erster Link: Button down halten
Die Suche nach "button checkbox" liefert noch deutlich mehr Treffer.
Visual Studio kann das nicht. Es gibt jedoch Übersetzungstools, die das unterstützen. Kostenlose Tools, die invariante Sprache und Übersetzung gleichzeitig anzeigen, kenne ich bloß zwei. Sehr gut gefallen hat mir GlobalResource. Das Entfernen von Resourcestrings ist jedoch nicht möglich, da durch einen Fehler sonst alle Daten verloren gehen 🙂 Leider gibt es keinen Sourcecode und die Anwendung wird nicht mehr weiter entwickelt. Schließlich gibt es auch noch eine webbasierte Anwendung für Portale etc., Esperantus.
Selbstverständlich gibt es auch kommerzielle Tools, die Satellite-Assemblies auch nachträglich erstellen können (kein Sourcecode mehr benötigt). Ein solches Tool ist Globalizer.Net.
/edit: Mehrere Ressourcendateien werden verwendet, um das erstellen (auch nachträglich) von Sprachpaketen zu erstellen.
/edit2: Noch ein Nachtrag. Ich bin gerade über ResEx gestolpert, noch ein Tool, das das Übersetzen von Resx-Dateien erleichtern soll. Getestet habe ich es noch nicht. Auch sollte man wohl noch Alchemy Catalyst erwähnen.
So schwer dürfte das ganze nicht zu realisieren sein. Zum einen gibt es für vBulletin ein entsprechendes Addin (deutsche Version). Da nicht unmittelbar in vBulletin integriert, wahrscheinlich jedoch eine nicht besonders elegante Lösung. Da es sich hier um ein .Net Forum handelt, bietet sich eigentlich so oder so eher Community Server an. Dieses System unterstützt Tags von vornherein (siehe auch).
Die größeren Probleme ergäben sich wohl eher in Anbetracht des Aufwands der Umstellung sowie der Lizenzkosten.
Ich selbst habe noch nie länger vor einem MacBook gesessen. Eine ehemalige Klassenkameradin hatte jedoch eines. Ansich ein tolles Gerät, leider nur mit Hochglanz-Spiegeldisplay erhältlich. Diese bieten zwar theoretisch eine höhere Farbbrillanz, aber was nutzt einem das, wenn man bloß das eigene Spiegelbild sieht? Von diesem Problem sind jedoch die meisten Consumerprodukte betroffen - die meisten Kunden scheinen sich auch nicht daran zu stören. Für mich ist es ein KO-Kritierium, deshalb hoffe ich auch, dass der Zwangsdienst ausreicht, um mir vor Studienbeginn ein MacBook Pro mit mattem Display zu leisten (bei diesem Produkt hat man die Wahl).
Was Parallels angeht, möchte ich noch eine Alternative nennen: VMWare Fusion. Das Produkt ist voll kompatibel zu der bekannten Virtualisierungslösung VMWare Workstation, die es für Windows und Linux gibt. Ich selber nutze diese unter Windows (Version 5, neuerdings 6) und hatte bisher noch nie Grund Unzufrieden zu sein.
Vielleicht hast du auch schon von Bootcamp gehört. Damit lässt sich Windows auch nativ auf dem MacBook betreiben. Gerade in Kombination mit Fusion / Prallels sehr nützlich: Man kann das fest installierte Windows direkt booten um volle Direct3D Unterstützung zu haben, aber auch von MacOS darauf zu greifen, ohne neustarten zu müssen (entsprechende Konfiguration der Hardwareprofile vorausgesetzt, Fusion unterstützt angeblich die automatische Einrichtung).
Wenn du die XML-Datei partout händisch erzeugen willst, findest du hier ein Beispiel zum erzeugen des Headers.
/Nachtrag:
Die Dokumentation der DataSet-Klasse ist sehr gut und umfasst Beispiele. Auch den Abschnitt "Siehe auch" beachten.
Hast du AddIns von Drittanbietern installiert? Sind irgendwelche Makros aktiv?
Du kannst direkt auf Winamp zugreifen. Ich bin mir ziemlich sicher, dass Informationen zum gerade laufenden Lied verfügbar sind. Nähere Informationen findest du vermutlich im Winamp SDK.
Dieser Artikel könnte dir weiterhelfen. Selber habe ich mich leider noch nicht einmal mit WPF beschäftigt.
Ich eben gerade nicht. Sonst hätte ich die "Deutsche Freie Software Lizenz" auch 1:1 übernehmen können.
Gemäß deutschem Urheberrecht kann der / die Urheber Nutzungsrechte vergeben / gewähren. Dabei müsste doch eigentlich auch derartiges ausreichend sein:
Das Recht diese Software zu verwenden, kopieren, veröffentlichen und modifizieren wird mit folgenden Einschränkungen kostenlos gewährt:
- Alle Vermerke auf den / die Urheber in Quell- und Binärcode müssen erhalten bleiben.
- Ein für den Empfänger wahrnehmbarer Hinweis auf den / die Urheber muss vorhanden sein.
Auf diese Software findet deutsches Recht Anwendung. Haftung und Gewährleistung bleiben auf vorsätzliches Handeln beschränkt.
/Ergänzung:
Die BSD Lizenz verlangt nicht, dass die Software unter der selben Lizenz weitervertrieben werden muss. Auch muss der Quellcode nicht verfügbar gemacht werden.
Du hast zwei Möglichkeiten:
Du exportierst Funktionen oder COM-Klassen, die du mittels P/Invoke bzw. COM-Interop in deiner .Net (C#) Anwendung verwendest.
Du verwendest C++/CLI. Damit kannst du mixed mode assemblies erstellen, die du auch unter .Net verfügbar machen kannst. Leider lädt die MSDN-Webpage bei mir gerade sehr langsam, du findest jedoch näheres zu dem Thema, wenn du im Index der offline Hilfe nach cl.exe suchst und dann "Common Language Runtime (Option)" auswählst.
Ergänzung: C++/CLI ist nicht Managed C++ wie es mit .Net 1 eingeführt wurde. C++/CLI gibt es erst seit .Net 2.
Folgende Links dürften dir weiterhelfen:
http://www.google.de/search?hl=de&q=c%23+lexer+parser+generator&btnG=Suche&meta=
http://www.codeproject.com/csharp/sota_expression_evaluator.asp
Bitmap kann nicht animiert werden. Es wird einfach nur das erste Frame der Animation geladen. Du musst dir wohl etwas anderes überlegen.
Zum Beispiel so:
if (datenStruktur is AddressStuktur)
{
AddressStruktur addressStruktur = (AddressStruktur)datenStruktur;
string anschrift = addressStruktur.Anschrift;
}
else if (datenStruktur is SpeisenStruktur)
{ ... }
So meinte ich das auch nicht. Folgendermaßen klappt's:
ValueType myStruct = null;
Datenauswerten(new byte[5], out myStruct);
Wenn ich seine Frage korrekt verstanden habe, ist das auch die gesuchte Lösung, da er ja nicht Weiß welche Struktur zurückgegeben wird:
ValueType datenStruktur = null;
Datenauswerten(data, out datenStruktur);
//datenStruktur = Datenauswerten(data);
if (datenStruktur is addressStruktur)
{ ... }
else if (datenStruktur is speisenStruktur)
{ ... }
object geht natürlich. Wenn er wirklich nur Strukturen verwendet, funktioniert ValueType jedoch genauso: Structs (C# Programming Guide)
Außerdem sollte bei Verwendung von ValueType kein unnötiges Boxing notwendig erforderlich werden (100% sicher bin ich mir jedoch nicht).
Jede Struktur (C# Schlüsselwort struct) ist ein Wertetyp. Als solcher ist er implizit von System.ValueType abgeleitet.
Du könntest also schreiben:
void Datenauswerten(Byte[] Datenstrom, out ValueType valueType) {...}
geschickter wäre aber wohl:
ValueType Datenauswerten(Byte[] Datenstrom) {...}
Ja, du hast recht. Ich sollte die Antwort auf meine Anfrage bei den Betreibern des Projektes abwarten.
Haben denn Lizenzen überhaupt die notwendige Schöpfungshöhe um urheberechtlichen Schutz zu genießen?
Hallo,
Im privaten Umfeld entwickle ich als Hobby kleinere Anwendungen. Bisher habe ich nur selten etwas veröffentlicht und in den wenigen Fällen der Lizenz keine besondere Beachtung geschenkt. Ein einziges Projekt habe ich unter BSD-Lizenz gestellt.
Nun möchte ich diesem rechtlichen Thema jedoch ein wenig mehr Beachtung schenken. Wichtig ist mir, dass die Lizenz die Ideen der BSD-Lizenz berücksichtigt. Gleichzeitig möchte ich deutsches Recht beachten und nicht einfach eine, für das amerikanische Recht geschaffene, Lizenz übernehmen. Das einzige derartige Projekt, das ich finden konnte, ist die "Deutsche freie Software Lizenz". Diese lehnt sich jedoch an die GPL an, die ich nicht verwenden möchte. Daher habe ich den Lizenztext meinen Ansprüchen entsprechend angepasst. Nun stellt sich mir die Frage, ob ich das überhaupt gedurft hätte, oder ob ich damit die Rechte des Verfassers der Lizenz verletze? Falls nein würde ich mich über eure Einschätzung meines Lizenztextes freuen.
Hier ist der erste Entwurf zu finden: ([EDIT von herbivore]Link entfernt[/EDIT]
Danke
Kabelsalat
PS: Wer zufällig auch im 3D-Center Forum unterwegs ist, findet dort das selbe Thema. Es gleich hier zu posten wäre jedoch die bessere Option gewesen...
Ein paar Links hätte ich für dich. Du solltest dir aber im klaren sein, dass dein Vorhaben ein größeres Unterfangen ist und nicht mal eben so in 10 Minuten erledigt ist...
Minesweeper, Behind the scenes
Enhancement for the cool Minesweeper Memory Reader
How to write a Memory Scanner using C#
Minesweeper Solver is my solution to solving the expert level in the minesweeper game
Sending input messages to other window or How to win a flash game by your programming skills
Screen Captures, Window Captures and Window Icon Captures with Spy++ style Window Finder!
Sweep the Minesweeper
Original von Letitia L.
Gab es da mal nicht irgendwas, wo man eine Zahl übergeben konnte, und
wenn die NICHT "0" war, gab die Funktion "true" zurück? 🤔
...
Du meinst Convert.ToBoolean(int value). Für jeden Integerwert außer 0 liefert die Funktion true.
-> :rtfm:
Wenn der String nicht Boolean.TrueString ("True") oder Boolean.FalseString ("False") entspricht, wird eine Ausnahme ausgelöst. Die Großschreibung wird ignoriert.
Hallo,
wisst ihr, wie man mit dem cref-Attribut der XML Dokumentationskommentare eine Methodengruppe referenzieren kann? Wenn ich schreibe <see cref="Klasse.Methode" /> und es existieren mehrere Überladungen, wählt der Compiler automatisch die erste Überladung und gibt eine Warnung aus.
Bin für jeden Tipp dankbar
Kabelsalat
Paint.Net ist ein quelloffenes Grafikprogramm, das auf .Net aufbaut. Am ehesten wirst du in dessen Quellcode einen Lösungsansatz finden. Du vereinfachst dir die Suche sicherlich erheblich, in dem du zunächst versuchst den gewünschten Effekt mit Paint.Net zu realisieren. Damit solltest du die Suche nach dem relevanten Code-Teil erheblich vereinfachen.
Neben Wix fallen mir eigentlich nur noch InnoSetup und NSIS (Nullsoft Scriptable Installer) ein. Beide bauen allerdings nicht auf der Windows Installer Technologie auf. Gerade zu InnoSetup soll es auch viele gute IDEs geben...
Vielleicht ist ja PostgreSQL (http://www.postgresql.org/) etwas für dich. Es gibt auch einen .Net Connector: http://npgsql.projects.postgresql.org/
Wie sieht es mit den Details der SecurityException aus? InnerException?
Verzeiht mir mein Missverständnis.
Zu Delphi: Du solltest einen Bogen um BDS 2005 (Borland Developer Studio 2005) machen. Die Hilfe ist schlicht grausig. Zumindest solltest du noch zusätzlich Delphi 7 wegen der Hilfe installieren. Delphi 2007 for Win32 soll wieder OK sein, getestet habe ich es allerdings nicht. Die Turbo IDEs kenne ich nicht.
Du kannst .Net Komponenten auch für COM verfügbar machen. Vielleicht hilft dir das bei deinem Problem weiter.
Ansonsten wäre Delphi zu empfehlen. Du erstellst native Windows-Anwendungen und kannst gleichzeitig noch auf eine elegante Sprache zurückgreifen.
PS: C# als weichgespültes C(++) bezeichnen, halte ich für ungerechtfertigt.
Was ist ein großer Hype: Threading oder Transactional Memory?
Beim Threadsynchronisieren muss man immer darauf achten keine Deadlocks zu erzeugen. Diese können sehr ärgerlich sein, da sie gerade auf Maschinen mit mehr als einem (virtuellen) Prozessor zu schwer reproduzierbaren Fehlern führen können. Aus diesem Grund entwarf ich einige Klassen, die in der Lage sind Deadlocks zu erkennen und darauf zu reagieren (siehe auch Auflösen einer Deadlocksituation). Das Projekt war schon zu 90% fertig, nun habe ich es allerdings aufgegeben, da ich auf einen wesentlich intuitiveren Ansatz gestoßen bin, den ich nicht vorenthalten möchte:
Auf Codeplex.com gibt ein Projekt des Dotnetpro-Autors Ralf Westphal, das Threadsynchronisierung mittels Transaktionen (wie bei Datenbanken) ermöglicht. Das Projekt findet ihr hier. Sehr zu empfehlen ist auch der zugehörige Dotnetpro-Artikel.