Laden...
F
feadur myCSharp.de - Member
Entwickler Bonn Dabei seit 11.03.2005 722 Beiträge
Benutzerbeschreibung

Forenbeiträge von feadur Ingesamt 722 Beiträge

30.08.2006 - 19:55 Uhr

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace BinFormatter
{
	[Serializable]
	public struct sB
	{
	    public string da1;
	    public string da2;
	    public string da3;
	    public string da4;
	    public string da5;
	}
	
	public class MainClass
	{
		public static void Main(string[] args)
		{
			sB obj = new sB(); 
			obj.da1 = "1";
			obj.da2 = "2"; 
			obj.da3 = "3"; 
			obj.da4 = "4"; 
			obj.da5 = "5"; 
			
			MemoryStream stream = new MemoryStream();						
			BinaryFormatter bin = new BinaryFormatter(); 
			bin.Serialize(stream, obj); 
			
			//hole byte array
			byte[] buffer = stream.GetBuffer();			
			
			//deserialisiere
			sB objSer = (sB)bin.Deserialize(stream);
		}
			
	}
}

30.08.2006 - 10:38 Uhr

mit einer schleife und entsprechendem string vergleich...

29.08.2006 - 14:35 Uhr

heutzutage geht das ja schon per drag & drop... =)
warum brauchst du eigentlich 3 assemblies bzw. 2 verschiedene windows applikationen?

28.08.2006 - 14:03 Uhr

ListViewItem lvi = new ListViewItem("Text"); 
lvi.SubItems.Add("1");
lvi.SubItems.Add("2");
lvi.SubItems.Add("3");
ListView.Items.Add(lvi); 

Siehe auch MSDN Doku.

28.08.2006 - 13:59 Uhr

Hi,
meiner Meinung nach ist es keine gute Idee, eine .exe Datei zu referenzieren, wobei das mit .net 1.1 ja auch nicht möglich ist. Lager die Funktionalität, die beide Anwendungen brauchen besser in eine dll aus. und referenziere sie dann jeweils mit deinen beiden .exe Anwendungen.

27.08.2006 - 12:16 Uhr

hallo,

Die erste Form kann auch ruhig unvisible sein, ist auch ok

dann wird es aber schwierig auf ein button zu klicken, oder?? =)

Naja, jedenfalls solltest du ein objekt dieser neuen form erstellen. dieses kannst dann auch anzeigen:


private void menuItem9_Click(object sender, EventArgs e)
        {
            this.Hide(); 

            SPS__Administration_.Form1 myForm = new SPS__Administration_.Form1(); 
            myForm.ShowDialog(); 
      }
23.08.2006 - 22:12 Uhr

ganz so einfach geht es leider nicht.
am besten legst du eine kopie des gesamten verzeichnisses an, und verwendest dann vsrename zum umbenennen:

http://www.codeproject.com/tools/vsrename.asp

23.08.2006 - 18:33 Uhr

das versteh ich jetzt nicht. bitte drück dich deutlicher aus. welche seite erhälst du?

23.08.2006 - 17:50 Uhr

Hi,

du könntest auch die Message WM_SPOOLERSTATUS abfangen, die immer bei Aktivität des Spoolers versendet wird. im LoWord des LParam steht die Anzahl der noch verbleibenden Druckaufträge.

22.08.2006 - 10:23 Uhr

naja, aber du vergibst ja vermutlich namen für deine controls wenn du sie erstellst. dann kannst du so vorgehen:

form.Controls["textBoxName"].Focus();

22.08.2006 - 09:40 Uhr

String.Length ist ein Integer, und kein char. Aussteigen aus einer Funktion geht eigentlich mit return.... =) Bitte leg dir mal ein Buch zu.

Versuchs mal so:


                        if(Name==string.Empty)
			{
				MessageBox.Show("Bitte tragen Sie den Terminalnamen ein");
                                return;
			}
			else if(ip==string.Empty)
			{
				MessageBox.Show("Bitte tragen Sie eine IP-Adresse ein");
                                return;  
			}
			else if(mac==string.Empty)
			{
				MessageBox.Show("Bitte tragen Sie die Mac-Adresse ein");
                                return;
			}	

