Avertissement du compilateur (niveau 1) C4835
'variable' : l’initialiseur pour les données exportées ne sera pas exécuté tant que le code managé n’est pas d’abord exécuté dans l’assembly hôte
Lors de l’accès aux données entre les composants managés, il est recommandé de ne pas utiliser de mécanismes d’importation et d’exportation C++ natifs. Au lieu de cela, déclarez vos membres de données à l’intérieur d’un type managé et référencez les métadonnées avec #using
dans le client. Pour plus d’informations, consultez #using, directive.
Exemples
L’exemple suivant génère l’erreur C4835.
// C4835.cpp
// compile with: /W1 /clr /LD
int f() { return 1; }
int n = 9;
__declspec(dllexport) int m = f(); // C4835
__declspec(dllexport) int *p = &n; // C4835
L’exemple suivant utilise le composant intégré à l’exemple précédent, montrant que la valeur des variables n’est pas comme prévu.
// C4835_b.cpp
// compile with: /clr C4835.lib
#include <stdio.h>
__declspec(dllimport) int m;
__declspec(dllimport) int *p;
int main() {
printf("%d\n", m);
printf("%d\n", p);
}
0
268456008
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour