Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Blacal
Thema: AccessViolationException in externer C-lib
Am im Forum: Rund um die Programmierung

Hallo,

ich kämpfe gerade an einem großen Problem: Ich habe einen Wrapper in C++/CLI für eine C-Bibliothek geschrieben, funktionierte ansich auch immer super.

Seit kurzem habe ich festgestellt, das manchmal beim Aufruf einer Methode eine AccessViolationException auftritt, was ja ansich bedeutet, dass da drinnen irgendwas nicht korrekt mit dem Speicher umgeht.

Nach langem rumprobieren habe ich eine kleines C++/CLI testprogrämmchen geschrieben, welche genau das selbe macht wie mein C# Programm, sprich es greift auf die Library zu, nur halt ohne Wrapper. Hier habe ich bis jetzt noch nie eine Exception bekommen. Das seltsame ist jetzt, wenn ich dieses kleine Testprogrämmchen als dll in ein C# programm einbinde und lediglich die main methode aufrufe, kommt die Exception nach einer Weile wieder.

Meine Vermutung ist jetzt, dass die CLR da irgendeinen Vorgang in der C-lib sieht (und eine Exception auslöst), was das C++ Programm alleine nicht merkt. Problem ist aber nur, dass ich im Moment diese Library umbedingt in C# brauche. Deswegen diese kuriose Frage: Kann man diese Sicherheitsprüfung(en) irgendwie abschalten?

Gruß
Roland

Thema: Was bedeutet "`1" am Ende eines Typnamens?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Soweit ich weiß heist das, dass es sich um einen Generic mit einem Typparameter handelt

Thema: Prüfen, ob Dienst läuft
Am im Forum: Netzwerktechnologien

Das fang ich natürlich mit dem try/catch auf, ist ja auch nicht das Problem.

Generell kann man eigendlich auch garnet von Problem sprechen, funktioniert ja alles auch super. Was mich halt stört, ist dass ich nur durch ne Exception mitkriege, dass der Dienst grad nicht läuft. Was ich suche ist quasi eine CheckEndPoint Methode oder sowas.

Thema: Prüfen, ob Dienst läuft
Am im Forum: Netzwerktechnologien

Hallo,

mal eine kurze Frage. Ich benutze in meiner Anwendung WCF, um mit einem Windows-Dienst zu kommunizieren.
Das ganze läuft über ein NetNamedPipeBinding, also sprich der Dienst horcht beispielsweise an der addresse net.pipe://localhost/meindienst.
Problem ist jetzt, dass immer eine EnpointNotFoundException hoch kommt, wenn der Dienst gerade nicht läuft. Gut, is ansich logisch, nur gefällt mir das nicht das da in meinem Programm laufend Exceptions rumfliegen. Gibts da ne möglichkeit ohne Exception zu schaun, ob ich diesen Dienst erreichen kann, oder nicht?

Gruß
Roland

Thema: Ordner, auf den alle Benutzer zugriff haben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

ok, das mit den Dateiberechtigungen ändern wär ne möglichkeit. Wie funktioniert es denn da mit UAC? Darf hier der Besitzer an den Rechten ändern wie er will, oder braucht man für bestimmte Änderungen Administratorrechte?

@kleines_eichhoernchen:
Ein Konfigurationsserver ist für mich keine Option, da das betroffene Programm bei unterschiedlichsten Kundenkonfigurationen laufen und deswegin sowenig abhängigkeiten wie möglich haben sollte.

Thema: Ordner, auf den alle Benutzer zugriff haben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja, ich weiß. Wie gesagt, das ist auch nicht das Problem.
Problem ist, dass wenn ein user eine Konfigurationsdatei reinschreibt, kann der andere Sie ohne Adminrechte nicht mehr überschreiben.

Gibts da eine gescheite Lösung dafür, das da auch jeder Schreibrechte hat?

Thema: Ordner, auf den alle Benutzer zugriff haben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

kurze Frage: Gibt es einen Ordner auf den alle Benutzer lese- und schreibzugriff haben?
Ja, ich weiß. Environment.SpecialFolder... . Das ist bis jetzt meine Lösung. Problem ist nur, wenn jetzt beispielsweise ein Benutzer mit Administratorzugriff dort eine Datei anlegt, kann die ein anderer Benutzer ohne schon wieder nicht zum Schreiben öffnen.

