2011-01-04 10 views
11

Después de que he hecho como se sugiere por Hans Passant en C++: Getting the "error C2065: 'pst' : undeclared identifier" while using pstsdk? (que funciona), mi código ahora se ve así:C++: Obtener el código de error c3859 durante la compilación en una mezcla de C++/CLI y C++

private: 
    System::Void readPstFileButton_Click(System::Object^ sender, System::EventArgs^ e) { 
     pstsdk::pst myfile(marshal_as<std::wstring>(fileNameTextBox->Text)); 
    } 

Y ahora recibo los siguientes errores:

error C3859: rango de memoria virtual para PCH excedido; por favor vuelva a compilar con una opción de línea de comando de '-Zm111' o mayor

error C1076: límite del compilador: límite interno del montón alcanzado; use/Zm para especificar un límite superior

Definitivamente no esperaba que ocurrieran, y tampoco sé cómo resolverlos.

+0

Los errores le dicen cómo solucionarlos. –

+1

¡Esto ayuda mucho! ¡Gracias! Aparte, aunque el error lo dice todo, parece que falta algo sobre cómo resolverlos, ya que no compilo en la línea de comandos, sino usando VS2010. –

+1

Eliminada la etiqueta "Managed C++": C++ administrado está muerto: si está utilizando C++/CLI, está utilizando lo que reemplazó a "C++ administrado". –

Respuesta

39
  1. Haga clic derecho en su proyecto de C++ en el Explorador de soluciones; elige Propiedades.
  2. En el cuadro de diálogo Propiedades, expanda Propiedades de configuración> C/C++> Línea de comandos
  3. En Opciones avanzadas, añadir /Zm120

Repita esto para depuración y de lanzamiento y cualquier otra configuración que tiene.

Para obtener más información sobre qué hace esta opción de línea de comandos (y qué significa cambiarla), consulte the /Zm documentation.

+0

Esto se compila correctamente, y ahora entiendo lo que hace el modificador de opción '/ Zm', lo que me ayuda a aprender más adecuadamente. ¡Gracias! =) (+1 y respuesta aceptada) –

+1

Solo un consejo: puede seleccionar todos los proyectos y agregarles la misma hoja de propiedades en un solo paso. La hoja también se agregará a las versiones de depuración y liberación. – Mene

+1

esto simplemente no funciona para cientos de personas. Ya hemos establecido al máximo ... Y es completamente al azar si este error aparece en una reconstrucción de todo. – Dan

Cuestiones relacionadas