Code VB2008

cs_Guy_roland Messages postés 38 Date d'inscription dimanche 29 janvier 2006 Statut Membre Dernière intervention 11 mai 2009 - 4 mai 2009 à 13:18
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009 - 11 mai 2009 à 15:50
j'utilise une DLL sous VB2008 et je dois faire une variable par réference a une fonction de la DLL et cela j'ai ce message d'erreur:
Avertissement 1 La variable 'Setup' est passée par référence avant qu'une valeur ne lui ait été assignée.
Une exception de référence null peut se produire au moment de l'exécution.
Assurez-vous que la structure ou que tous les membres de référence sont initialisés avant de les utiliser.
Si quelqu'un a une solution je suis partant.
Le code marchait parfaitement sous VB6
Merci!

5 réponses

cs_Guy_roland Messages postés 38 Date d'inscription dimanche 29 janvier 2006 Statut Membre Dernière intervention 11 mai 2009
4 mai 2009 à 15:18
j'ajoute d'autres indications pour voir si quelqu'un a deja eu le meme probleme
voici le message que j'ai :' UPGRADE_WARNING: Arrays in structure xx may need to be initialized before they can be used.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
5 mai 2009 à 16:07
Bonjour Guy_Roland,
Moi aussi j'ai ce message tout le temps, (et si j'utilise des DLLs, c'est pas de ma faute): ca m'arrive chaque fois que j'initialise pas les variables. Parfois, on peut initialiser à nothing, même ByRef (ce qui parait idiot parce que si la variable pointée par référence n'existe pas, il n'y a pas de raison non plus pour que ca fonctionne.) Et ce n'est rien à coté de la gestion des threads chez Microsoft qui ferait mieux de s'occupper de garder les windows ouverts sur les forms que d'espèrer faire le taf a marchander des souris avec la bille entre deux threads.
Et quand on utilise pas la variable, on a un message dans le débugger: On a jamais fini ...
Salut.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
5 mai 2009 à 16:08
Non, je connais pas le deuxième message. Comment on fait pour y avoir droit ?
0
cs_Guy_roland Messages postés 38 Date d'inscription dimanche 29 janvier 2006 Statut Membre Dernière intervention 11 mai 2009
11 mai 2009 à 12:26
Moi j'ai fais comme ceci dim template as new RSI_TEMPLATE mais j'ai une erreur de lecture écriture de la mémoire protège.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
11 mai 2009 à 15:50
Je connais rien aux Dll, et je les fuis comme la peste (si ça continue je passe à Linux bootable d'un CD), mais peut-être avec Imports Idisposable. J'ai aussi une page qui parle de InteropServices, PInvoke et COM Interop:
Pinvoke permet d'appeller des Dll ... alors que COM Interop permet de réemployer les composants .com
(ca serait pas plus difficile en chinois.) Je continue.
Avant d'appeler une fonction ... déclarer son nom et sa syntaxe ... Declare (Vieilles DLLs) ou DllImport (.Net)
Il y a un exemple:
Declare[Ansi|Unicode|Auto] [Sub|Function] nomprocédure Lib "nomdll"
[Alias "pointentree"] (arglist) [astyperetourné]
suivi d'un exemple de code pour déplacer une fenêtre, un peu comme l'utilisation des Apis.

Ensuite un exemple pour Dllimport mais sans le prototype.
Public class WindomsFunctions
<DllImports("user32")>
...... Si tu connais tu m'arrête.
0
Rejoignez-nous