C ++ / CLI 0xc0020001: "La encuadernación de cadenas no es válida" en la salida de la aplicación -- # campo con c++ camp Relacionados El problema

C++/CLI 0xC0020001: “The string binding is invalid” at application exit


2
vote

problema

Español

Estoy envolviendo una biblioteca C ++ con C ++ / CLI para usarlo desde C #. Por ahora tengo una simple forma de WinForm con dos botones:

un botón solo hace un

  MyWrapperClass data = new MyWrapperClass()   

El otro botón hace lo siguiente:

  OpenFileDialog dialog = new OpenFileDialog();  if(dialog.ShowDialog() == DialogResult.OK) {   MyWrapperClass data = new MyWrapperClass() }   

Si presiono el primer botón y luego cierre la aplicación, obtengo la excepción

0xc0020001: "La unión de cadenas no es válida"

Si presiono el segundo botón (que abre un archivo FILEDIALOG) y luego cierra la aplicación, no tengo problemas.

Cuando la aplicación se bloquea Visual Studio abre el archivo

c: Archivos de programa (x86) Microsoft Visual Studio 14.0 VC CRT SRC VCRUNTIME utilidad.cpp

  at line 395: _execute_onexit_table(&module_local_atexit_table);   

El excepcional parece apermetarse en esa línea.

Gracias por cualquier ayuda

Editar: Esto es básicamente lo que hago dentro de la MyWrapperclass

  public ref class MyWrapperClass{  public:   MyWrapperClass(){     native_class = new NativeClass();   }    ~MyWrapperClass(){     this->!MyWrapperClass();   }    !MyWrapperClass(){     delete native_class;   }  private:   NativeClass * native_class; }   
Original en ingles

I'm wrapping a C++ library with C++/CLI in order to use it from C#. For now I have a simple Winform with two buttons:

One button just makes a

MyWrapperClass data = new MyWrapperClass() 

The other button does the following:

OpenFileDialog dialog = new OpenFileDialog();  if(dialog.ShowDialog() == DialogResult.OK) {   MyWrapperClass data = new MyWrapperClass() } 

If I push the first button and then close the application, I get the exception

0xC0020001: "The string binding is invalid"

If I push the second button (which opens a FileDialog) and then close the application, I have no problems.

When the app crashes Visual Studio opens the file

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\vcruntime\utility.cpp

at line 395: _execute_onexit_table(&module_local_atexit_table); 

the exceptiont seems to appen at that line.

Thanks for any help

EDIT: This is basically what I do inside the MyWrapperClass

public ref class MyWrapperClass{  public:   MyWrapperClass(){     native_class = new NativeClass();   }    ~MyWrapperClass(){     this->!MyWrapperClass();   }    !MyWrapperClass(){     delete native_class;   }  private:   NativeClass * native_class; } 
     
   
   

Lista de respuestas


Relacionados problema

19  ¿Qué herramienta de integración continua es la mejor para un proyecto C ++? [cerrado]  ( What continuous integration tool is best for a c project ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. Cerrado ha...

30  ¿Soporte de expresión regular fácil de usar en C ++? [cerrado]  ( Easy to use regular expression support in c ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

164  Cómo usar la API de C Socket en C ++ en Z / OS  ( How to use the c socket api in c on z os ) 
Tengo problemas para que la API de los sockets de C funcione correctamente en C ++ en Z / OS. Aunque estoy incluyendo sys/socket.h , Sigo obtengo los error...

30  Asegurar que las excepciones siempre sean atrapadas  ( Ensuring that exceptions are always caught ) 
Las excepciones en C ++ no deben ser atrapadas (sin errores de tiempo de compilación) por la función de llamada. Así que depende del juicio del desarrollador,...

64  Montón de corrupción bajo Win32; ¿Cómo localizar?  ( Heap corruption under win32 how to locate ) 
Estoy trabajando en una aplicación de MultiShreaded que está corrompiendo el montón. Las herramientas habituales para localizar esta corrupción parecen ser ...

35  Berkeleydb concurrencia  ( Berkeleydb concurrency ) 
¿Cuál es el nivel óptimo de concurrencia de que la implementación de C ++ de BerkeleyDB puede apoyar razonablemente? ¿Cuántos hilos puedo haber golpeado la...

27  ¿Comunicación de cliente-cliente de múltiples direcciones asíncrona en el mismo socket abierto?  ( Asynchronous multi direction server client communication over the same open sock ) 
Tengo una aplicación cliente-servidor donde el cliente está en un dispositivo Windows Mobile 6, escrito en C ++ y el servidor está en Windows completo y escri...

56  ¿Debo usar clases anidadas en este caso?  ( Should i use nested classes in this case ) 
Estoy trabajando en una colección de clases utilizadas para la reproducción de video y la grabación. Tengo una clase principal que actúa como la interfaz públ...

22  ¿Construir para Windows NT 4.0 usando Visual Studio 2005?  ( Build for windows nt 4 0 using visual studio 2005 ) 
Una aplicación de MFC que estoy tratando de migrar usos afxext.h , que causa 9988777664 para configurar, lo que causa este error si configuro /MT5 : Ut...

42  Generación de números aleatorios robustos [cerrado]  ( Robust random number generation ) 
Según lo que actualmente representa, esta pregunta no es un buen ajuste para nuestro Q & Amp; un formato. Esperamos que las...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos