Como utilizar funciones API en VB .NET

11/08/2004 - 02:06 por A. Karim O. G. | Informe spam
Hola a todos

Como puedo utilizar las funciones API en VB .NET en
especial la de GlobalMemoryStatus, ya que en VB 6 si me
funciona pero al utilizarla en VB .NET ya no funciona de
manaera correcta, a parte me gustaria saber si alguien
posee una guia de todas las funciones API pero para .NET
(que no sea de API Guide porque ya lo tengo) ya que en
estas funciones han habido cambios

Preguntas similare

Leer las respuestas

#1 Angel. E. Ruiz. Pastor
11/08/2004 - 02:32 | Informe spam
Para usar las API en VB .NET tienes que usar el NameSpace Imports
System.Runtime.InteropServices



Después llama al API ejemplo:

<DllImport("KERNEL32.DLL", EntryPoint:="GetSystemDirectoryW", _

SetLastError:=True, CharSet:=CharSet.Unicode, _

ExactSpelling:=True, _

CallingConvention:=CallingConvention.StdCall)> _

Public Shared Function GetSystemDirectory(ByVal Buffer _

As StringBuilder, ByVal Size As Integer) As Long

' Leave function empty - DLLImport attribute

' forces calls to GetSystemDirectory to

' be forwarded to GetSystemDirectory in KERNEL32.DLL

End Function



Y después llamas a la Función del API



Dim s As New StringBuilder(MAX_PATH)



GetSystemDirectory(s, MAX_PATH)

msgbox(s.ToString(), , "System Directory")



Para un ejemplo: puedes visitar este link en la pagina del Amigo Guille

http://www.elguille.info/NET/dotnet/inisNET.htm






Saludos cordiales,
Ángel Ruiz
[MS Visual Basic Developer MVP]
Caracas - Venezuela

"El conocimiento es un bien, que crece a medida que se comparte"


"A. Karim O. G." wrote in message
news:3dc701c47f37$103823e0$
Hola a todos

Como puedo utilizar las funciones API en VB .NET en
especial la de GlobalMemoryStatus, ya que en VB 6 si me
funciona pero al utilizarla en VB .NET ya no funciona de
manaera correcta, a parte me gustaria saber si alguien
posee una guia de todas las funciones API pero para .NET
(que no sea de API Guide porque ya lo tengo) ya que en
estas funciones han habido cambios
Respuesta Responder a este mensaje
#2 Tristan
11/08/2004 - 08:49 | Informe spam
Yo utilizo Api Viewer:

http://www.c-sharpcorner.com/Tools/...werPKS.asp

Este programa me devuelve esta declaración para GlobalMemoryStatus. No la he
probado, así es que no puedo garantizarte que funcione.

Private Declare Sub GlobalMemoryStatus Lib "kernel32" Alias
"GlobalMemoryStatus" (<MarshalAs(UnmanagedType.Struct)> ByRef lpBuffer As
MEMORYSTATUS)

<StructLayout(LayoutKind.Sequential)> Private Structure MEMORYSTATUS
Private dwLength As Integer
Private dwMemoryLoad As Integer
Private dwTotalPhys As Integer
Private dwAvailPhys As Integer
Private dwTotalPageFile As Integer
Private dwAvailPageFile As Integer
Private dwTotalVirtual As Integer
Private dwAvailVirtual As Integer
End Structure

Yo creo que lo más importante es recordar que en .net los tipos tienen la
longitud estandar, y no la específica de vb. Y luego claro está, la
dificultad de los MarshalAs...

De todas formas, ¿has probado con wmi?. Tal vez la clase
Win32_PhisicalMemory...

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 act
11/08/2004 - 12:19 | Informe spam
En este enlace (gracias Guille) tienes una lista de equivalencias entre API
y .NET:

http://msdn.microsoft.com/library/d...n32map.asp

Que te sea util,
Act
Respuesta Responder a este mensaje
#4 Drk
11/08/2004 - 13:12 | Informe spam
Toda una maravilla!

Drk

"act" escribió en el mensaje
news:%
En este enlace (gracias Guille) tienes una lista de equivalencias entre


API
y .NET:




http://msdn.microsoft.com/library/d...n32map.asp

Que te sea util,
Act



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida