Pregunta

Hace poco recibí Visual Studio en un equipo nuevo, así como la constitución de DirectX en él, fui a Herramientas> Opciones> Proyectos y Soluciones> VC ++ y directorios en Archivos Biblioteca hizo una nueva entrada C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86

y ahora corrió un programa de prueba (DirectX esencialmente sólo inicializado) y funcionó bien. Sin embargo, si cambio ...\Lib\x86 a ...\Lib\x64, de lo que recibo un error de vinculador que Direct3DCreate9 no está definido:

1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "void __cdecl init(void)" (?init@@YAXXZ)
¿Fue útil?

Solución

Las bibliotecas x86 son para aplicaciones de 32 bits, y las bibliotecas de 64 bits son para aplicaciones de 64 bits.

Se puede ver la plataforma que esté destinada a una audiencia en el Administrador de configuración de Visual Studio. A menos que tenga una buena razón, debe ser la creación de aplicaciones de 32 bits, ya que las aplicaciones de 64 bits requieren la versión de 64 bits de Windows para funcionar.

Otros consejos

La carpeta x64 contiene los archivos de la biblioteca para la plataforma AMD64 (Windows de 64 bits). Se necesita compilar la aplicación de 64 bits, también. Además, es necesario la versión de 64 bits de Windows para ejecutar el ejecutable producido.

Bueno, la respuesta simple es que las bibliotecas son x86 para sistemas operativos de 32 bits y 64 bits de las bibliotecas son para los sistemas operativos de 64 bits.

Simplemente cambiando la biblioteca DirectX relacionado con producirá un error como eres (con toda probabilidad) tratando de enlazar el código de 32 bits a la biblioteca de 64 bits. Usted tendrá que compilar el código para dirigirse a los sistemas operativos de 64 bits para conseguir esto para enlazar con éxito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top