Z góry przepraszam bo nie wiem czy temat rozpoczynam w odpowiednim dziale forum, i bardzo proszę o wyrozumiałość.
O co chodzi: Nie pisałem nigdy w C# i .NET tylko w delphi pisze ort! i nie jestem z zawodu programistą bo tak być może bym sobie z tym poradził, mam pewien problem dotyczący uruchamiania aplikacji ze streamu bez zapisywania na dysk, jak zdazylem sie juz dowiedziec jest to praktycznie awykonalne w delphi- mozna to zrobic ale posiadajac ogromna wiedze i doswiaczenie. Nie bede wyjasniał w tym momencie dlaczego ma to byc ze streamu , ale to jest główny cel. Oto jest mój pomysl:
W C# jest to jak najbardziej mozliwe, moim pomysłem jest aby przekonwertowac funkcje uruchamiajaca do postaci asemblera a nastepnie wykorzystac to w delphi. Funkcja wygląda tak:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Reflection;
namespace ConsoleLauncher
{
class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
string filePath = args[0];
if (File.Exists(filePath))
{
// read the bytes from the application exe file
FileStream fs = new FileStream(filePath, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
fs.Close();
br.Close();
// load the bytes into Assembly
Assembly a = Assembly.Load(bin);
// search for the Entry Point
MethodInfo method = a.EntryPoint;
if (method != null)
{
// create an istance of the Startup form Main method
object o = a.CreateInstance(method.Name);
// invoke the application starting point
method.Invoke(o, null);
}
}
}
else
{
Console.Write("File not found!");
}
}
}
}
źródło: http://www.codeproject.com/KB/cs/LoadExeIntoAssembly.aspx
Oczywiscie chodzi mi tylko o czesc po wczytaniu z pliku, nie potrafie tego sam przerobic i skompilowa i przekształcic do postaci asemblera.
chcialbym zeby funkcja dzialala tak ze jako parametr dajemy wskaznik do pamieci i gdzie jest zapisany exe jako bin lub paramatr jako TMemoryStream .
Tak się aplikuje asemblera do delphi:
http://4programmers.net/Forum/173689?h=assembler#id173689 w sumie to nic trudnego jak ma sie juz kod. W razie gdyby temat ni był zwiazany z działem C# i .NET prosze o przeniesienie do innego działu. :-|
Pozdrawiam,