Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

11

12.08.2015, 15:20

Ja in VS2013 kann man bei "Vorhandene Elemente" auch "C++ Librarys anhängen". Die muss man dann einfach auf "Kopieren, wenn neuer" stellen und dann geht das.


Das hat dann aber nichts mit dem Compiler zu tun. Das ist ein einfaches kopieren der Datei und das erledigt das Buildsystem (MSBuild) während des Buildvorgangs.

Und nur weil die Datei dann da liegt, heißt das noch lange nicht, dass du damit auch was anfangen kannst, denn wie BlueCobold schon geschrieben hat, musst du dann die ganzen Sachen noch importieren.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

12.08.2015, 15:31

Stichwort MSBuild, gibt es einen Grund die ganzen Compiler-Commands von Hand auszuführen statt ein MSBuild über die vorhandene Solution laufen zu lassen?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

13

12.08.2015, 19:00

Zitat

Das hat dann aber nichts mit dem Compiler zu tun. Das ist ein einfaches kopieren der Datei und das erledigt das Buildsystem (MSBuild) während des Buildvorgangs.

Falls du das so meinst das man beim Compiler einfach die C++ Librarys nicht angeben soll und nur die Libs in den Ordner mit der Assembly un den anderen .NET-Dateien im Compiler kompilieren soll, Dann funktioniert das nicht.

Kommt trotzdem dieser "BadImageFormat"-Fehler.

14

12.08.2015, 19:46

/addmodule will ja auch netmodules. Wie schon gesagt importierst du native dlls im c# programm selbst.

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

15

13.08.2015, 09:46

Willst du wirklich die C++ Library nur kopieren?

Denn unmanagend C++ Libaries in C# zu benuten ist etwas komplexer als ein einfaches kopieren.
Interop über eine C++/CLI-Library wurde ja schon genannt. Es gibt noch zwei weitere Möglichkeiten mit Stärken und Schwächen.

Aber ja, ich kenne auch die Problematik der Buildprozess alle managed Abhängigkeiten direkt in das OutDir schreibt, aber die unmanaged Abhängigkeiten nicht.
Das nervt etwas.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

16

13.08.2015, 12:55

Ja ich meine unmanaged C++ (also ohne CLI). Was sind denn die zwei weiteren Möglichkeiten?

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

17

13.08.2015, 15:46

- COM Interop, aber da ich damit täglich im Beruf zu tun hab kann ich dir aus eigener Erfahrung versichern, dass du dir die anderen Möglichkeiten ansehen willst.

- P/Invoke. Eine Einführung findet man hier: http://www.codeproject.com/Articles/4032…ial-Basics-Part Und ja, man kann es auch mit C++ benutzen.
Man sagt Interop über C++/CLI kann zur Laufzeit schneller sein als über P/Invoke. Aber C++/CLI steht einem nicht in Mono und auch nicht in CoreCLR zur Verfügung, P/Invoke hingegen schon. Ausserdem könnte man das Erzeugen des Interop Codes per SWIG (http://www.swig.org/) automatisieren. Aber SWIG korrekt zu konfigurieren ist auch nicht unbedingt einfach.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

Werbeanzeige