Assemblyproblem bei Cpp CLI
Programm findet Assembly nicht
Ich habe vor kurzem Antme! für mich entdeckt, da ich aber lieber mit C++/CLI als mit C# arbeiten will und die orginale C++/CLI - Version wohl nirgens mehr runterladbar ist (hab keinen funktionierenden Link gefunden), hab ich die C# Vorlage in C++/CLI umgeschrieben und die passenden Assemblies eingebunden. Wenn ich jetzt aber Antme.exe starte, sagt er mir, ich würde externe Assemblies einbinden und sobald ich die Simulation beginne, gibt's die Fehlermeldung: "... SpielerCPP.dll oder eine Abhänigkeit davon wurde nicht gefunden.
Ich bin mit meinem Latein echt am Ende.
Vielen Dank schon mal im vorraus!
PS: Ich hab die Datei im richtigen Ordner.
Ich habe vor kurzem Antme! für mich entdeckt, da ich aber lieber mit C++/CLI als mit C# arbeiten will und die orginale C++/CLI - Version wohl nirgens mehr runterladbar ist (hab keinen funktionierenden Link gefunden), hab ich die C# Vorlage in C++/CLI umgeschrieben und die passenden Assemblies eingebunden. Wenn ich jetzt aber Antme.exe starte, sagt er mir, ich würde externe Assemblies einbinden und sobald ich die Simulation beginne, gibt's die Fehlermeldung: "... SpielerCPP.dll oder eine Abhänigkeit davon wurde nicht gefunden.
Ich bin mit meinem Latein echt am Ende.
Vielen Dank schon mal im vorraus!
PS: Ich hab die Datei im richtigen Ordner.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 145796
Url: https://administrator.de/contentid/145796
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
10 Kommentare
Neuester Kommentar
Dieser Fehler kommt unglücklicherweise auch wenn zwar die dll da ist aber bspw. der Einsprungspunkt, also eine Funktion oder Klasse, falsch ist. Falsch heist hier bspw. ein Schreibfehler im Namen oder aber auch bei Angabe von manuellen Speicheradressen in der dll das diese abweichen.
Am besten ist wirklich einmal durch debuggen bis der Fehler entsteht, dabei immer merken welche Methode/Funktion oder Klasse gerade aufgerufen werden möchte und dann vergleichen mit dem Einsteigspunkt in der abhängigen dll.
Gut Schuß
VuuRWerK ;)
Am besten ist wirklich einmal durch debuggen bis der Fehler entsteht, dabei immer merken welche Methode/Funktion oder Klasse gerade aufgerufen werden möchte und dann vergleichen mit dem Einsteigspunkt in der abhängigen dll.
Gut Schuß
VuuRWerK ;)
Öhm, das einfach so "konvertieren" von C# nach C++/CLI klingt für mich ein wenig nach dem Fehler ;) Auch wenn die Sprachen sich syntaktisch ähnlich sind und sich augenscheinlich nur durch div. Operatoren wie ^ (Pointer auf ein verwaltetes Objekt, in C# implizit ohne extra Operator) oder dem Zusatz von "ref" in der Klassendeklaration um anzuzeigen das es ein von .NET verwaltetes Objekt sein soll. C++/CLI war eigentlich dafür gedacht natives C++ an das .NET Framework anzubinden um so bspw. die GUI zu implementieren bzw. um die GUI in C#/VB zu schreiben aber das Backend bleibt in C++ geschrieben.
Mich würde an der Stelle jetzt wirklich interessieren was Du alles so "umgeschrieben" hast aber ich denk das wird hier nicht mal eben in einen Post passen ;) Hast Du ggf. die Möglichkeit es hochzuladen? Dann kann ich da mal fix reinschauen um zu sehen ob Du ggf. noch mehr vergessen hast.
Nichtsdestotrotz denke ich ist es nicht die beste Lösung es einfach von C# nach C++/CLI umzuschreiben, aber sicherlich kann es funktionieren, wenn man Glück hat ;)
Gut Schuß
VuuRWerK ;)
Mich würde an der Stelle jetzt wirklich interessieren was Du alles so "umgeschrieben" hast aber ich denk das wird hier nicht mal eben in einen Post passen ;) Hast Du ggf. die Möglichkeit es hochzuladen? Dann kann ich da mal fix reinschauen um zu sehen ob Du ggf. noch mehr vergessen hast.
Nichtsdestotrotz denke ich ist es nicht die beste Lösung es einfach von C# nach C++/CLI umzuschreiben, aber sicherlich kann es funktionieren, wenn man Glück hat ;)
Gut Schuß
VuuRWerK ;)
Also ich hatte mal kurz ein wenig Zeit und habe mal die Vorlage und eine Demo Ameise (aTomZuckermeiser) in C++/CLI implementiert. Es kompiliert sauber, das AntME!-Hauptprogramm startet erstmal ohne Probleme. Problem ist jetzt das die Ameise erstmal nicht verwendet werden kann weil es von einem "unzulässigen" Assembly abhängt, nämlich "Microsoft.VisualC". Problem ist aber das dies die Kern-Komponente für C++/CLI ist. Man kann zwar über die Sicherheitseinstellungen von AntMe! Ameisen mit externen Assemblies zulassen aber spätestens beim starten der Simulation kommt der Fehler das die Minimalberechtigungen nicht ausreichen würden. D.h. man kann es zwar in C++/CLI implementieren und auch einbinden ins AntMe! aber nicht verwenden da es leider nicht unterstützt wird. An dieser Stelle müssten die Entwickler von AntMe! dies mit intigrieren damits geht.
Hier mal die Vorlage inkl. einer der Demo-Ameisen in C++/CLI: http://braincompiler.de/AntMe-CPP_CLI-Vorlage.zip
Wie gesagt, läd ohne Probleme aber man kann sie nicht benutzen weil C++/CLI nicht direkt von AntME! unterstützt wird und dafür extra Implementierungen von nöten sind. Ich habe mir zwar auch gleich die Sourcen von AntMe! gezogen und geschaut ob es eventuell mit ein paar Handgriffen getan ist aber dem scheint nicht so, leider. Man könnte sich ja mal an die Herren von AntMe! wenden und dies mal erfragen.
Gut Schuß
Christian ;)
Hier mal die Vorlage inkl. einer der Demo-Ameisen in C++/CLI: http://braincompiler.de/AntMe-CPP_CLI-Vorlage.zip
Wie gesagt, läd ohne Probleme aber man kann sie nicht benutzen weil C++/CLI nicht direkt von AntME! unterstützt wird und dafür extra Implementierungen von nöten sind. Ich habe mir zwar auch gleich die Sourcen von AntMe! gezogen und geschaut ob es eventuell mit ein paar Handgriffen getan ist aber dem scheint nicht so, leider. Man könnte sich ja mal an die Herren von AntMe! wenden und dies mal erfragen.
Gut Schuß
Christian ;)
Hm, das ist natürlich ärgerlich. Ansonsten schreib ich gern auch mal jemanden von AntMe! an und schicke im gleichen Atemzug die Beispiel-Implementierung zu das man quasi gleich noch ein wenig Zubrot hat. Werde auch noch die anderen Demo-Ameisen implementieren.
Hoffe sie nehmen es an und man kann dann AntMe! auch in C++/CLI verwenden.
Gut Schuß
Christian ;)
Hoffe sie nehmen es an und man kann dann AntMe! auch in C++/CLI verwenden.
Gut Schuß
Christian ;)
Hm, so einfach wie Tom es beschreibt funktioniert es leider nicht, wegen der Sicherheitsbeschränkungen von AntMe! ;)
Hättest Du was dagegen wenn ich mich einfach mal, bezugnehmend auf Deine E-Mail, an Ihn wende mit eben meiner Erkenntnis darüber und meiner Beispiel-Implementierungen?
Gut Schuß
VuuRWerK ;)
Hättest Du was dagegen wenn ich mich einfach mal, bezugnehmend auf Deine E-Mail, an Ihn wende mit eben meiner Erkenntnis darüber und meiner Beispiel-Implementierungen?
Gut Schuß
VuuRWerK ;)