2012-05-26 12 views
9

He estado siguiendo theForger's win32 API tutorial, y decidí abrir el archivo menu_one.rc para ver su contenido desde el interior de VS2010, y me dio este mensaje:VS2010: "No se puede encontrar la DLL del compilador de recursos. Asegúrese de que la ruta sea correcta".

The error (imgur.com)

He una doble comprobación de ambos lugares y tampoco de los archivos realmente existen. Las únicas copias de Rcdll.dll He ubicados en:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\rcdll.dll and 
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\rcdll.dll 

he intentado hacer un repair install of the Windows SDK, pero eso no se soluciona el problema. ¿Que debería hacer?

Respuesta

7

This thread menciona un tema del registro:

I had been able to reproduce the issue with my pc with Windows 7 SP1 64 bit and VS2010 Sp1 installed.

What I had to is modify the following registry entries from

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows] 
"CurrentVersion"="7.0" 
"CurrentInstallFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0\\" 

to

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows] 
"CurrentVersion"="7.0.30319" 
"CurrentInstallFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\" 

And there were 2 keys under

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows] 

which are

v7.0 
v7.0A 

I deleted v7.0 along with all its subkeys. And the problem is solved.

+0

Se trata de cómo se disponen las llaves en mi caja: http://i.imgur.com/vORBK .png ¿Cómo debo proceder? – whiplash

+0

@whiplash Creo que la idea es asegurarse de que esas llaves hace referencia al directorio en el que 'rcdll.dll' realidad, con la versión actual de v7.0A en su caso – VonC

+0

Cambio de la clave de registro para reflejar el directorio de instalación 7.0a hizo el truco . Reinició VS2010 y el archivo .rc abrió bien! ¡Gracias un montón! – whiplash

6

Estaba un poco preocupado por cambiar el registro ya que estoy ejecutando en v8.0A, pero pude solucionar el error simplemente copiando el rcdll.dll de la versión anterior en el directorio que figura en el mensaje de error .

+0

Intenté lo mismo sin suerte. Sin embargo, cambiar la clave reg como lo indica @VonC, corrigió el problema ... quizás no correctamente, pero funciona. –

1

VonC's answer es útil, pero en mi caso no resuelve el problema. Había otra clave de registro que necesitaba cambiar.

Para encontrar esa clave, busqué regedit para v6.0A ya que esa era la versión en la ruta de mi cuadro de diálogo de error.
El camino de diálogo era C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\rcdll.dll

Una vez que se ha encontrado la clave que contiene v6.0A, he sustituido el camino con lo que era en mi máquina:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

También he actualizado las cadenas de versión para ser v7.0A o 7.0.30319 dependiendo en cuál era el valor original Encontré algunas cadenas de versión en las claves secundarias de mi resultado de búsqueda, así que también apliqué los cambios allí.

En mi máquina, la clave que Visual Studio utilizaba se encuentra en:

[HKEY_USERS\S-1-5-21-627493193-880714491-1605132347-6179\Software\Microsoft\Microsoft SDKs\Windows] 
Cuestiones relacionadas