C++ & .net

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Chrisber.

    Hi.
    Bei meinem nächsten Projekt muss ich zwingend auf Eigenschaften zurückgreifen, die mir nur C bzw. C++ bietet. Das Programm soll später auch Addons laden können. Nun meine Frage: Ist es möglich, dass ich aus meinem C-Programm heraus auch .NET Assemblies laden kann, um dann Funktionen aufzurufen? Wie läuft das ganze, wenn ich die Typen casten will? Die Typen in .NET sind ja nicht "nativ" so wie die in C nehme ich mal an.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Ja, aber Visual C++ ist eine IDE. Nicht mehr und nicht weniger. Damit bastel ich auch selber. Ich verwende aber kein C++/CLI, sondern eben "normales" ANSI-C bzw. C++. Und aus diesem heraus möchte ich (wenn möglich) .NET Assemblies laden.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Ich denke das passende Stichwort ist "CLR Hosting". Dieser Artikel sieht ganz vielversprechend aus.

    Ich hoffe du kannst damit etwas anfangen (und hast das nicht schon längst gewusst). ^^


    Ansonsten ließen sich die Managed Assemblies auch als COM-Objekte anmelden und mit native cpp laden. (oder? :huh: )
    Also ich hab mich mal in meinem Lieblings Nerdchan im Quakenet umgehört.
    Sie sagen alle, dass es nicht möglich ist .Net Libs in c++ zu nutzen.


    [19:56] <ZetaTwo> if the lib is something generic, there are probably c++ variants of it
    [19:57] <ZetaTwo> if the lib is win dependent
    [19:57] <ZetaTwo> then there is no reason to use c++
    [19:58] <ZetaTwo> basically, you can mix any .net lang in any way
    [19:59] <ZetaTwo> but you can't use them outside .net
    @ yeti: Wenn das wirklich so einfach ist, wie dort beschrieben, komme ich ja noch relativ gut weg :P
    @ Tsuyo: Danke. Wie ist der Name des Channels? "Cpp" jedenfalls nicht ^^

    Habe mir auch gerade überlegt, dass ich das eigentlich auch umdrehen könnte. Also die Anwendung in .NET schreiben und den benötigten Teil in C++ auslagern und dann via Windows Messages einfach Events auslösen, welche dann von der Anwendung abgefangen werden um sie dann nativ im .NET Event System weiterzuleiten. Das wäre wohl auch noch eine Möglichkeit.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Hi.
    Ich möchte halt die Möglichkeit bieten, dass man auch per .NET mein Programm erweitern kann, was eben nicht in .NET geschrieben ist - eben weil es viel einfacher wäre, besonders dafür, wo ich es brauche. Und seit wann kann man mit .NET COM-DLLs erstellen? :P

    Kurz zur Projektplanung: Einige kennen von euch vielleicht das STEAM Gameoverlay. Ich möchte so etwas in der Art auch entwickeln. Das ganze aber Open Source, mit Unterstützung für OpenGL, SDL und D3D (vorerst). Das ist mit .NET einfach nicht zu realisieren ;) Dann soll der Benutzer halt auswählen können, in welchen Spielen / Programmen mit Vollbildmodus er das Overlay nutzen möchte. Per Plugin können dann verschiedene Services in's Overlay eingebettet werden. Mich würde es zum Beispiel echt freuen, wenn man im Overlay dann ICQ und STEAM zusammen nutzen könne (Beispiel). Man könnte natürlich auch was für Winamp, foobar oder sonstige Programme Plugins entwickeln.

    Da das ganze halt schon etwas größeres ist, möchte ich es von vorne rein mit in die Planung einfließen lassen ;)

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Ui, hätte ich nicht gedacht. Egal, mich interessiert sowas trotzdem. Außerdem ist das da nicht Open Source :P
    Danke für den Link ^^

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Wenn du Plugins brauchst, ich versorg dich für Winamp :P

    /edit:
    Wie siehts eig mit den Anti Cheat systemen aus? Schlagen die nicht an wenn man n' Overlay über sein spiel hat?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Tsuyo“ ()

    Erstmal muss ich das ganze ja programmieren :P

    Kommt wohl auf das AntiCheat System an. Da ich aber nur die Grafikengine hooke (D3D, SDL oder OpenGL), und ein paar weitere Funktionen aus der WinAPI, z.B. SetCursorPos, GetCursorPos und GetAsyncKeySate, und nicht ins Spiel selber eingreife, denke ich nicht, dass was passiert. Zumindest von CS:S und CS1.6 weiß ich, dass VAC nicht bannt.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Ja ich weiß, aber ich hooke nicht in GoldSrc bzw. Source rein, das ist der Unterschied :P
    STEAM Overlay macht es auch nicht anders.

    Gruß
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.