Das ganze Problem kommt zustande, weil ich ein Programm habe, welches von mehreren Benutzern auf einem PC verwendet wird. Allerding verwenden alle die selbe Konfiguration. Jeder Benutzer soll die Konfiguration auch ändern können.

Gruß
Roland

Thema: Ausführen als Admin
Am im Forum: Rund um die Programmierung

Hallo,

also ich hab das so gemacht:

SecurityIdentifier id = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
FileSystemAccessRule rule = new FileSystemAccessRule(id, FileSystemRights.FullControl, AccessControlType.Allow);
Gut, vieleicht etwas naiv, das so einzustellen, aber auf diese Weise gibts du jedem am PC vollzugriff auf diese Dateien.

Du kannst das ganze aber doch etwas einschrenken. In der WellKnownSidType enumeration gibts genug Möglichkeiten.

Mfg
Blacal

Thema: Ausführen als Admin
Am im Forum: Rund um die Programmierung

Dann musst du die Zugriffsberechtigungn auf die Dateien / Ordner so ändern, damit auch dein Programm ohne adminrechte drauf zugreifen kann.

Im System.Security namespace (oder ein darunterliegender) oder in System.IO müsste es Klassen geben, mit welchen du das machen kannst. Aber selbst dazu brauchst du Admin-Rechte, allerdings nur an dem Zeitpunkt, an dem du die Zugriffsberechtigungen änderst. Veileicht kann man ja auch schon etwas im Setup-Projekt einstellen.

Thema: Ausführen als Admin
Am im Forum: Rund um die Programmierung

Hallo,

ich denke, dieser Thread müsste dir helfen:
Vista UAC und C# - Wie geht man vor?

Mfg
Blacal

Thema: Mit DirectX 2 unabhängiges Bereiche zeichnen (mit seperater Zoomfähigkeit)
Am im Forum: Grafik und Sound

ok, tschuldige.

Soweit ich weiß macht die Sprite Klasse genau das, was du oben schon beschrieben hast. Zwei Polygone und dann ne Textur drauf. Sollte aber etwas einfacher von der Handhabung her sein.

Das mit den zwei getrennten Bereichen ist scho schwieriger. Wenn du das umbedingt mit DirectX machen willst, solltest du jeden Bereich als eigenes Control abbilden und einfach abwechselnd darauf zeichnen.

Ich glaub da gibts bei Device.Render ne überladung, wo du ein Control mitgeben kannst (ist aber langsam). Der schnellere und saubere Weg wären SwapChains, ist aber ungleich komplizierter.

Thema: Mit DirectX 2 unabhängiges Bereiche zeichnen (mit seperater Zoomfähigkeit)
Am im Forum: Grafik und Sound

Hallo tonka,

kommt jetzt drauf an, was du genau mit "DirectX 2" meinst. Falls Managed DirectX oder XNA, würd ich mir mal die Sprite Klassen anschaun, damit müsste es leichter gehn.

Thema: Vista UAC und C# - Wie geht man vor?
Am im Forum: Rund um die Programmierung

Zitat
Soviel ich weiß können das andre Anwendungen auch nicht, bzw. mir ists nie aufgefallen, dass das gehen sollte. Zwei Beispiele:

Ich hab da jetzt haupsächlich an den Windows Explorer gedacht. Der fägt immer nach, wenn man etwas unerlaubtes machen will, und macht es dann ohne neuzustarten (jedenfalls soweit ich das in Erinnerung hab. Ich habs privat deaktiviert .
Zitat
Du könntest ja, wenn Admin Rechte benötigt werden einen extra Prozess mit Admin rechten starten und diesen so lange laufen lassen wie dein Programm läuft.
Alle Befehle die Adminrechte brauchen würden diese dann über den Adminprozess ausführen.
Zitat
AntiVir: Um die Lizenzdatei zu installieren, sind admin Rechte notwendig. Es wird dazu dann ein zweiter Prozess des gleichen Programms geöffnet, der nur den Dialog zum Lizenzdatei-Installieren anzeigt.

Ok, dann werd ich das auch so machen. Sollte ja eigendlich auch kein größeres Problem sein. Danke für die schnelle Hilfe

Gruß
Roland

Thema: Vista UAC und C# - Wie geht man vor?
Am im Forum: Rund um die Programmierung

hm... hilft mir jetzt eigendlich nicht wirklich weiter. Problem daran ist, dass man so wie in diesen Artikel beschrieben die komplette Anwendung neu starten muss, um Admin Rechte zu bekommen. Nicht gerade die Idealläsung.

Wie schon gesagt, mein Ziel ist es so hinzubekommen: Ich klicke auf einen Button der Admin-Rechte braucht -> Benutzer bestätigt -> alles läuft normal weiter, nur halt mit Admin-Rechten.

Ich bin mir auch sicher, dass das Andere Anwendungen so können. Wenn technisch so nicht möglich, vielleicht gibts da Tricks?

Thema: Vista UAC und C# - Wie geht man vor?
Am im Forum: Rund um die Programmierung

Hallo,

ich habe gerade ein Problem mit dem UAC von Windows Vista (Das Rechtesystem).
In meiner Anwendung werden zwar allgemein keine Administratorrechte benötigt, nur gibt es irgendwo 2 Buttons, die eben solche benötigen, und zwar um einen Dienst zu installieren und wieder zu deinstallieren. Diese werden aber nicht offt benötigt.

Nun wollte ich das so machen wie andere Vista Programme wie der Explorer auch: Starten ohne Administratorrechte, und erst nach Adminrechten abfragen, sobald der Benutzer diese auch braucht. Sprich, sobald er den Dienst installieren / deinstallieren möchte.

Meine Frage ist nun, wie man da mit C# am besten vorgeht.

Ich habe schonmal versucht, einen eigenden Prozess für diesen zweck zu starten, der Adminrechte braucht. Funktioniert auch super. Problem ist nur, dass man gegebenenfalls öffters nach Adminrechten gefragt wird. Beispielsweise wenn ich zuerst auf deinstallieren, und danach auf installieren klicke.

Mfg

Thema: [gelöst] DLL Import Probleme mit Callback-Funktion
Am im Forum: Rund um die Programmierung

Normalerweise verteckt sich das in den Projekteigenschaften bei Erstellen. Da steht normalerweise irgendwo Zielplatform, da kannst du dann zwischen mehereren auswählen.

Falls du es da (so wie ich bei mir zu hause) nicht findest, kannst du das auch über den Konfigurationsmanager bei Platform einstellen. Falls x86 noch net da is, einfach neu anlegen.

edit: Grad hab ich mir den neuen Delegaten von dir noch angeschaut. 64 bit heist nicht das die Zahlen 64 bit groß sind, sondern das die Adressen 64 bit groß sind.

Thema: [gelöst] DLL Import Probleme mit Callback-Funktion
Am im Forum: Rund um die Programmierung

Hallo,
hast du dein Projekt dann auch auf 32Bit kompiliert (nicht AnyCPU)? Denn bei AnyCPU nutzt der dann den prozessortyp, der tatsächlich drinn ist, also bei dir 64 Bit. Somit vertragen sich warscheindlich deine Assembly und die dll nicht ganz.
Das könne dein Problem sein.

Mfg

Thema: [gelöst] verweis auf andere assembly in xaml
Am im Forum: GUI: WPF und XAML

hallo,

ich habs heute mal mit der Pro Version von VisualStudio ausprobiert, und da liefs einwandfrei. Anscheinend stimmt da bei der Express Version noch was nicht.

Danke für eure schnelle Hilfe.

Thema: [gelöst] verweis auf andere assembly in xaml
Am im Forum: GUI: WPF und XAML

In den Projektverweisen ist es drinnen, ja. Ich sag ja, das Problem ist rein designerseitig. Kompilieren und ausführen kann ich ohne Probleme.

Mal anders herum gefragt: Funktioniert sowas bei euch?

Thema: [gelöst] verweis auf andere assembly in xaml
Am im Forum: GUI: WPF und XAML

ganauso, wie die anderen deklarationen auch:


xmlns:data="clr-namespace:MyWPFApp.Data;assembly=MyWPFApp.Data"

Die Fehlermeldung kommt auch direkt in der Zeile:
Assembly MyWPFApp.Data not found. ...

achja, die Projekte befinden sich alle in der selben Projektmappe (vieleicht mag er ja das nicht?)

Thema: [gelöst] verweis auf andere assembly in xaml
Am im Forum: GUI: WPF und XAML

Hallo,

ich probiere grad ein wenig mit wpf / xaml rum, und bin an folgendes Problem gestoßen:

Ich habe eine Listbox, in welcher ich per Datenbindung eine Liste von Objekten der Klasse Person anzeigen will. Diese Klasse Person war anfangs in der selben assembly wie das ganze wpf zeugs. Funktioniert wunderbar.
Danach habe ich ein neues Projekt vom typ ClassLibrary angelegt, und die Klasse Person dorthin verschoben. Dann noch einen entsprechenden Verweis in der Hauptassembly gesetzt, usw. Kompiliert auch. Problem is nur, dass der Designer jetzt immer die Fehlermeldung bringt, dass er diese neue Assembly nicht findet (ich hab sie korrekt in der xmlns deklaration angegeben). Aber davon unabhängig kann ich kompilieren, und das Programm läuft ohne Fehlermeldung.

Ist das ein Fehler am Designer, oder muss ich meine Assemblies irgendwie besonders kennzeichnen, damit sie der Designer findet?

Ich benutze VisualStudio 2008 Express Edition, Windows Vista x64 und .Net 3.5.

danke im vorraus

Thema: Sichtbarkeit von Objekten
Am im Forum: Grafik und Sound

Servus

Das mit der Reihenfolge ist kein großes Problem. Du musst nur den Depthbuffer (Tiefenbuffer) aktivieren.

                m_presentParams.EnableAutoDepthStencil = true;
m_presentParams.AutoDepthStencilFormat = DepthFormat.D16;

So merkt sich DirectX für jeden gerenderten Pixel zusätzlich dessen Tiefeninformation, und gleicht neue Pixel damit ab.

Du musst aber auch dein device.Clear erweitern:

                    m_device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.White, 1.0f, 0);

