Benutzer mit den meisten Antworten
Zu einem bestehenden C# Projekt ein C++ Projekt hinzufügen ?

Frage
-
Hallo
ich habe ein bestehenden Haupt C# Projekt und will datzu ein weiteres C++ DLL-Projekt hinzufügen, so daß man mit einem Dateiaufruf den ganzen Projekt in VS öffnet und gleichzeitig der DLL automatisch in den C# \bin Ordner kopiert wird.
Ist dies überhaupt möglich und wie ?
MFG
- Bearbeitet ati.sah Montag, 15. Dezember 2014 14:56
Antworten
-
Hallo,
dein Vorhaben sollte ohne Probleme realisierbar sein. Markiere im Projektmappen-Explorer die Projektmappe, den obersten Knoten, mache einen Rechtsklick darauf und füge ein neues- oder vorhandenes Projekt über das Hinzufügen-Menü zur Projektmappe hinzu.Nun kannst du beispielsweise in den Erstelloptionen der C++-DLL das Ausgabeverzeichnis entsprechend anpassen.
Alternativ kannst du auch in den Pre- oder Post-Build-Events des C#-Projekts (unter Projekt > Eigenschaften > Buildereignisse einstellbar) die DLL kopieren. Beachte in beiden Fällen, das der Ausgabeordner für C# schon erstellt sein muss, weswegen die DLL nach dem Erstellen des C#-Projektes kopiert werden muss. Passe daher ggf. die Projektbuildreihenfolge im Projekt-Menü an.Tom Lambert - C# MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert ati.sah Dienstag, 16. Dezember 2014 12:57
-
Lege dazu ein Projekt auf normale Weise an, und ändere dann in dem c++ Projekt das Ausgabeverzeichnis der .dll. (Projektmappenexplorer->Projekt wählen->Rechtsklick->Eigenschaften...)
Dann kannst du auf diese C++ Dll per P/Invkove:
[DllImport("yourdll.dll")]
(C) 2014 Thomas Roskop
- Als Antwort markiert ati.sah Dienstag, 16. Dezember 2014 12:57
Alle Antworten
-
Hallo,
dein Vorhaben sollte ohne Probleme realisierbar sein. Markiere im Projektmappen-Explorer die Projektmappe, den obersten Knoten, mache einen Rechtsklick darauf und füge ein neues- oder vorhandenes Projekt über das Hinzufügen-Menü zur Projektmappe hinzu.Nun kannst du beispielsweise in den Erstelloptionen der C++-DLL das Ausgabeverzeichnis entsprechend anpassen.
Alternativ kannst du auch in den Pre- oder Post-Build-Events des C#-Projekts (unter Projekt > Eigenschaften > Buildereignisse einstellbar) die DLL kopieren. Beachte in beiden Fällen, das der Ausgabeordner für C# schon erstellt sein muss, weswegen die DLL nach dem Erstellen des C#-Projektes kopiert werden muss. Passe daher ggf. die Projektbuildreihenfolge im Projekt-Menü an.Tom Lambert - C# MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert ati.sah Dienstag, 16. Dezember 2014 12:57
-
Lege dazu ein Projekt auf normale Weise an, und ändere dann in dem c++ Projekt das Ausgabeverzeichnis der .dll. (Projektmappenexplorer->Projekt wählen->Rechtsklick->Eigenschaften...)
Dann kannst du auf diese C++ Dll per P/Invkove:
[DllImport("yourdll.dll")]
(C) 2014 Thomas Roskop
- Als Antwort markiert ati.sah Dienstag, 16. Dezember 2014 12:57
-
Hallo, vielen dank
das Hinzufügen des P1(C#, Startprojekt) und P2(C++) zu P0 kein Problem. Der Ordneraufbau: c:\P0\P1, c:\P0\P2.
Nun um beide Projekte aus dem Projektroot P0 starten zu können, habe ich den P1.sln in den P0 verschoben und angepaßt. Er startet aber er fügt im c:\P0-Ordner (P1.sdf, ipch, P1.opensdf) was sind das ?
normalerweise sollte er in dem Ordner (c:\P0\P1, c:\P0\P2, P1.sln) haben.
Alles andere benötigte Dateien besorgt der P1 sich automatisch vom P2 ?
MFG
- Bearbeitet ati.sah Dienstag, 16. Dezember 2014 07:15
-
Hallo,
C++ Projekte erzeugen einige andere Dateien, in anderen Ordnern. Was diese genau bedeuten sollte in der MSDN stehen, ich weiß nur, das diese sowieso immer neu angelegt werden (SDF usw.).In dem Root-Ordner sind nun die Ordner für die einzelnen Projekte sowie die Projektmappendatei (SLN), Benutzereinstelungsdatei (SUO) und vielleicht noch etwas C++ spezifisches (Beispielsweise ein Debug- oder Release-Ordner) enthalten. Das umzustruktorieren wird dir nichts bringen, sollte aber i.d.R. in den Projekteinstellungen gehen.
Die .NET Projekte erkennen die anderen .NET Dateien, die sie benötigen. Diese werden automatisch mit kopiert. Die C++-DLL beispielsweise wird nicht mit kopiert, da hier die Abhängigkeit erst zur Laufzeit erkennbar wird. Deshalb der Hinweis auf die Build-Events.
Wichtig ist, dass am Ende alles im selben Ordner liegt.Tom Lambert - C# MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets