Also habe ich seit einiger Zeit eine C# -Anwendung unter Visual Studio 2015 erstellt. Zu Beginn habe ich Klassen geschrieben, um über USB-Bibliotheken des Herstellers mit Hardware zu interagieren, und jetzt bin ich auf der höheren Ebene und schreibe Kurse für MatLab-Datenverarbeitung.Kann die Anwendung nicht unter Any CPU-Plattform kompiliert werden, wenn eine bestimmte x64-Bibliothek verwendet wird?
Als ich die Klassen implementierte, um mit der Hardware zu interagieren, fand ich heraus, dass einige der Bibliotheken auf x86 oder x64 ausgerichtet waren und das Kompilieren gegen die eine oder andere Plattform die Nutzung der Bibliotheken, die die alternative Plattform nutzten, zunichte machte. Ich fand heraus, dass wenn ich die Any-CPU-Plattform benutzte, die meine Anwendung kompilieren würde, was mich einfach zufrieden machte und ich zu der Zeit nicht weiter hineingelesen habe.
Dies ist möglich richtig? Sie können x86 und x64 Bibliotheksnutzung mischen? Oder habe ich die Dokumentation ernsthaft falsch gelesen?
Obwohl jetzt ist ich zu dem Punkt gekommen, dass ich eine Bibliothek MWArray
genannt verwenden möchte, die von MathWorks zur Verfügung gestellt wird, um Daten zu und von Matlab-Skripte zu übertragen, die Bibliotheken auf .NET über den MATLAB Compiler SDK Toolbox kompiliert werden.
Nach ein paar Tests habe ich festgestellt, dass die MWArray
Bibliothek nur unter x64 kompilieren wird (obwohl ungeprüft stelle ich mir vor, wenn Sie eine x86-Version hätten, würde es das gleiche tun).
Sehen, wie ich gerade x64 und x86-Bibliotheken erfolgreich verwendet, was macht diese Bibliothek speziell, dass es nicht kompilieren unter Any CPU?
können Sie einige 32-Bit-Assemblys mischen, um auf einem 64-Bit-Betriebssystem zum Beispiel mit dem Oracle.DataClient die 32-Bit-Version läuft auf 64-Bit-Betriebssystem, indem Sie auf x86. – MethodMan
Sie können 32-Bit-Prozesse auf einem 64-Bit-Betriebssystem ausführen, aber Sie können nicht 32-Bit und 64-Bit * im selben Prozess * mischen. –
nach dem Lesen Ihrer Antwort wieder .. Sie sind auf jeden Fall richtig .. Ich habe die ursprüngliche Frage falsch verstanden cheers :) '+ 1' – MethodMan