Entwickler-Ecke
C# - Die Sprache - using bei einer winanwednung
behbeh - Di 03.03.09 12:35
Titel: using bei einer winanwednung
Hallo,
ich weiss gar nicht, ob ich hier richtig bin, weil ich noch Anfänger mit C# bin.
Mein Problem:
Ich habe ein fertiges Consolen-Programm eines AD-Wandlerkarten Herstellers(aus der SDK).
Das läuft auch, wenn ich es kompiliere.
Jetzt möchte ich aber eine "WINFORM-Anwendung" daraus machen, also die Daten grafisch darstelen, wie ein Osziloskop.
Was schon nicht mehr klappt ist per using Anweisung die Funktionen der Karte einzubinden.
Im consolen-programm steht da : "using GxxxFunctions;" nach den anderen Using Functionen(system, usw.)
Wenn ich in meinem neuen WINFORM Programm diese Anweisung hineinschreibe, klappt das nicht mehr.
Mir ist aufgefallen, das im Solution-Explorer bei der Consolen-Anwendung in References diese GxxxFunctions mit aufgeführt ist, aber meiner nicht.
Wie komme ich die da hinein, oder wie muss ich vorgehen dabei.
Für eine Antwort vielen Dank im Voraus
Bernd
JüTho - Di 03.03.09 13:31
Hallo Bernd,
using hat zwei Bedeutungen:
Innerhalb des Codes ist es die Kapselung einer bestimmten Instanz einer Klasse, die nur vorübergehend innerhalb einer Methode genutzt wird und sofort nach Erledigung aufgelöst wird. Dies ist ein Standardverfahren bei allen Klassen, die
IDisposable haben:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void DatabaseSaveClick(object sender, EventArgs e) { using(DbConnection conn = new DbConnection(myConnectionString)) { } } |
Am
Anfang einer Code-Datei ist sie nur eine Vereinfachung, damit ein
Namespace nicht immer geschrieben werden muss. Ein "qualifizierter" Klassenname besteht nämlich immer aus dem Namespace und dem Klassennamen.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| public class MainForm : System.Windows.Forms.Form
using System.Windows.Forms; public class MainForm : Form |
Damit ein Namespace eingebunden werden kann, wird immer eine
Referenz (Verweis) auf die
Assembly (DLL oder EXE) benötigt, in der die betreffende Klasse definiert ist. (Ausnahme ist natürlich, dass die Klasse in derselben Assembly in einer anderen Quelldatei steht.)
| Zitat: |
| Wie komme ich die da hinein, oder wie muss ich vorgehen dabei. |
Rechtsklick mit der Maus im Projekt-Explorer auf das Projekt.
Viel Erfolg! Jürgen
PS. using ist etwas Spezielles von C#, das ist also das richtige Unterforum.
behbeh - Di 03.03.09 20:02
Hallo Jütho,
diese Verfahren kenn ich von Delphi. Dann muss man nicht immer die ganze Function schreiben, ist mir schon klar, aber leider bin ich zu blöd.
Die Functionen stehen in einer DLL, und wie ich schon schrieb, steht in dem Consolen Programm die Anweisung "using GageFunctions". Das ist alles, ich finde auch keinen Bezug auf die DLL. "Gage" ist die Firma, die die AD Karte baut(
http://www.gage-apllied.com).
Ich habe auch schon versucht bei "Verweise/References" mit hinzufügen die DLL zu finden, geht nicht.
Wenn Du noch einen Tip hast?
Vielen Dank
Bernd
JüTho - Di 03.03.09 20:22
Notfalls musst Du zuerst mit TotalCommander oder dem Explorer die DLL suchen. (Ich hoffe jedenfalls, dass es sich auch wirklich um eine NET-Assembly handelt; sonst wird es komplizierter - das Stichwort für die Suche lautet P/Invoke.) Dann musst Du über den Rechtsklick in die Liste der NET-Assemblies gehen; dort gibt es verschiedene Gruppen in Tabs: die System-eigenen im GAC, die Solution-eigenen und per Durchsuchen alle anderen.
Jürgen
behbeh - Mi 04.03.09 10:20
Hallo,
das war jetzt echt schwer. Aber ich habe es geschafft.
Ich habe mir im Original Projekt diesesn Pfad aus den Eigenschaften von GageFunctions kopiert und dann im anderen Projekt,
da wo ich die Functionen benutzen möchte, mit rechte Maustaste bei References-> ADD References -> bei Browse unter Dateiname diesen Pfad eingetragen, und siehe da, plötzlich steht drin unter References. Jetzt mal schauen, ob die Functionen auch funktionieren im Programm.
Pfad:
C:\WINDOWS\assembly\GAC_MSIL\GageFunctions\1.2.0.0__14cc77c92f479116\GageFunctions.dll
Da kommen bestimt noch eine Menge Fragen..
Bis Dann
Danke nochmal
Bernd
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!