Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ØnLy en 21 Enero 2011, 04:20 am



Título: Cargando api en memoria?
Publicado por: ØnLy en 21 Enero 2011, 04:20 am
Saludos , es mi primer post po aca y aprovecho para felicitarlos
por su comundad...

Mi Duda es la siguiente acabo de escribir este codigo
que deberia abrir la bandeja de CDs al ejecutarse

Código:
#include <windows.h>
#include <stdio.h>

typedef long (*AbrirCD)(LPCTSTR ,LPTSTR ,UINT,HANDLE);

int main()
{
long lpRe;

AbrirCD _AbrirCD = (AbrirCD)GetProcAddress(LoadLibrary("winmm.dll") ,"mciSendString");
lpRe= _AbrirCD("Set CDAudio Door Open Wait" , NULL , 0 ,NULL);

if(lpRe != 0)
    printf("Bandeja Abierta Correctamente");
else
  printf("Error AbriendoBandeja");

 return 0;
}

Pero por alguna razon me tira error al ejecutarse( No al Compilarlo :)

Estoy Con Code::Blocks + GCC , bajo windows 7.....

Gracias de Antemano....


Título: Re: Cargando api en memoria?
Publicado por: Space.Medafighter.X en 21 Enero 2011, 04:24 am
El API tiene dos variantes, una para unicode (mciSendStringW) y otra para ascii (mciSendStringA), al usar GetProcAddress deberías hacer un :

Código:
AbrirCD _AbrirCD = (AbrirCD)GetProcAddress(LoadLibrary("Winmm.dll") ,"mciSendStringA");


Título: Re: Cargando api en memoria?
Publicado por: ØnLy en 21 Enero 2011, 04:28 am
 :o , como se me ha pasado esa xD , bueno muchas gracias por la respuesta!
Ya esta funcional.....


Título: Re: Cargando api en memoria?
Publicado por: BlackZeroX en 21 Enero 2011, 07:17 am
.
que hubo chico.

En lo personal obtaria por la llamada directa a mciSendStringA

Dulces Lunas!¡.