21.08.2006 - 20:23 Uhr

warum rechnest du nicht den prozentualen anteil dessen aus, was bereits rausgeschrieben wurde und setzt dann diesen als wert für die progress bar?

18.08.2006 - 19:54 Uhr

du musst erst eine referenz für das zu ändernde objekt holen. ich würde auch eine generische liste empfehlen:


List<Point> ps = new List<Point>(); 
ps.Add(new Point(0,0)); 
Point p = c[0]; 
p.X = 10; 
ps[0] = p;

direkt ändern in der form ps[0].X = 10 funktioniert nur mit einem Point Array.

11.08.2006 - 13:51 Uhr

Application.DoEvents()

07.08.2006 - 18:54 Uhr

na das hört man doch gern =)

07.08.2006 - 17:02 Uhr

Control c = form.Controls[NAME];

05.08.2006 - 16:49 Uhr

Process.Start

09.07.2006 - 23:55 Uhr

hi,
bei solchen problemen empfielt sich auch die lektüre eines buches.

09.07.2006 - 23:53 Uhr

Hi,

hier findest du die smtp-spezifikation:

http://www.ietf.org/rfc/rfc0821.txt

Im namespace System.Net gibt es die notwendingen Klassen.

Bei google, sf.net oder codeproject.com wirst du bestimmt auch Beispielcode finden.

09.07.2006 - 23:29 Uhr

*lol*

😉

09.07.2006 - 01:35 Uhr

Das ist eigentlich kein Problem. Wo hakt es denn??

09.07.2006 - 01:26 Uhr

hallo,

Was muss ich tun, um es dennoch bewegen zu können?

  1. Das Mouse Move Event abonieren.
  2. Checken, ob eine Maustaste gedrückt ist
  3. Entsprechend der Mausbewegung das Fenster verschieben.

So ist jedenfalls der große Umriss.

08.07.2006 - 10:51 Uhr

Mein Nickname entspringt der von J.R.R. Tolkien konstruierten Sprache Sindarin, und könnte am ehesten mit "dunkler Geist" übersetzt werden. (von faer - Geist und dûr - dunkel)

Motiviert ist der Name vor allem durch die Figur Feanor.

08.07.2006 - 02:53 Uhr

hallo,

einfache backslash kannst du auch benutzen, wenn du dem string ein @ vorstellst:


string path = @"c:\temp\datei.txt"; 
//entspricht
path = "c:\\temp\\datei.txt"; 

08.07.2006 - 01:25 Uhr

indem du für downfile den kompletten pfad zu der datei angibst.

07.07.2006 - 22:13 Uhr

Hi,

meines Wissens leider nicht.

07.07.2006 - 19:47 Uhr

Hallo Cyron,

da du ja kontruktive Kritik hören wolltest:

Was du programmiert hast, nennt man einen Zyklus.
D.h. zwei Klassen (Form1 und TestClass) sind jeweils voneinander abhängig. Die offensichtlich angestrebte Spaltung von Funktionalität in 2 Klassen wurde zwar erreicht, bringt aber näher betrachtet gar nichts. Denn egal welche Klasse du verwendest, immer wirst du auch die andere brauchen um die jeweils andere verwenden zu können.

Das mag sicht jetzt nicht wirklich schlimm anhören, bei steigender Komplexität deines Programms wird dies aber GARANTIERT zu problemen führen.

07.07.2006 - 18:00 Uhr

hallo,

also ich persönlich habe damit überhaupt kein problem. ich finde es immer sehr lehrreich, anderen code zu lesen und zu bewerten.

andererseits kann dieses forum natürlich keinen lehrer ersetzen aber das ist dir ja auch klar.

07.07.2006 - 14:51 Uhr

doc.Show();

07.07.2006 - 14:21 Uhr

Hi,

nein ich glaube nicht.

Aber du könntest z.b. nur den vollen Typ-Namen von A in den Bs speichern und dann per reflection auf A zugreifen. Ist zwar umständlich aber damit kannst du es umgehen.

07.07.2006 - 12:50 Uhr

Microsoft.Win32.RegistryKey

07.07.2006 - 12:35 Uhr

hallo,

das konzept dafür musst du dir schon selbst überlegen, das kann dir kein forum abnehmen.
wenn du dir nicht sicher bist ob dein konzept aufgeht oder wenn du detailierte fragen zur umsetzung hast, sind wir gerne bereit zu helfen.
ich persönlich sehe in einem solchen programm auch keine sonderlichen vorteile gegenüber dem "manuellen" einsehen von web-seiten.

06.07.2006 - 17:31 Uhr

Original von Programmierhans
brauchts das __gc nicht nur für COM-Interfaces ?

__gc bezeichnet generell managed klassen (garbage collected)

Dass er den Namespace nicht findet kann ich mir grad auch nicht erklären.
Jedoch solltest du in jedem Fall


public __gc __interface ITestInterface

versuchen.

05.07.2006 - 00:32 Uhr

Alternativ kannst du auch die Sprache für den aktuellen Thread einstellen über:

System.Threading.Thread.CurrentThread.CurrentUICulture.

Es werden daraufhin die entsprechenden Resourcen herangezogen.

05.07.2006 - 00:12 Uhr

Vielen Dank für ein sehr schönes, nützliches Programm.

04.07.2006 - 16:54 Uhr

if (ds.Tables != null && ds.Tables.Count > 0) 
{
 //DataTable vorhanden...
}

04.07.2006 - 16:51 Uhr

Hallo,

poste doch mal den code an der betreffenden stelle.

02.07.2006 - 18:21 Uhr

Hallo,

Original von megachucky
Verstehe ich nicht, Lebewesen leichtesteLebewesen ist doch auf der gleichen "Ebene" wie die return-Anweisung ?!?

Das stimmt. Allerdings wurde "leichtesteLebewesen" nur deklariert und nicht instanziert, weshalb es zu der genannten Fehlermeldung kommt.

Wie mache ich es denn besser, ohne diese Zeile:

double leichtesteGewicht = 999;

Also das gleich ein Object aus der Liste abgefragt wird?

Wenn du damit meinst, wie du das "Gewicht" des ersten Elements aus "listeLebewesen" holst:


leichtesteGewicht = listeLebewesen[0].Gewicht; 

Auch wenn das jetzt nach Oberlehrer klingt: Du solltest versuchen, solche grundlegenden Probleme selbstständig zu lösen. Nach der Lektüre eines Buches werden sich dir dann solche Fragen nicht mehr stellen.

feadur

02.07.2006 - 12:59 Uhr

Hallo,

bitte nutze die Suchfunktion bevor du postest.

Höhe der Taskbar einstellen

01.07.2006 - 15:52 Uhr

Hallo herbivore,

erstmal vielen Dank für deine Tipps. Ich werde mir Nant auf jeden Fall näher ansehen.

Ich weiss nicht ob ich deinen zweiten Post jetzt richtig verstanden habe.
Tatsächlich habe ich nur eine Win32 Applikation, die die Wrapper Assemblies aufruft. Diese erzeugt auch keine Wrapper Klasse, sondern ruft einfach die exportierten DLL Funktionen des Wrappers auf. In c++\cli ist es ja möglich nativen und managed code zu "vermischen". Der Wrapper arbeitet also genauso wie eine Win32 DLL, nur leitet er die Aufrufe an ein .NET Assembly im gleichen Verzeichnis weiter.

01.07.2006 - 14:01 Uhr

Hallo,

bitte poste doch mal ein wenig code, ansonsten kann dazu wohl niemand etwas konstruktives sagen. =)

01.07.2006 - 13:59 Uhr

Hallo zusammen,

um mein Problem genauer zu beschreiben, muss ich wohl erstmal etwas ausholen.

Ich habe eine Win32 Applikation, die über einen in C++\CLR geschriebenen Wrapper mit anderen .NET Assemblies (Add-Ins) kommuniziert.

Das ganze sieht nun integrationstechnisch so aus, dass jedes Add-In ein eigenes Verzeichnis hat, in dem ein Wrapper-Assembly und das eigentliche Add-In liegen. Das gleiche Wrapper-Assembly wird also mehrfach verwendet.
Die Win32 Applikation ruft nun diese Wrapper per LoadLibrary() auf, woraufhin diese per Reflection im Add-In Assembly nach einem Interface, nennen wir es "IAddIn", suchen und dessen Methoden aufrufen.

