Autor Beitrag
behbeh
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20


Delphi 7
BeitragVerfasst: Di 03.03.09 12:35 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private void DatabaseSaveClick(object sender, EventArgs e)
{
   using(DbConnection conn = new DbConnection(myConnectionString)) {
      //  mach was mit der DbConnection
   }  //  jetzt wird sie automatisch aufgelöst
}


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.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
//  statt ausführlich (und bei allen einzelnen Controls):
public class MainForm : System.Windows.Forms.Form

//  geht es kürzer:
using System.Windows.Forms;   //  am Anfang der Datei, vor dem aktuellen Namespace
//  und dann nur noch:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20


Delphi 7
BeitragVerfasst: 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(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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20


Delphi 7
BeitragVerfasst: 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