Bonjour,
j'ai une dll C/C++ compilée sous Visual Studio 98. Elle marche.
Lorsque je la convertit sous Visual 2005 (ou 2008), des trucs dingues se passent.
Par exemple j'ai dans une structure une variable var1 qui est normalement non nulle. Le debugueur me l'affiche nulle, mais si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
if(maStruct->var1 > 0)
{
maFonction(maStruct);
}
Il passe le if et va bien dans maFonction.
Par contre dans maFonction si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
for(int i = 0 ; i < maStruct->var1 ; i++)
Il ne rentre pas dans la boucle.

Je rajoute un printf pour voir ce qu'il y a vraiment dans var1. Oh miracle, var1 n'est plus nul, me dit le debugueur (j'ai JUSTE rajouté un printf). On va toujours dans maFonction (cette fois c'est logique). Par contre il ne rentre toujours pas dans la boucle for.

Que peut-il bien se passer ? J'ai d'abord pensé à des problèmes d'alignement, mais les paramètres de projets ont bien été conservés depuis VS98 et la dll et le programme appelant ont les mêmes paramètres d'alignement.

Merci