Hallo,
ich wollte nur berichten, welchen Ansatz ich im Moment verfolge, der eigentlich auch ganz gut funktioniert.
In C++/CLI werden zwei Klassen definiert: managed und unmanaged. Die Managed-Klasse stellt vereinfachte Methoden mit C#-konformen Parameter dem C# zur Verfügung. In der Managed-Klasse wird ein Objekt der Unmanaged-Klasse erzeugt. In den Managed-Methoden, die eine Referenz an die Unmanaged-Methode weiterleiten müssen, wird vorher die Referenz mit pin_ptr festgenagelt.
Noch habe ich es nicht mit den Strukturen ausprobiert (wie Dravere es vorgeschlagen hat). Da müsste ich die StructLayout-Attribute verwenden, wenn ich es recht verstanden habe. Aber ich denke, es sollte an sich auch kein Problem sein.
In diesem Sinne: DANKE an alle Beteiligten!
VG
Paul
Na ja es ist halt auch ein bischen,
man hat 10 Jahre lang Tennisspielen gelernt, und ist so ein richtig alter Hase...
und dann muss man golfen..........
Ist ja das Selbe, ist ja auch ne Ballsportart *lach*
push_
Kennt jemand vll. auch einen guten der die klassen,namespace,...-namen + source an sich also methoden... verschlüsseln kann. Muss nicht keine Ahnung wie gut verschlüsselt sein einfach, dass man nicht mehr lesen kann?
AlexanderKiebler schrieb:
Damit der Benutzer nicht auf die Systemantwort warten muss z.B....
Dann würden die beiden Threads aber nicht immer abwechselnd ausgeführt. Und bei sowas könnte man dann auch auf den BackgroundWorker hinweisen.
Grüssli
Habe eine Freikarte zur .NET Devcon am 06./07. Juni.
Siehe http://www.c-plusplus.net/forum/286510
Hat jemand Lust? Falls ja, bei mir melden.
Bedingungen:
Fahrtkosten + Übernachtung sind selbst zu tragen
Außerdem hätte ich gerne einen zusammenfassenden Artikel über die Veranstaltung und die Vorträge
Einfach per Email melden.
Ja das sind 3 Zeilen Auszug aus einem größeren Stück Code.
Da ich mich seit mehreren Tagen mit C++/C# und dem ganzen Quellcode beschäftige, vergisst man allzu oft, seine Fragen ausführlicher zu stellen.
Morgen wird sich ein C++ Erfahrener zu mir gesellen, ich denke wenn er den Code vor sich liegen hat, könnte er das schneller lösen, mal sehen.
THX für die Anteilnahme.
Hmm nein, Windows PE wird als OS für eine Service Disk verwendet... ein paar eigene Tool unter .NET würd ich da gern verwenden. Wenn es nich geht, muss evtl. was in C++ umgesetzt werden.
Hallo,
danach habe ich auch mal gesucht gehabt - bis ich das Buch "Pro .NET 2.0 Windows Forms and Custom Controls in C#" erworben hatte.
Dort ist ein Screenshot und folgender Code dazu drin:
void HatchBrushes_Paint(object sender, PaintEventArgs e)
{
int y = 20;
int x = 20;
Font font = new Font("Tahoma", 8);
foreach (HatchStyle brushStyle in Enum.GetValues(typeof(HatchStyle)))
{
HatchBrush brush = new HatchBrush(brushStyle, Color.Blue, Color.LightYellow);
e.Graphics.FillRectangle(brush, x, y, 40, 20);
e.Graphics.DrawString(brushStyle.ToString(), font, Brushes.Black, 50 + x, y + 5);
y += 30;
if (y + 30 > ClientSize.Height)
{
y = 20;
x += 180;
}
brush.Dispose();
}
font.Dispose();
}
Einfach diesen Code im Paint-Ereignis einer Form (bzw. Panel) ausführen lassen.
(da ich diesen Code jetzt einfach abgetippt habe, könnten also noch kleine Syntaxfehler drin sein
P.S. anstatt "Dispose()" sollte man besser "using(...)" verwenden (aber ich wollte keine weiteren evtl. Klammerfehler oben in den Code einbauen...)
Und über die "Bilder"-Suche im Internet findet man auch einiges, z.B.:
http://www.bobpowell.net/brushesone.htm
http://dobon.net/vb/dotnet/graphics/hatchbrush.html
Okay, noch ein problem: kann man irgendwie die Spielfeldgröße herausfinden, weil die ja je nach anzahl der völker variieren kann??? Oder die entfernung zum rand???
Guten Abend,
man denkt eigentlich man hat es langsam mal drauf, und dann kommt man doch wieder an ein vermutlich ganz triviales Problem, für das ich eure Hilfe brauche. Und zwar nehmen wir mal an, wir haben 2 Models, Customer und Order
public class Customer
{
public int ID { get; set; }
public string Name { get; set; }
}
public class Order
{
public int ID { get; set; }
public DateTime DeliveryDate { get; set; }
public Customer Customer { get; set; }
}
sowie ein View-Model welches jeweils eine Liste von Customer und Order-ViewModels hält:
public class MainViewModel : ObservableObject
{
public ObservableCollection<CustomerViewModel> Customers { get; set; }
public ObservableCollection<OrderViewModel> Orders { get; set; }
public MainViewModel()
{
Customers = new ObservableCollection<CustomerViewModel>();
Orders = new ObservableCollection<OrderViewModel>();
CreateTestData();
}
private void CreateTestData(){ ... }
here the customer viewmodel
public class CustomerViewModel : ObservableObject
{
private Customer _model;
public CustomerViewModel( Customer customer )
{
_model = customer;
}
public int ID
{
get { return _model.ID; }
set { _model.ID = value; NotifyPropertyChanged(() => ID); }
}
public string Name
{
get { return _model.Name; }
set { _model.Name = value; NotifyPropertyChanged(() => Name); }
}
}
und das Order View Model:
public class OrderViewModel : ObservableObject
{
private Order _model;
public OrderViewModel( Order order )
{
_model = order;
}
public int ID
{
get { return _model.ID; }
set { _model.ID = value; NotifyPropertyChanged(() => ID); }
}
public CustomerViewModel Customer
{
get { ... }
set { ... }
}
}
Hat man wie zu sehen ist ein kleines Problem bei bei dem Customer Setter. Der CustomerSetter ist im ViewModel vom Typ CustomerViewModel, im Model, das gewrappt wird, ist das Targetproperty vom Type Customer. Das bedeutet ich kann das so nicht einfach durchreichen.
Habt ihr eine Idee, wie ich das Problem, am liebsten innerhalb des Properties, lösen kann? Bitte beachtet, dass der Customer auch null sein kann. Also ein Suchen in irgendwelchen Listen kommt nicht in Frage.
Greetings.
Hab das nun so gemacht.
Mit String funzte das nicht.
DataRowView Value = (DataRowView)this.bspBindingSource.Current;
MessageBox.Show(Value.Row[1].ToString());
Danke für die Hilfe
Gruß Alex
Womit zeichnest du denn?
Für Fonts sieht Graphics.MeasureString() gut aus (http://msdn.microsoft.com/de-de/library/6xe5hazb(v=VS.80).aspx), für SpriteFonts funktioniert SpriteFont.MeasureString() (http://msdn.microsoft.com/de-de/library/bb464128.aspx).
Ansonsten einfach mal nach anderen MeasureString()-Funktionen suchen: http://social.msdn.microsoft.com/Search/de-DE?query=measurestring&beta=0&ac=8
Allerdings, wie gesagt, passiert genau dann der kommentarlose Abflug. Aber nur, wenn ich die .dll aus der C++-Anwendung laufen lasse
Dann tue eben mit F11 in die C# Dll reinsteppen!
Edit:
Ev. fehlt Dir das: http://www.c-plusplus.net/forum/282645
Girly schrieb:
Gibt es für C# eine Möglichkeit die Ribbon Oberfläche aus Office 2010 zu verwenden?
Ja, versuchs mal mit WPF. Hier wurde das Thema schonmal kurz angesprochen:
http://www.c-plusplus.net/forum/286013
Grüße
Breaker
hustbaer schrieb:
Firefighter schrieb:
Aber mithalten tut der ILSpy noch lange nicht.
Vermutlich.
Für die meisten aber auch vermutlich vollkommen ausreichend.
Das hab ich ja auch nie bezweifelt Ich benutze es auch seit dem ich das mit Reflector gehört habe. Wollte nur dem "genauso gut" etwas den Wind nehmen, weil ich das für nicht ganz korrekt hielt.