2009-12-21 21 views
6

Tüm işlev-yöntem ve yapıları ile kernel32 API'lerini sarmalayan herhangi bir yardımcı sınıf? Ya da herhangi bir sarıcı jeneratörü?Wrapper C#

[DllImport("kernel32.dll",EntryPoint="RtlMoveMemory")] 
     public static extern void RtlMoveMemory(int des, int src, int count); 

     [DllImport("kernel32.dll", EntryPoint = "OpenProcess")] 
     public static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId); 

     [DllImport("kernel32", CharSet = CharSet.Ansi)] 
     public extern static int GetProcAddress(int hwnd, string procedureName); 

     [DllImport("kernel32.dll", EntryPoint = "GetModuleHandle")] 
     public static extern int GetModuleHandle(string lpModuleName); 

     [DllImport("kernel32.dll", EntryPoint = "VirtualAllocEx")] 
     public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect); 

     [DllImport("kernel32")] 
     [return: MarshalAs(UnmanagedType.Bool)] 
     public static extern bool CloseHandle(IntPtr hObject); 

     [DllImport("kernel32", EntryPoint = "CreateRemoteThread")] 
     public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, uint lpThreadId); 

     [DllImport("kernel32.dll", EntryPoint = "WriteProcessMemory")] 
     public static extern IntPtr WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, IntPtr lpNumberOfBytesWritten); 
+0

Tek soru - neden? –

+3

1359 giriş noktası var, çok fazla yol var. Bildirimler için iyi bir kaynak kullandığınızdan emin olun, elinizde olanları yanlış. –

+0

Tüm giriş noktalarını oluşturursanız, bunu yapmak için zaman kaybetmeyin. Ve kaynak kodu oluşturmak daha iyidir, hata kodu –

cevap

7

Sanmam:

böyle C# kernel32.dll TÜM yöntemleri istiyorum.

http://www.pinvoke.net/'u gördünüz mü?

+0

Oh, evet değil, ama VS 2008 desteği değil! çok yazık !! kernel32.dll tüm fonksiyonları ile başka bir araç veya kaynak kodu sınıfı ?? teşekkürler –

+1

VS eklentisi 2008'i desteklemeyebilir, bu da içeriği web sitesinden kullanamayacağınız anlamına gelmez. API'ları aramak ve kodu kopyalamak zahmetli görünse de, onu sıfırdan yazmak daha iyidir. Artı tarafta sadece bunu bir kez yapmanız gerekir. – donovan

+0

API'lar için arama ve kod kopyalama .... belki ama benim için herhangi bir uygulama çözümü kernel32.dll, gdi.dll, ... THANKS sarıcı için otomasyon kod üretimi için ... –