Bonjour
J�ai un �trange probl�me que je ne sais pas r�soudre.
Je suis ing�nieur retrait�, et, sans �tre informaticien de formation, ai beaucoup fait de calculs en Fortran et Excel VBA.
Depuis une douzaine d�ann�es, je m�int�resse aux comp�titions de courses virtuelles � la voile chez Virtual Regatta.
Et j�ai d�velopp� un routeur, donc un gros programme permettant, � partir des vents pr�vus sur le site m�t�o am�ricain NOAA et de divers fichiers (profils des c�tes, polaires des voiliers � ) de calculer la meilleure route possible pour le voilier.
Ce routeur est basiquement en Excel VBA 64 bits, avec appel � des routines de calcul dans une dll �crite en Visual Studio C++ 64 bits d�s qu�une partie des calculs devient tr�s lourde.
Comme je n�ai pas envie de passer du temps � apprendre les subtilit�s de C++, tout est basique. Pas de New, re Redim, � Tous les tableaux sont donc d�finis en dimensions fixes, sans aucune subtilit�.
Avec la m�me philosophie en VBA.
J�ai deux ordinateur, un assez gros fixe, vieux i7, 16Go de m�moire, et un vieux portable, i3, 6 Go.
Et depuis quelques temps, j�ai des plantages en d�bug C++ sur une ligne qui ne pr�sente aucune difficult� : � void __stdcall CopieVentsEC(int & Pr�vision, double & Latitude, double & Longitude, double & Direction, double & vitVentNd) �
Une exception non g�r�e a �t� lev�e : violation d'acc�s en lecture Longitude a �t� nullptr
Pr�vision et Latitude sont transmises correctement, pas les trois autres arguments.
La ligne d�appel en VBA est simple :
Call CopieVentsEC(Pr�vision - 1, Latitude, Longitude, VentDirection, VentVitesse)
Et sa d�finition me semble correcte :
Declare PtrSafe Sub CopieVentsEC _
Lib "G:\MesFichiers\VirtualRegatta\_C++\_RoutageC93\_RoutageC\x64\Debug\_RoutageC.dll" _
(Pr�vision As Long, Latitude As Double, Longitude As Double, VentDirection As Double, VentVitesse As Double)
Mais le plus �tonnant est que, si je copie sans la moindre modif les fichiers du fixe qui plante vers le mobile, le programme y fonctionne parfaitement.
Sur le fixe, j�ai donc :
- Gonfl� la m�moire � 16 Go,
- Totalement r�install� W10 en �crasant tout, avec toutes les mises � jour
- R�install� Office 2010, donc Excel
- R�install� Visual Studio C++ 2022, � jour
- Cr�� un projet neuf dans lequel j�ai inclus mes fichiers sources .cpp et .def
Bref, j�ai fait tout ce qui me semblait faisable.
Et �a plante toujours, et seulement sur le fixe.
Si quelqu�un a une id�e ???
Merci.
P.S. Office et Visual Studio sont en 64 bits.
Partager