• C++ avanzado

 #491646  por zhyn
 05 May 2017, 02:01
hola que tal soy nuevo en el foro
queria saber de algun libro o video o cualquier material que me pueda ayudar a entender las librerias de windows como el kernel32.dll o gdipuls.dll __fastcall __stdcall en c++ que es todo eso ???????? por favor (no me digan la documetacion de micrsoft porque ya la revise y no es para novatos )
 #491664  por crack81
 07 May 2017, 00:24
El detalle es que no estan hechas para novatos, de antemano se supone que tu ya minimo sabes programar de preferencia en C que es donde estan escritos esas DLL deberas entender bien que es una DLL y como llamar sus funciones aunque no es obligatorio usar C ya que existen un monton de wrappers para poder usarlas desde otros lenguajes como autoit,Delphi, python etc.

Aun asi hay varios libros referentes al API de windows los comento en este enlace [ Debe registrarse para ver este enlace ] aun si espera tengas conocmientos de programacion de preferencia C o C++.

Pera para que veas que tenemos la intencion de ayudar te voy a poner un ejemplos y como si sirve la MSDN de windows que es al final donde vas a tener que acudir si quieres aprender sobre la API de windows.

Ejemplo 1:
El famoso messagebox es una funcion de la libreria User32.dll como lo se? pues usando la MSDN
Minimum supported client
Windows 2000 Professional [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Header
Winuser.h (include Windows.h)
Library
User32.lib
DLL
User32.dll
Unicode and ANSI names
MessageBoxW (Unicode) and MessageBoxA (ANSI)
Para estos ejemplos vamos a usar el lenguaje C bueno ya de entrada practicamente cualquier compilador de C trae la biblioteca <windows.h> que es el archivo de cabezera para hacer llamado a las funciones de las DLL sin tener que importarlas dinamicamente no todas las funciones del API de windows viene ahi pero si una gran mayoria algunas otra se tiene que llamar dinamicamente.

Bueno menos charla y mas accion
#include<windows.h>

int main()
{
    MessageBoxA(0,"titulo","hola mundo",MB_OK);
    return 0;
}
Simplemente nos va mostrar un ventana con el mensaje que le indicamos , ahora vamos a ver una serie de funciones para el manejo de cadenas [ Debe registrarse para ver este enlace ]

Ejemplo la strlen [ Debe registrarse para ver este enlace ] que esta declarada en kernel32.dll
nuevamente en este caso lo unico que necesitamos es la windows.h la cual nos retorna el tamano de una cadena o puntero a char
#include<windows.h>
#include<stdio.h>
int main()
{
   const char* mensaje="hola mundo";
   int tamano=strlen(mensaje);

   printf("El tamano de la cadena es %d",tamano);



    return 0;
}
En fin puedes revisar la lista completa y hacer tus pruebas [ Debe registrarse para ver este enlace ]