El problema me lo da al tratar de cargar cualquiera de sus librerías:
Código
HMODULE LoadLibrary2(char *libDir, char *libName){ char loadPath[MAX_PATH] = { 0 }; HMODULE tmpLib = NULL; strcpy(loadPath, libDir); strcat(loadPath, "\\"); strcat(loadPath, libName); if (!strcmp(libName, "nss3.dll")) { tmpLib = LoadLibraryA(loadPath); } else if (!strcmp(libName, "plc4.dll")) { tmpLib = LoadLibraryA(loadPath); } else { tmpLib = LoadLibraryA(loadPath); } if (NULL == tmpLib) { printf("Failed to load library %s, code %d\n", libName, GetLastError()); return NULL; } printf("%s loaded successfuly\n", libName); return tmpLib; }
Para cargar a cualquier librería de FF se llama esta función, el caso es que LoadLibrary devuelve HMODULE = NULL, entonces llamo a GetLastError() y me devuelve 126 error.
En mi caso el error es:
Citar
ERROR_MOD_NOT_FOUND
126 (0x7E)
The specified module could not be found.
126 (0x7E)
The specified module could not be found.
Que el módulo no puede ser encontrado, algo extraño ya que las librerías dinámicas están en el path correcto con el que llamo a la función y además utilizo permisos de administrador.
He probado a copiar y pegar la librería nss3.dll a el directorio en ejecución y daba el mismo error.
¿Qué puede ser?, un saludo.
Edito: Bueno, el código es muy cuestionable, no es mío y lo acabaré retocando entero pero primero saber porque no carga la dll, porque no funciona LoadLibrary.
La llamada a la función LoadLibrary tiene como argumento por ejemplo:
"C:\Program Files (x86)\Mozilla Firefox\nss3.dll", obviando que si lo escribimos como cadena sería con dos '\' para que se muestren.
Saludos.
OJO: Me acabo de dar cuenta que en el código añade en la cabecera "utils.h", no se que tendrá ese archivo pero igual tiene algo que ver con esto.
Utilizo también LoadLibraryA pero y si el path tiene caracteres multybyte? MMmm, no creo que tenga que ver, pero puede que en otra situación pueda causar problemas.
No sé, compila sin errores.. solo eso de la librería.