Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

373
Vistas
CS0212 Error al usar dll con código no seguro: solo puede tomar la dirección de una expresión no fija dentro de un inicializador de declaración fija

El fragmento (incompleto)

 unsafe class MainWindow { ... IntPtr somePtr = IntPtr.Zero; unsafe private void Click(object sender, RoutedEventArgs e) { NamespaceFromReferencedUnsafeDll.SomeFunction(&somePtr) } ... }

}

Se supone que debe llamar a SomeFunction desde una Dll administrada con código no seguro, para establecer el puntero somePtr , pero da como resultado el error del compilador

CS0212: solo puede tomar la dirección de una expresión no fija dentro de un inicializador de declaración fija

De acuerdo con esta respuesta , la palabra clave fixed debe usarse de alguna manera, pero

 fixed(IntPtr somePtr = IntPtr.Zero);

no ayudó

¿Cómo puedo arreglar esto (sin juego de palabras)?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema era la firma de

 SomeFunction

en el dll inseguro al que se hace referencia.

Después de cambiar

 public static unsafe uint SomeFunction(IntPtr* somePtr)

para

 public static unsafe uint SomeFunction(out IntPtr somePtr)

el fragmento

 class MainWindow { ... IntPtr somePtr = IntPtr.Zero; private void Click(object sender, RoutedEventArgs e) { NamespaceFromReferencedUnsafeDll.SomeFunction(out somePtr) } ... }

compila sin errores y funciona en tiempo de ejecución.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda