2010-12-15 5 views
0

Compiler VS 2010 C# projet (.NET 4.0, une unité centrale de traitement, permettre à un code dangereux = vérifié), nous obtenons une variété de des erreurs de compilation comme ci-dessous:C# des erreurs de compilation dans le code dangereux

  1. Opérateur « * 'ne peut pas être appliquée à des opérandes de type « System.IntPtr » et « int »

  2. valeur de la constante « 325486741 » ne peut pas être converti en un « int » (utilisation « syntaxe non contrôlée » pour ignorer)

  3. Impossible convertir le type 'chaîne' en 'char *'

  4. Impossible de convertir le type 'long' en 'byte *' implicitement. Une conversion explicite existe (vous manque un casting?)

  5. terme expression non valide 'ref'

Toutes ces méthodes se produisent dans 'dangereuses'.

Comment les résoudre?

Répondre

2

Nous aurions besoin de voir votre code, mais je dirais que la partie "dangereuse" est sans rapport avec les erreurs, car celles-ci semblent être des problèmes avec le casting et autres.

Voici quelques informations qui pourraient aider:

  1. opérateur '*' ne peut pas être appliqué aux opérandes de type 'System.IntPtr' et 'int'

Essayez de jeter un int ou long premier.

  1. (variable (int)) La valeur de la constante '325486741' ne peut pas être converti en un 'int' (utilisation non contrôlée "syntaxe pour remplacer)

Essayez d'utiliser sans contrôle.

  1. Impossible de convertir le type 'string' à 'char *'

Essayez d'utiliser:

fixed (char* pChar = my_string) { ... } 
  1. Impossible de convertir implicitement le type 'long' à 'octet *'. Une conversion explicite existe (il vous manque un cast?)

Essayez de lancer: octet * pB = (octet *) valeur;

  1. terme d'expression non valide 'ref'

Je ne peux pas dire grand-chose à propos de celui-ci sans le code.

+0

il utilisait fixed (char * mystr = ((char *) mydata)). remove (char *) a fait cette erreur aller au moins. thnx. –

+0

La valeur constante '-1' ne peut pas être convertie en 'uint' (utilisez la syntaxe 'non cochée' pour surcharger) ((uint) (-1)) >> ((10 - i) << 5) –

+0

Invalid expression ') 'pour int i = * ((ref int *) myPtr) myPtr est de type byte * –

Questions connexes