Pregunta

Si llama a LoadLibrary sin una ruta (por ejemplo, LoadLibrary (" whatever.dll ") , Windows generalmente seguirá su algoritmo de búsqueda estándar, el mismo que utiliza para encontrar EXEs.

Mi pregunta es esta: supongamos que un manifiesto de aplicación especifica una versión particular de una DLL del sistema, por ejemplo, comctl32.dll 6.0. En ese caso, ¿ LoadLibrary (" comctl32.dll ") irá de inmediato a la carpeta de lado a lado correcta o seguirá realizando algún tipo de búsqueda?

¿Fue útil?

Solución

De Microsoft:

  

Las aplicaciones pueden controlar la ubicación desde la que se carga una DLL especificando una ruta completa, utilizando la redirección de DLL o utilizando un manifiesto. Si no se utiliza ninguno de estos métodos, el sistema busca la DLL en el momento de la carga como se describe en este tema.

Entonces, sí, si hay un manifiesto, irá directamente a la carpeta SxS.

Otros consejos

Para probar el cargador cuando tiene problemas con bibliotecas faltantes, puede usar " sxstrace " característica. www.codeproject.com/KB/DLL/QueryAssemblyIdentities.aspx proporciona algunos detalles sobre las dependencias entre manifest y WinSxs.

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