Pregunta

Estoy teniendo algunos problemas de 64 bits. Aquí está la primicia:

Tengo EXE COM de 32 bits (escrito en FoxPro). Este exe invoca un 32-bit COM DLL (también escrito en FoxPro). En el mundo de Windows de 32 bits, el DLL se coloca en el directorio C:/Windows/System32, registrado en C:/Windows/System32/regsvr32.exe y todo está bien. El exe puede ser lanzado y los procesos que requieren la DLL están bien.

Es una historia diferente en el mundo de 64 bits. He intentado instalar esta aplicación en un Windows 7 x64 funcionamiento de la máquina, así:

  • coloco la DLL en C:/Windows/SysWOW64
  • me registro con C:/Windows/SysWow64/regsvr32.exe, pero sólo fue capaz de obtener el registro para tener éxito mediante la ejecución de regsvr32 utilizando la opción del menú contextual "Ejecutar como administrador".

Ahora, cuando trato de ejecutar mi exe, no es capaz de invocar la DLL, excepto cuando mi exe se pone en marcha mediante la opción "Ejecutar como administrador". Esto no está bien. Un usuario no debería estar obligado a ser un administrador sólo para ejecutar una aplicación sencilla.

¿Alguien sabe cómo puedo conseguir que esto funcione sin requerir la opción "Ejecutar como administrador" ??

Gracias!

Ken

¿Fue útil?

Solución

Cosas viejas, es probable que nunca se trató en una cuenta de usuario con privilegios limitados antes. Probablemente hace algo verboten, como escribir a las claves de registro en HKLM \ Software o crear un archivo en c: \ windows. Eso es más y hecho con estos días.

Si usted no tiene idea de lo que se podría hacer a continuación, utilizar la herramienta ProcMon SysInternals' para observarlo con el disco y el registro. El error de acceso denegado debe salir, aunque se necesita un poco de excavación. Si no puede cambiar el código a continuación, que realmente debería tener en cuenta para poner fin de la vida útil de este componente. Puede cortar los derechos para el archivo específico o clave de registro que se está tratando de picar como una solución intermedia. Asegúrese de no hacer nada en el directorio c: \ directorios de Windows, que causa más problemas de los que resuelve. Que es otra cosa, su componente realmente no debe estar en un directorio privado Windows.

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