Hallo,
wenn Du P/Invoke benutzt, brauchst Du die C++ Quellen nicht mit /clr übersetzen. Der Switch ist dafür gedacht, dass Du mixed Mode Assemblys erstellst welche einen Teil managed, den anderen Teil unmanaged enthalten (und diese dann als normale Referenz benutzen kannst)
Grüsse,
Egon
Hallo,
mittels des Tools ILMerge kannst Du DLL's direkt in die EXE integrieren.
Grüsse,
Egon
Hallo,
string myString = "Hello, World!";
// Umwandeln des Unicode Strings nach ASCII und speichern in Byte Array
byte[] asciiEncoded = System.Text.Encoding.ASCII.GetBytes( myString );
// Konvertieren der ASCII Daten im Byte Array zurück in einen Unicode String
myString = System.Text.Encoding.ASCII.GetString( asciiEncoded );
Grüsse,
Egon
Hallo,
ich bin gerade mit dem Buch "Microsoft XNA Unleashed: Graphics and Game Programming for Xbox 360 and Windows" fertig geworden und kann es uneingeschränkt weiterempfehlen.
Das Buch verfolgt nicht den ansonsten üblichen Weg dass auf die Examples von Microsoft aufgebaut und diese modifiziert werden - das gefällt mir besonders gut da ich gerne von Grund auf anfange. Das erste Kapitel hat einen relativ steilen Einstieg den man sich teilweise mehrfach durchlesen muss um es zu verstehen, doch wenn diese Hürde geschafft ist gehts in einem relativ lockeren, einfach zu verstehenden Stil weiter.
Das Buch ist allerdings in Englisch verfasst.
Grüsse,
Egon
Hallo,
ich kennes es selbst seit ~ 2001, lese es immer wieder und ab und an schreibe ich es auch. Das ^^ Emoticon.
Warum ich diesen Thread eröffne: Es gibt dermassen viele Meinungen zu dem Symbol wenn man sich mit Leuten unterhält was es nun eigentlich bedeutet:* Ironie
In welchem Zusammenhang benutzt ihr das Symbol? Weiss jemand die genaueren Ursprünge? Habe mal früher gehört dass es seine Ursprünge in Süd Korea hat und es dort bei Online Spielen genutzt wurde - wahrheitsgehalt ungewiss.
Grüsse,
Egon
Hallo,
im Handbuch zu Nant sind doch einige schöne Beispiele drinnen. Beispielsweise unter:
http://nant.sourceforge.net/release/latest/help/fundamentals/buildfiles.html
ist folgendes:
<?xml version="1.0"?>
<project name="Hello World" default="build" basedir=".">
<description>The Hello World of build files.</description>
<property name="debug" value="true" overwrite="false" />
<target name="clean" description="remove all generated files">
<delete file="HelloWorld.exe" failonerror="false" />
<delete file="HelloWorld.pdb" failonerror="false" />
</target>
<target name="build" description="compiles the source code">
<csc target="exe" output="HelloWorld.exe" debug="${debug}">
<sources>
<includes name="HelloWorld.cs" />
</sources>
</csc>
</target>
</project>
Das beispiel ist zwar für ein Executable, aber wenn Du in der Referenz für den CSC Task nachsiehst liest Du, dass als target auch "library" möglich ist (=DLL)
Grüsse,
Egon
/edit: Noch was: Wenn Du das Framework ändern möchtest für das kompiliert wird, da gibts nen Eintrag in der Nant FAQ dazu:
http://nant.sourceforge.net/faq.html#change-targetframework
Hallo,
falls ich dich richtig verstanden habe - wenn Du es wirklich so lösen willst bietet sich dafür das Singleton Pattern an:* Eine Instanz der Klasse
Grüsse,
Egon
/edit: Suchwort: Singleton
Hallo Golo,
ja das hab ich mittlerweile auch schon bemerkt - eigenartiges verhalten vom Compiler. Eventuell könntest Du als Finder das an Microsoft melden (Über den Link in der MSDN), denn die MSDN erwähnt das mit keinem Sterbenswörtchen.
Grüsse,
Egon
Hallo nochmal,
ich hab das ganze jetzt mal probiert und es hinbekommen:* Im Testprojekt die Referenz auf die zu testende Assembly rausgenommen (und alles auskommentiert damit das teil kompiliert)
[assembly: InternalsVisibleTo( "Test, PublicKey=00240000048000009400000......." )]
Voi'la funktioniert. Weiss zwar nicht ob das so im sinne des Erfinders war aber es tut auf jeden Fall.
Grüsse,
Egon
Hallo Golo,
hab ich bis jetzt noch nie benutzt, aber im MSDN steht ein Artikel darüber der dir eventuell hilft:
http://msdn2.microsoft.com/en-us/library/bb385840.aspx
(Ganz unten: Strong Name Signing Requirement)
Grüsse,
Egon
Hallo JAck30lena,
doch es funktioniert. Probiere obigen Code und du wirst es sehen 😉
Grüsse,
Egon
Hallo,
ja es stimmt man muss GetFolderPath benutzen, der Code von mir ist (noch) nicht korrekt - hab ihn ohne zu testen schnell reingeschrieben 🙂
Grüsse,
Egon
Hallo,
ich würds so machen:
string windowsPath = System.IO.Path.GetFullPath( Environment.GetFolderPath( Environment.SpecialFolder.System ) + "\\.." );
Grüsse,
Egon
/edit: Code korrigiert (diesmal mit nachdenken und testen!)
Hallo,
ich denke dass Du über WMI was rausfinden können müsstest:
Win32_SystemDevices
Win32_Bus
lad dir mal den WMI Code creator runter (hier) und spiel dich mal damit rum.
Grüsse,
Egon
Hallo,
ja ich habe dem cs-sdl projekt schon was darüber geschrieben, mal sehen wies von deren Seite aufgenommen wird.
Von der geschwindigkeit her kommt es unter Linux nicht ganz mit Windows (directx Output) mit, ist aber meiner meinung nach akzeptabel schnell für die meisten 2D Spiele. Von Loki Software wurden damit ja auch Spiele ala Civilisation III für Linux portiert.
Wegen der deutschen Version bin ich schon stark am überlegen. Wird aber sicherlich noch einige Zeit dauern da ich gerade etwas unter Zeitmangel leide 😉
Grüsse,
egon
Hallo,
ich habe nach langer Zeit nun endlich mein Tutorial über die Programmierung mit SDL.NET fertiggestellt.
Da es über die Library selbst noch keinen umfangreichen Artikel gegeben hat und ich ein breites Publikum damit erreichen wollte, ist das ganze in englischer Sprache verfasst. Eventuell - wenn es genügend Anforderungen daran gibt - werde ich ihn ins Deutsche übersetzen.
Im Anhang befindet sich der Artikel - allerdings ohne die ganzen Examples da diese die maximal Anhanggröße sprengen würde. Ihr könnt euch den kompletten Artikel als ZIP Datei von meiner Homepage runterladen (falls ihr die Solutions wirklich braucht)
Grüsse,
Egon
Hallo,
ich tippe mal stark darauf, dass Du die Datei nicht schliesst nachdem Du in diese geschrieben hast.
Schliesse also den Stream nach dem schreiben (Close() Methode).
Grüsse,
Egon
Hallo,
spricht etwas dagegen dass Du ihn selbst implementierst?
Grüsse,
Egon
Hallo,
ich habe mir eigentlich auch keine Mühe gemacht dass der resultierende Maschinencode nicht so leicht zu analysieren und zu umgehen ist 😉
Als Compiler hab ich den ordinären Visual C++ 2008 genommen, Standardeinstellungen der Release Konfiguration.
Grüsse,
Egon
Hallo egrath!
Laut Reflector wird in deiner .Net Dll keine Variable erstellt!?
public class HackMe { // Methods public static int Execute(string message) { Console.Out.WriteLine("[.NET] Hello: {0}", message); return 0; } }
Verdammt, dann hat der Optimizer des Compilers wieder zugeschlagen und die Deklaration rausgenommen. Aber Da du schon so weit bist lüfte ich das "Geheimnis" nun:*Ich habe mir einen C++ Wrapper geschrieben der eine CLR Instanz initialisiert *Dieser CLR teile ich nun mit, dass ich die Methode "Execute" des types "egrath.test.HackMe" aufrufen möchte
Ich denke mal dass Du einen Decompiler verwendet hast wie z.b. OllyDbg oder W32Dasm um das ganze zu analysieren, oder? Im Loader überprüfe ich nämlich ob ein Debugger aktiv ist 😉
Grüsse,
Egon
Hallo,
ohne dass ich das jemals gebraucht hätte würde ich versuchen von FileStream zu erben und dann einen Filter implementieren der anstelle von \r\n nur \n schreibt.
Dem XmlTextWriter wird dieser dann im Constructor übergeben und schon gehts - so die Theorie.
Grüsse,
Egon
Hallo,
so ich hab mir auch wieder mal ne neue Sache ausgedacht. Um was gehts:* In der Applikation wird in einer Variable eine Zahl gesetzt (gibt eh nur eine Variable). Welchen wert hat diese?
Grüsse,
Egon
/edit: Passwort für das Archiv ist "mycsharp". Muss es leider verschlüsseln da es sonst der Proxy hier nicht durchlässt.
Hallo,
File.Move
Grüsse,
Egon
/edit: Warum benennst Du die Datei nicht gleich mit der Endung HTML?
Hallo,
"Der Pragmatische Programmierer" fällt meines erachtens auch in die Kategorie Zeitlos:
http://www.pragmatischprogrammieren.de/
Grüsse,
Egon
Hallo,
bei CodeProject gibts nen netten Artikel darüber der alles genau beschreibt:
http://www.codeproject.com/KB/vista-security/UAC_Shield_for_Elevation.aspx
Grüsse,
Egon
Hallo,* Mit Mono ist eine Implementierung von .NET für Unixoide Systeme verfügbar, also auch für SuSE
Grüsse,
Egon
Hallo herbivore,
danke für die korrektur, irgendwie hab ich in meinem Beitrag was verwechselt.
Grüsse,
Egon
Hallo,
vielleicht zum besseren verständnis noch etwas code:
using System;
public sealed class Test
{
public static void Main( string[] args )
{
/*
* intArr lebt auf dem Stack, ebenso die Inhalte des Arrays,
* da es sich um ValueTypes handelt
*/
int[,] intArr = new int[,]
{{ 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
/*
* Gleiches wie oben, nur mit etwas syntaktischem Zucker
*/
int[,] intArr2 = {{ 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
/*
* objArr lebt auf dem Heap, die Inhalte auf dem Heap
* da es sich um ReferenceTypes handelt
*/
object[,] objArr = new object[,]
{{ ( object ) 1, ( object ) 2, ( object ) 3 },
{ ( object ) 4, ( object ) 5, ( object ) 6 },
{ ( object ) 7, ( object ) 8, ( object ) 9 }};
}
}
Grüsse,
Egon
Hallo,
genau das mein ich - beim starten der Applikation und bei anderen häufigen Aktionen wird gecheckt ob ein Debugger dran ist. Ist dem so, beendet sich die Applikation ohne eine Meldung.
Ist zwar nicht grade massiver Stopper, aber ärgern kann er jemanden trotzdem.
Grüsse,
Egon
Hallo,
während ich mir grad die nächste Schweinerei überlegt bin ich auf was nettes gestossen:* mscoree.tlb referenzieren
using System;
using System.Runtime.InteropServices;
namespace egrath.test.hackme
{
public class HackMe
{
public static void Main( string[] args )
{
// Proceed only if we are not running inside the Debugger
if( IsDebuggerAttached() )
return;
Console.Out.WriteLine( "Hier" );
}
private static bool IsDebuggerAttached()
{
int attached = 0;
new mscoree.CorRuntimeHostClass().IsDebuggerAttached( out attached );
return attached == 0 ? false : true;
}
}
}
... und schon lässt sich das Programm nicht mehr debuggen 😉
Grüsse,
Egon
Hallo,
für User bezogene Umgebungsvariablen:
HKCU\Environment
für Globale Umgebungsvariablen
HKLM\System\CurrentControlSet\Contro l\Session Manager\Environment
dort die entsprechenden String Values hinzufügen und dann die WM_SETTINGCHANGE Message broadcasten (Native SendMessage)
Grüsse,
Egon
/edit: WM_SETTINGCHANGE = 0x001A
Hallo,
der Kandidat erhält 100 Punkte.
Hier die auflösung:* Das ganze ist in IL geschrieben
Für die interessierten anbei der Source.
Grüsse,
Egon
/edit: So NeuroCoder, du bist an der Reihe was zu basteln 🙂
Hallo,
hab die Lösung: (ROT13 verschlüsselt um keinen Spoiler zu erstellen)
1.) Vz Ersyrpgbe qrpbzcvyvrera
2.) Fbhepr nacnffra hz Pbzcvyrsäuvt mh znpura
3.) Qra Purpx nhfonhra bo qre ibz Cnffjbeg orerpuargr Unfu zvg qrz üorervafgvzzg qre vz Pbqr Uneqtrpbqrg vfg. -> Nffrzoyl xnaa trynqra jreqra
4.) Zvg Zbab.prpvy qvr Nffrzoyl va rva Svyr qhzcra
5.) Zvg qrz Ersyrpgbe qvr Nffrzoyl nanylfvrera => Trurvzre fgevat = "JJJ.ZLPFUNEC.QR"
Grüsse,
Egon
/edit: ROT13 Dekoder: http://www.retards.org/projects/rot13/
Hallo tscherno,
das hört sich ja schon nicht so schlecht an das Ding - werd ich mir mal genauer ansehen, danke für den Tipp!
Grüsse,
Egon
Hallo,
du könntest dir in einer Applikation ein Internet Explorer Control einbinden, dessen größe so groß machen dass die Seite komplett reinpasst und dann das Control in ein Bitmap rendern.
Dabei ist allerdings etwas zu beachten, für das ich jetzt auf die schnelle keine lösung habe:* Wie groß muss das Control sein damit die ganze seite reinpasst?
Aber damit müsstest Du deinem Ziel schon etwas näher kommen.
Grüsse,
Egon
Hallo,
ich bin gerade auf der Suche nach einem automatisierten Lastgenerator für Fat-Client Anwendungen. Hat jemand von euch mit solchen Tools erfahrung und kann eines empfehlen?
Die meisten bisher gefundenen können nur Last für Web Applikationen erzeugen...
Es sollte folgendes unterstützen:* Simulieren von Benutzereingaben auf einem Fat-Client
Prinzipiell ist die Architektur aller zu testenden Anwendungen relativ gleich: FatClient->Business Logic Server->Datenbank. Wir wollen damit testen wieviele gleichzeitige Clients die BL Schicht zulässt und ab wann es bei dieser zu Problemen kommt.
(Wir haben für die zu testenden Applikationen keine Quellcodes, also sollte das ganze ein Black Box verfahren sein)
Grüsse,
Egon
Hallo,
bezüglich der ursprünglichen Frage: Du willst den Dependency Walker benutzen
http://www.dependencywalker.com/
Grüsse,
Egon
Hallo,
bei so sachen wie Codec und Größe eines Videofiles wirst Du dich mit Bordmitteln schwer tun, da solche Informationen in den eigentlichen Nutzdaten verspeichert sind. Du musst also schon das Fileformat kennen und manuell die Information rausziehen.
Grüsse,
Egon
Hallo,
System.IO.Ports ist in Mono (beinahe) vollständig implementiert, dementsprechend sollte es keine Probleme geben.
Was allerdings noch nicht zu 100% funktioniert ist System.Windows.Forms (.NET 2.0), allerdings wenn Du keine wirklich krummen Dinge mit deiner Form machst sollte auch das funken (da die meisten Sachen die noch nicht implementiert sind welche sind die nicht sooo oft gebraucht werden)
Grüsse,
Egon
Hallo,
du musst P/Invoke benutzen (Stichwort: DllImport)
Grüsse,
Egon
/edit: Eventuell ist die antwort zu global, da ich nicht genau rauslese wo das Problem liegt (spezifizieren)
Hallo,
so jetzt wo ich das Teil daheim stehn hab (heut Nachmittag geholt) kann ich mal Infos aus erster Hand dazu geben:* Mit einem ordinären DVI nach HDMI Kabel krieg ich einen sauberen Full-Screen Desktop mit 1920x1080
Alles in allem muss ich sagen dass ich mehr als zufrieden mit dem Gerät bin. Eine unmenge an Einstellungsmöglichkeiten (Dynamischer Kontrast, Lichtsensor für anpassung der Helligkeit an die Umgebung) sorgen dafür dass man alles so konfigurieren kann wie man es haben möchte. Ein schier unendliches Arsenal an Anschlüsseln runden den eindruck noch weiter positiv ab.
... und was mir als alten Open Source'ler sehr gefällt: Es wird nicht nur properitäre software auf dem Gerät eingesetzt 😉
Hier mal der Link zum Gerät: http://www.p4c.philips.com/cgi-bin/dcbint/cpindex.pl?ctn=42PFL5603D/12&scy=de&slg=DEU
Falls also jemand grad mit einer neuen Glotze liebäugelt: Prädikat empfehlenswert
Grüsse,
Egon