![]() |
MS .NET Assembly als Win32 PE-Datei compilieren ?
hi,
Microsoft .NET Assemblys, egal ob EXE oder DLL Dateien, werden ja von C#/VB.NET nach MSIL übersetzt und dann in eine spezielle .NET Assembly. Gibt es Compiler/Tools, mit denen man MSIL-Code (oder auch C#) in echten Win32-Code comilieren kann, so dass dies ohne .NET ausführbar ist und mit bereits vorhandenen Win32-Projekten zusammenarbeiten kann ? mfg, stefan |
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
Dafür müsste man erstmal das Framework nachbilden, da ja so Sachen wie generics, Windows Forms etc. nicht einfach 1:1 zu übersetzen sind. Dann wäre es möglich.
|
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
hi,
ok ja stimmt. Und wenn man das irgendwie mit der Ausführungsschicht von .NET (der Runtime) verbinden könnte. Die übersetzt ja den MSIL Code in echten Maschinencode, dann könnte man doch das irgendwie im Arbeitsspeicher auslesen ? mfg, stefan |
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
Zitat:
![]() Zitat:
|
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
Und wo steckt der Sinn dahinter :gruebel: ?
http://www.mycsharp.de/wbb2/thread.php?postid=68836#post68836 Im Prinzip lautet die Antwort kurz und knapp: NEIN! Es gibt allerdings mindestens eine kommerzielle Lösung, die es erlaubt, die .NET-Assemblies, die sonst mit der Runtime installiert werden, direkt zur Exe zu packen. So wird zwar nicht auf .NET verzichtet, aber auf die Installation der Runtime. Solche Programmen unterliegen zudem heftigen Restriktionen. Nicht alle Anwendungen sind so zu "verpacken". Dieses .NET durch die Hintertür führt aber zu entsprechend großen Programmen, so dass man sich das schenken kann und die Runtime gleich mit installieren kann. Das kann mittels Installer vollautomatisch geschehen. Die angesprochene Technik führt dagegegen sehr schnell zu einem höheren Platzverbrauch (Platte) als die Runtime-Version. Vom Nachteil hinsichtlich Download ganz zu schweigen. Da wird aus einer 60 kb-Anwendung ganz schnell ein 6 MB-Monster. Meine persönliche Meinung: Wer mit der Installation von Runtimes auf PCs (!) Probleme hat, ist im falschen Business oder geistig in den 80er-Jahren stehen geblieben. Oft steht dahinter eine Pseudo-Kritik um das madig zu machen, was man nicht will oder versteht. Gerne geäußert von Programmierern, die mit modernen Entwicklungsplattformen wie .NET oder Java - die allesant runtime-basiert sind - auf Kriegsfuß stehen, und so das Haar in der Suppe gefunden haben um rumzumeckern. [edit] Wenn das der Sin(n) sein soll: Zitat:
[/edit] |
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
hi,
danke, dieses Programm scheint zwar zu funktionieren, aber ich hab gesehen, dass die Dateigröße von 4 auf 220 KB steigt und es wohl doch nicht eine ganz so gute Möglichkeit ist, in direkten Assemblercode umzuwandeln :lol: mfg, stefan |
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
Warum gehst du nicht einfach den Weg über COM, so wie das für deinen Fall vorgesehen ist?
.Net Lib:
Delphi-Quellcode:
In Delphi als Type lib importiert, und dann noch eine Unit mit type aliases um die ekligen COM Namen zu verstecken:
namespace DP.DelphiInterop;
interface uses System.Runtime.*; type [ClassInterface(ClassInterfaceType.AutoDual)] Sample = public class public property Miep : String read 'Miep'; end; implementation end.
Delphi-Quellcode:
So wird's benutzt (CoInitialize muss aber irgendwo in der App aufgerufen werden):
unit uSample;
interface uses DP_DelphiInterop_TLB; type ISample = _Sample; TSample = CoSample; implementation end.
Delphi-Quellcode:
uses
uSample in 'uSample.pas'; var sample : ISample; begin sample := TSample.Create(); Writeln(sample.Miep); end. |
Re: MS .NET Assembly als Win32 PE-Datei compilieren ?
Falls das bestehende Win32-Programm ein Delphi-Programm ist würde ich mal
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz