Hogyan hivatkozok egy DLLre ami EXE-én belül van?
Van egy EXE fájlom amit visual basicban szerkesztek, tartozna hozzá egy dll amit szeretnék az exe fájlomba "beépíteni", majd később beinjektálni egy programba.
Ez megodlható? És ha igen, akkor hogyan? A LÉNYEG AZ LENNE, HOGY A DLLHEZ MÁS NE FÉJRNE HOZZÁ!. Egyéb ötletet is elfogadok. Köszönöm!
"majd később beinjektálni egy programba"
Ez pontosan mit akar jelenteni?
A DLL-nek pont az a lényege, hogy más is hozzáférhet.
Ha nem szeretnéd, akkor ne csinálj belőle DLL-t. Ez ilyen egyszerű.
Ez VB.NET?
Ha igen, akkor a DLL-t hozzáadod resourceként, majd a AppDomain.CurrentDomain.AssemblyResolve eseménykezelőben dinamikusan betöltöd az erőforrásból a dll-t
Itt egy C# példa (VB-ben is nagyon hasonló, bár ahhoz nem értek:))
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
if (args.Name.ToLower().StartsWith("xxx"))
{
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProgram.xxx.dll");
byte[] buf = new byte[stream.Length];
stream.Read(buf, 0, buf.Length);
stream.Close();
return Assembly.Load(buf);
}
return null;
}
Ez egy működő kódban van nálam. Bár nekem nem az volt a célom, hogy más ne férjen hozzá, hanem a dll, amit beleraktam egy 3rd party cucc, és azt szerettem volna, hogy 1db exe legyen a végén.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!