Pb avec comdlg32.dll

hades_lance Messages postés 24 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 6 juillet 2005 - 16 août 2004 à 01:02
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 3 févr. 2010 à 11:28
Salut, qqn peut m'expliquer pourquoi j'ai l'erreur 'impossible d'ajouter une reference a ce fichier' lorsque j'essaie de charger la bibliotheque comdlg32.dll .
comment puis je resoudre ce pb?
j'ai besoin d'utiliser la fonction getopenfilename.
merci d'avance

10 réponses

FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
16 août 2004 à 05:49
desinstalle le vb et rinstalle le. Mai avant verifie que
tu as installer le srvice pack 5 et 6 ?

Souriez vous ête lu 8-)
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
16 août 2004 à 08:20
Pour utiliser getopenfilename il ne faut pas passer par le menu reference de vb mais par une declaration d'API comme ceci :

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long


a taper dans le code du module concerné

@+

E.B.
0
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
16 août 2004 à 12:23
arf je me suis fait avoir lol :D
faut dire que je ne manipule pas vraiment les fichier des api moi :P
Souriez vous ête lu 8-)
0
hades_lance Messages postés 24 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 6 juillet 2005
17 août 2004 à 00:25
je vous remercie de vos reponses mais EBArtSoft voici ce qui se passe lorsque je fais ta declaration:
- si j'ecris :
Private Declare Function GetOpenFileName
Lib "comdlg32.dll" Alias "GetOpenFileNameA"
alors l'appel a getopenfilename ne semble rien faire;
- si j'ecris :
Private Declare Function GetOpenFileName Lib "comdlg32.dll"
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME)
As Long;
alors j'ai une erreur du genre 'user defined variable not
defined'.
Cette derniere ecriture ne me semble pas utile car je devrais pouvoir appeller getopenfilename SANS ARGUMENTS.
Est ce alors un pb avec mes fichiers dll?

merci d'avance
0

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

Posez votre question
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
17 août 2004 à 01:27
j'ai piquer un exemple dans apiguide

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim OFName As OPENFILENAME
OFName.lStructSize = Len(OFName)
'Set the parent window
OFName.hwndOwner = Me.hWnd
'Set the application's instance
OFName.hInstance = App.hInstance
'Select a filter
OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
'create a buffer for the file
OFName.lpstrFile = Space$(254)
'set the maximum length of a returned file
OFName.nMaxFile = 255
'Create a buffer for the file title
OFName.lpstrFileTitle = Space$(254)
'Set the maximum length of a returned file title
OFName.nMaxFileTitle = 255
'Set the initial directory
OFName.lpstrInitialDir = "C:"
'Set the title
OFName.lpstrTitle = "Open File - KPD-Team 1998"
'No flags
OFName.flags = 0

'Show the 'Open File'-dialog
If GetOpenFileName(OFName) Then
MsgBox "File to Open: " + Trim$(OFName.lpstrFile)
Else
MsgBox "Cancel was pressed"
End If
End Sub

Souriez vous ête lu 8-)
0
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
17 août 2004 à 01:30
oups
j'ai oublier utilise un module pour declarer tes api / type / constante (aux cas ou tu debutes)

c'est pas obligatoire mai c'est conseillier :)
Souriez vous ête lu 8-)
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 août 2004 à 08:15
hades_lance> pourquoi veux tu appeler GetOpenFileName SANS argument ? c'est une API qui necessite un argument et pas n'importe lequel une structure assez complexe OPENFILENAME je te conseil de te ducomenter sur cet api car il ne suffit pas d'appeler la fonction pour qu'elle fonctionne il faut egalement remplir les champ de cette structure avec des paramettres...

@+

E.B.
0
hades_lance Messages postés 24 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 6 juillet 2005
17 août 2004 à 18:45
Merci beaucoup FeelCode, ton exemple marche bien et de plus je peux personnaliser ma boite de dialogue.
Cependant EBArstSoft meme si la solution de FeelCode est preferable de part le fait que l'on peut personnaliser la boite de dialogue, j'ai vu sur le net certaines personnes qui se contentaient de faire : Application.GetOpenFileName .
Je me demande si ils ont une version plus recente de vb ou access.

a+
0
phcr Messages postés 3 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 3 février 2010
3 févr. 2010 à 11:10
PHC

Bonjour,
Une précision pour ceux qui liront ce message :
Application.GetOpenFileName... fonctionne telle quelle en VBA pas en VB.
Cordialement.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 févr. 2010 à 11:28
Bonjour,
permettez-moi de me montrer surpris de ce que cette déclaration :
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

puisse fonctionner sous VB.Net ! (citation : "Merci beaucoup FeelCode, ton exemple marche bien")

Sous quoi développes-tu donc, finalement, hades_lance ?
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
Rejoignez-nous