Zur Verdeutlichung: Die Add-Ins referenzieren den Wrapper und implementieren Interfaces, die dieser bereitstellt.

Es klappt alles wunderbar. Nur dummerweise nicht, wenn ich mehr als ein Add-In laden will. =)

Natürlich habe ich schon viele Stunden im Internet nach Antworten gesucht und herausgefunden, dass die CLR immer nur ein Assembly mit der gleichen Identity lädt. Soll heissen, wenn ein Assembly mit der gleichen Identity zum zweiten Mal geladen werden soll, wird das bereits zuvor geladene genommen.

Im Falle meiner "Wrapper-Addin" Kontruktion passiert dann wohl folgendes: Das zweite zu ladende Add-In wird zur Laufzeit an denjenigen Wrapper gebunden, der schon zuvor mit dem ersten Add-In (in einem anderen Verzeichnis) geladen worden ist. Das hat eine "InvalidCastException" zur Folge, weil die Typen in Wrapper und Add-In nicht mehr zusammen passen.

Ändere ich die Identities der verschiedenen Wrapper funktioniert alles wunderbar. Dies ist aber auf Dauer sehr nervig, weil ich immer für jedes Add-In einen neuen Wrapper mit anderem Namen compilieren muss.

Ihr werdet jetzt sagen, dass ich versuchen sollte, nur mit einer Wrapper Assembly für alle Add-Ins auszukommen. Dies ist leider aufgrund der Win32 Applikation ohne enormen Zeit- und Arbeitsaufwand nicht möglich.

Jetzt meine Frage: Wie kann ich erreichen, dass immer genau dasjenige Wrapper-Assembly genommen wird, das zu dem jeweiligen Add-In gehört, also im gleichen Verzeichnis liegt. Gibt es evtl. Möglichkeiten das Bindungsverhalten der CLR zu beeinflussen, oder habt ihr vielleicht sehr viel profanere Lösungsvorschläge, auf die ich im Zuge dieses verwirrenden Szenarios noch gar nicht gekommen bin?

Für jede Anregung wäre ich euch sehr dankbar.

feadur

30.06.2006 - 13:14 Uhr

Hi,

ich habe den selben effekt.
scheint wohl ein bug zu sein, denn dein code ist korrekt.

ich würde dir auch zu der exception-lösung raten, wobei das natürlich recht unschön ist.

28.06.2006 - 10:25 Uhr

Hallo,

Original von lupus
Liegt dies daran, dass cih mehrere Enums in diesen befinden und das Studio das nicht auflösen kann?

Naja, mit mehreren hat es nix zu tun, ehr damit, dass sie innerhalb der Klasse sind.
Du könntest aber schon mit Option.Default darauf zugreifen.

Gibt es eine Lösung hierfür oder ist dies nicht möglich.

Wenn du die enums außerhalb der Klasse definierst, sollten sie von IntelliSense direkt angezeigt werden.


public enum DefaultTypes {
      Option1,
      Option2
}

public enum CommonTypes {
Option1,
Option2
}

public class Option {

public CommonTypes Common; 
public DefaultTypes Default;

}

27.06.2006 - 16:27 Uhr

hallo,
ich verstehe grad dein problem nicht. "Propertys" hat laut definition deines interfaces keinen "set" modifier. daher kannst du "Propertys" natürlich auch keinen wert zuweisen.
Was meinst du mit "unbekannter klasse" ?

"cntrl" ist gleichermaßen vom Typ Control als auch vom Typ IExtention, da es per "as" von Control gecastet wurde.
Du kannst also einfach soetwas wie Page.Controls.Add(cntrl as Control); sagen.

27.06.2006 - 15:36 Uhr

IExtention cntrl = LoadControl("test.ascx") as IExtention;

22.06.2006 - 16:57 Uhr

Response.WriteFile().

22.06.2006 - 11:54 Uhr

Wie lautet deine Frage?