Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Llamar a una DLL desde visual c++ 6

Iniciado por Crois, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Crois

                                Como lo hago para llamar a una funcion de una DLL desde visual c++ sin el archivo de cabecera.
                               

BeRSeRKeR

                                Jeje, precisamente anoche estuve trasteando con el C++ Builder y Direct3D...y como no sabía como especificar las librerías que había que linkar y me decía que no encontraba la función Direct3DCreate8 pues hice esto:

// Declaramos puntero a la función
HRESULT (WINAPI *Direct3DCreate8)(UINT);

// En la función de inicialización de D3D...
HINSTANCE hInst = LoadLibraryA("d3d8.dll");
*(FARPROC*)&Direct3DCreate8 = GetProcAddress(hInst, "Direct3DCreate8");

// Creamos el objeto D3D
IDirect3D8 *pD3D8;
pD3D8 = (IDirect3D8*)Direct3DCreate8(D3D_SDK_VERSION);

Ya está, con eso conseguí que funcionase. Eso mismo lo hice con algunas funciones de D3DX pero por suerte ya sé cómo linkar correctamente las libs con el C++ Builder :riendo:

Ni que decir tiene que ese código también te funcionará con el Visual C++. ¡Ah...tendrás que saber el prototipo de la función que quieres extraer de la dll!

Saludos
                               
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Crois

                                Gracias.Me estaba poniendo histerico
                               

ethernet

                                Si mirais el codigo del quake2 se ve como tb hace eso con toda opengl.dll con la parte  de render para elegir entre hard y soft.
El codigo del quake2 tiene mucha miga ;DDD

Saludos                                

Crois

                                Al ejecutar mi código me da un error de windows.Y cuando miro el debug aparece un ACCES VIOLATION.......
A que se puede deber?
Me aparece continuamente en algunos programas.
///////////////////////////
First-chance exception in ss.exe: 0xC0000005: Access Violation
//////////////////////////

[ Este Mensaje fue editado por: Crois el 2002-08-29 18:39 ]                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.