22 novembre 2008
2devs.com
> Open source
> .NET
Erreur .net FrameWork

Erreur de compilation visual studio 2003 : System.ArithmeticException
Erreur de compilation .net
Publié le 03/10/2004, par
Jean-Baptiste Alagnoux
Erreur de la compilation des application windows managés en C# et VB.net avec le service pack 2 de microsoft windows XP( winxp SP2 )
Cet article est la traduction d’un article anglais servant à résoudre le bug de compilation System.ArithmeticException dans les application Windows managés en C# et VB.net.
Cet article est la reprise d’un article écrit par Daniel Turini concernant le bug de compilation System.ArithmeticException dans la System.drawing.dll ou encore dans System.Windows.Forms.
Ce bug survient quand des opérations à virgule flottantes sont utilisées dans le code car le compilateur demande au FPU de gérer l’opération. Ce qui, depuis le services pack 2 de Windows nécessite l’initialisation explicite du FPU.
Sur certaine machine, aucunes compilations Winforms en C# n’est possible sans l’initiation du FPU. Ce bug peut également arriver lors du formattage des fontes, ou le changement de Labels, etc....
Le code mis au point par Daniel Turini permet une remise à zéro du FPU.
Le code se décompose comme suit :
[DllImport("msvcr70.dll", CallingConvention =CallingConvention.Cdecl)]
public static extern int _controlfp(int n, int mask);
const int _RC_NEAR = 0x00000000;
const int _PC_53 = 0x00010000;
const int _EM_INVALID = 0x00000010;
const int _EM_UNDERFLOW = 0x00000002;
const int _EM_ZERODIVIDE = 0x00000008;
const int _EM_OVERFLOW = 0x00000004;
const int _EM_INEXACT = 0x00000001;
const int _EM_DENORMAL = 0x00080000;
const int _CW_DEFAULT = ( _RC_NEAR + _PC_53 + _EM_INVALID + _EM_ZERODIVIDE + _EM_OVERFLOW + _EM_UNDERFLOW + _EM_INEXACT + _EM_DENORMAL);
static void ResetFPU()
{
_controlfp(_CW_DEFAULT ,0xfffff);
}
Pour plus d’informations :
Site de daniel Turini :
http://dturini.blogspot.com/2004_08_01_dturini_archive.html
Site de microsoft :
http://support.microsoft.com/default.aspx ?scid=KB ;EN-US ;q326219
Interfaçage de l’API Electre en C#
client windows C# pour API Electre XML. fonctionne sous Windows + .net framework 1.1.
par Jean-Baptiste Alagnoux
Récupération de Headers HTTP en ligne de commande
Entièrement codé en C# ligne de commande, cet utilitaire est une base permetant de récupérer les headers HTTP des serveurs distants. l’application de base est disponible et compilée. le code source est inclut de le fichier zip.
par Jean-Baptiste Alagnoux
Utilitaire de capture d’écran en c-sharp
Cet utilitaire sert à faire des captures d’écrans et les imprimer. Entierement programmé en C-Sharp, les fichiers sources sont téléchargeables sur cette page.
par Jean-Baptiste Alagnoux