Nous avons une bibliothèque native que nous utilisons pour effectuer des tâches liées à la sécurité pour nous. Nous avons écrit une bibliothèque d'interopérabilité afin que nous puissions l'utiliser à partir de .NET.Pourquoi le code natif appelé à partir de .net donne-t-il un résultat différent de l'appel d'un programme natif?
Nous avons deux applications de test, la première application est écrite en C++ (non gérée) et la seconde est écrite en C#. Ils génèrent exactement la même séquence d'appels à la bibliothèque native, mais produisent des résultats différents.
Je suis perdu et ne trouve aucune erreur apparente dans les définitions d'importation .NET. Je l'ai déjà bousillé pour que je ne travaille qu'avec une interface très simple. Je suis à la recherche d'idées pour lesquelles l'appel d'une bibliothèque native à partir d'un environnement .NET peut influencer le résultat.
EDIT: Je n'ai pas une connaissance approfondie de la bibliothèque, donc je ne peux pas fournir beaucoup de choses sur ce qui est fait dans le code natif. Je sais qu'il maintient un fil (heatbeat). Une autre partie de la bibliothèque, utilisée pour identifier si l'application s'exécute sur une machine virtuelle, présente également le même comportement. Ce n'est pas nécessairement lié.
J'ai écrit une autre application de test en C++/CLI, car il est un peu plus facile de consommer la bibliothèque native qu'à partir du C# et elle donne aussi le même résultat que le C#.
Je pense que plus d'infomartion est nécessaire ici. Que faites-vous et comment le faites-vous? =) – Jens
Peu probable que la bibliothèque native soit la source des différents résultats. Les chances sont, la différence est dans les applications de test. –
Cela peut avoir plusieurs causes différentes. Pouvez-vous fournir plus de détails? –