C/Visual C - Problema con Resources ('System.Resources.MissingM

 
Vista:

Problema con Resources ('System.Resources.MissingM

Publicado por Jesus (1 intervención) el 04/11/2005 10:33:11
Hola a todos. Es la primera vez que escribo y espero que alguien pueda echarme una mano. Antes de nada, me gustaria decir que escribo despues de una semana navegando por internet e intentando solucionar mi problema, incluso habiendo cientos de entradas con el mismo error que el mio en el Google, pero por alguna razon, ninguna de las soluciones propuestas hacen que se solucione.

El problema es el siguiente. Tengo una aplicacion Visual Studio .NET 2003, en Visual C++, MDI (o SDI, da igual..falla en ambas), la cual incluye un formulario, que quiero que se muestre al arrancar la aplicacion. Dicho formulario tiene simplemente un boton, con una imagen incluida en el. Obviamente, en las propiedades, he indicado que se usen "Extensiones administradas" (/clr), para poder usar dicho Form.

Pues bien, el problema es que, aun compilando bien, al intentar ejecutarse, da el siguiente fallo (conocido por muchos...):

Excepción no controlada del tipo 'System.Resources.MissingManifestResourceException' en mscorlib.dll

Información adicional: No se encontraron recursos adecuados para la referencia cultural especificada (o para la referencia cultural neutra) en el ensamblado proporcionado. Compruebe si "Formuario.resources" se ha incrustado o vinculado correctamente en el ensamblado "Prueba".
baseName: Formuario locationInfo: Prueba.Formuario resource file name: Formuario.resources assembly: Prueba, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

Y hay que interrumpir el depurador.

Ya he mirado que no tengo ninguna clase, ni delegado, ni enumerado delante de mi clase "Formuario", en el mismo Namespace "Prueba"...Prueba es el nombre de la aplicacion, como podeis suponer.

Tengo en Debug, el fichero Prueba.Formuario.resX.. Parece por lo tanto, que el nombre y el lugar es correcto.

El codigo de "Formuario" es el siguiente (el que genera por defecto el IDE):
...
...
void InitializeComponent(void)

{

System::Resources::ResourceManager * resources = new System::Resources::ResourceManager(__typeof(Prueba::Formuario));

this->button1 = new System::Windows::Forms::Button();
this->SuspendLayout();

//
// button1
//

this->button1->Image = (__try_cast<System::Drawing::Image * >(resources->GetObject(S"button1.Image")));

.....

....

He estad mirando con el ildasm.exe, el fichero Prueba.exe, y, si no me equivoco, en el MANIFIEST, deberia ver alguna entrada asociado a los resources, pero no me aparece nada.

He intentado generar de nuevo el fichero de resources, (incluso con el resgen.exe) pero siempre da el mismo error al ejecutar la aplicacion. Por supuesto, el error lo da siempre que intento instanciar un objeto del tipo Formuario, de la forma:

Prueba::Formuario* formjas= new Prueba::Formuario();

No hace falta ni que intente mostrarlo..simplemente al instanciarlo, ya falla.

Alguien podria ayudarme? Ya no se que hacer para que no me de el fallo, porque en otros foros, el problema casi siempre era el mismo....que la gente tenia definido otra clase delante, y por ello, el nombre generado para el recurso automaticamente por el IDE era erroneo...pero no parece ser mi caso.

Muchas gracias por anticipado. Si alguien necesita algun otro dato, pro favor, que me lo comente.

PD. Este error es facilmente comprobable...simplemente basta con:

-Crear una aplicacion SDI o MDI, con el AppWizard. Poner al proyecto "soporte para extensiones administradas"

-Añadir un formulario, un boton, y una imagen dentro del boton

- Instanciar el formulario (new)

Antes de llegar a este error, hay que solventar un par de problemas con la gestion de clases administradas (#undef GetObject y un problema con el new (__gc new). Y despues..aparece este problema. La aplicacion basica no tiene nada mas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder