16-9-2008 11:41:16
Còn một cái nữa cũng khá hay
class Class1{
[DllImport("kernel32")]
public extern static int LoadLibrary(string lpLibFileName);
[DllImport("kernel32")]
public extern static bool FreeLibrary(int hLibModule);
[DllImport("kernel32", CharSet=CharSet.Ansi)]
public extern static int GetProcAddress(int hModule, string lpProcName);
/*
[DllImport("msjava", CharSet=CharSet.Unicode)]
public extern static int call(int funcptr, int hwnd, string message, string title, int flags);
*/
[DllImport("Invoke", CharSet=CharSet.Unicode)]
public extern static int InvokeFunc(int funcptr, int hwnd, string message, string title, int flags);
static void Main(string[] args) {
int hmod=LoadLibrary("User32");
int funcaddr=GetProcAddress(hmod, "MessageBoxW");
int result=InvokeFunc(funcaddr, 0, "Hello World", ".Net dynamic export invocation", 1 /*MB_OKCANCEL*/);
Console.WriteLine("Result of invocation is " + result);
FreeLibrary(hmod);
Console.WriteLine("Press any key to continue...");
Console.ReadLine();
}
}