Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Scusate volevo chiedere dove o come potrei recuperare
una piccola lista di tutti gli EntryPoint che posso utilizzare
alle librerie di sistema esempio user32.dll
avere una lista completa di tutti gli EntryPoint e medoti che si possono utilizzare.
|
|
riseofapocalypse (Ex-Member)
Pro
Messaggi: 150
Iscritto: 08/07/2009
|
Intendi come dichiarare le funzioni API nei tuoi programmi?
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
No,
Intendo una lista degli argomenti su cui Accedere.
Del tipo faccio un esempio
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll", EntryPoint="MessageBox")] static extern int MsgBox(int HWND, string msg, string caption, int msgType);
|
L'entryPoint in questione e MessageBox quindi ho creato esempio un Wrapper MsgBox in C#
cerco da tempo una lista completa di tutti gli argomenti delle api
dai punti d'ingresso o anche magari una stesura sulla predisposizione di un Call.
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da Thejuster:
No,
Intendo una lista degli argomenti su cui Accedere.
Del tipo faccio un esempio
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll", EntryPoint="MessageBox")] static extern int MsgBox(int HWND, string msg, string caption, int msgType);
|
L'entryPoint in questione e MessageBox quindi ho creato esempio un Wrapper MsgBox in C#
cerco da tempo una lista completa di tutti gli argomenti delle api
dai punti d'ingresso o anche magari una stesura sulla predisposizione di un Call. |
Beh ... un entry point e' inteso (normalmente) l'indirizzo (relativo o assoluto) di una funzione in una libreria o comunque di codice all'interno di un insieme di codice. Naturalmente l'indirizzo puo' anche essere espresso simbolicamente e nella DllImport e' comunque sinonimo di "alias" ... ma non importa ...
Tutto quello che cerchi circa nomi e argomenti delle API sta tutto su MSDN Online ... ad esempio, per la MessageBox
http://msdn.microsoft.com/en-us/library/ms645505%28VS.85%2 ... |
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Grazie mille proprio quello che cercavo
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Domanda.
Come posso Convertire o meglio inviare in un modo migliore quei parametri?
esempio utilizzare una stringa anzichè (uint)
ho provato in questo modo ma continua a darmi errore
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll")] static extern bool AnimateWindow(IntPtr HWND, int time, AnimateWindowFlags flags); //Test Animazione [STAThread] private void button1_Click(object sender, EventArgs e) { AnimateWindow(this.Handle, 1000, (uint) AnimateWindowFlags.AW_VER_NEGATIVE); } //dichiarazione uint flag enum AnimateWindowFlags : uint { AW_HOR_POSITIVE = 0x00000001, AW_HOR_NEGATIVE = 0x00000002, AW_VER_POSITIVE = 0x00000004, AW_VER_NEGATIVE = 0x00000008, AW_CENTER = 0x00000010, AW_HIDE = 0x00010000, AW_ACTIVATE = 0x00020000, AW_SLIDE = 0x00040000, AW_BLEND = 0x00080000 }
|
Ultima modifica effettuata da Thejuster il 23/07/2009 alle 20:19
|
|
riseofapocalypse (Ex-Member)
Pro
Messaggi: 150
Iscritto: 08/07/2009
|
Io ho risolto così:
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll")] static extern bool AnimateWindow(IntPtr HWND, int time, uint flags); //Test Animazione [STAThread] private void button1_Click(object sender, EventArgs e) { AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_VER_POSITIVE); } //dichiarazione uint flag class AnimateWindowFlags { public static uint AW_HOR_POSITIVE = 0x00000001; public static uint AW_HOR_NEGATIVE = 0x00000002; public static uint AW_VER_POSITIVE = 0x00000004; public static uint AW_VER_NEGATIVE = 0x00000008; public static uint AW_CENTER = 0x00000010; public static uint AW_HIDE = 0x00010000; public static uint AW_ACTIVATE = 0x00020000; public static uint AW_SLIDE = 0x00040000; public static uint AW_BLEND = 0x00080000; }
|
Sostituendo l'Enum con una classe fatta di attributi pubblici statici (il risultato è lo stesso)
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll")] static extern bool AnimateWindow(IntPtr HWND, uint time, AnimateWindowFlags flags); //Test Animazione [STAThread] private void button1_Click(object sender, EventArgs e) { AnimateWindow(f.Handle, 1000, AnimateWindowFlags.AW_VER_POSITIVE | AnimateWindowFlags.AW_SLIDE); f.Show(); }
|
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Grandioso ho avuto l'effetto che volevo grazie mille a tutti
Postato originariamente da riseofapocalypse:
Io ho risolto così:
Codice sorgente - presumibilmente C# |
[DllImport("user32.dll")] static extern bool AnimateWindow(IntPtr HWND, int time, uint flags); //Test Animazione [STAThread] private void button1_Click(object sender, EventArgs e) { AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_VER_POSITIVE); } //dichiarazione uint flag class AnimateWindowFlags { public static uint AW_HOR_POSITIVE = 0x00000001; public static uint AW_HOR_NEGATIVE = 0x00000002; public static uint AW_VER_POSITIVE = 0x00000004; public static uint AW_VER_NEGATIVE = 0x00000008; public static uint AW_CENTER = 0x00000010; public static uint AW_HIDE = 0x00010000; public static uint AW_ACTIVATE = 0x00020000; public static uint AW_SLIDE = 0x00040000; public static uint AW_BLEND = 0x00080000; }
|
Sostituendo l'Enum con una classe fatta di attributi pubblici statici (il risultato è lo stesso) |
si può anche fare ma credo che sia meglio un enum
ho risolto inserendo una semplicissima funzione al momento del richiamo dell'enum
Anzichè
Codice sorgente - presumibilmente Plain Text |
AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_VER_POSITIVE |AnimateWindowFlags.AW_SLIDE);
|
basta fare
Codice sorgente - presumibilmente Plain Text |
AnimateWindow(this.Handle, 1000, (uint) AnimateWindowFlags.AW_VER_POSITIVE | (uint) AnimateWindowFlags.AW_SLIDE);
|
Magari aggiungendo anche l'attributo [Flag] prima degli enum.
per il resto. Grazie mille per l'aiuto Ultima modifica effettuata da Thejuster il 24/07/2009 alle 8:51
|
|