Mfg Blacal

Thema: Panel / Usercontrol als MdiContainer?
Am im Forum: GUI: Windows-Forms

Da dieses Contorl noch in andere Fenster eingebunden werden soll, wie z.B. SAP etc

Thema: Panel / Usercontrol als MdiContainer?
Am im Forum: GUI: Windows-Forms

In einer UserContorl geerbenten klasse hat man kein MDIContainer und genau das ist mein Problem. Falls ich dich jetzt falsch verstanden haben sollte bitte ich um ein Code Beispiel.

mfg Blacal

Thema: Panel / Usercontrol als MdiContainer?
Am im Forum: GUI: Windows-Forms

So sieht der aktuelle Code aus, der Steht in einer Klasse die von UserControl geerbt hat.


MdiClient mc = new MdiClient();
            mc.Location = new System.Drawing.Point(0, 0);
            mc.Name = "mdiContainer";
            mc.Size = new System.Drawing.Size(400, 600);
            mc.TabIndex = 0;
            mc.Visible = true;
         

            Form f = new Form();
            f.MdiParent = mc;
            f.ShowDialog();

Folgender Fehler tritt auf:

Fehler 1 Eine implizite Konvertierung vom Typ "System.Windows.Forms.MdiClient" in "System.Windows.Forms.Form" ist nicht möglich. 27 MDI-TEST

Kannst du mir da weiter helfen???
Ich hoffe das ich diesmal für dich die Frage Deutlich genug gestellt habe

Thema: Panel / Usercontrol als MdiContainer?
Am im Forum: GUI: Windows-Forms

ja gut aber wie kriege ich in ein UserContro ein MDI rein??? Ich habe gelesen das ich mir mit MDIClient einen erzeugen kann aber wie ich dem dann die Neuen Formen zuweise, weis ich nicht, da es mir wenn ich es nach dem Standart mache immer einen Fehler raushaut.

Thema: Panel / Usercontrol als MdiContainer?
Am im Forum: GUI: Windows-Forms

Servus

Kurze Frage: Gibt es eine möglichkeit, ein Usercontrol oder Panel zu einen MdiContainer zu machen?

Ich brauch das, weil ich in einem ActiveX Steuerelement einen Mdi Container brauche.