GEGEMATIC Posté(e) le 11 juillet 2014 Posté(e) le 11 juillet 2014 Salut,je reprend un projet .net, car je voulais ma faire une petite extension de findfilequi accepte les jokertout marche, sauf le LispFunction <LispFunction("FindFilesLike")> _ Public Function FindFilesLike(ByVal Path As String, ByVal FilePattern As String, ByVal Mode As Integer) As ResultBuffer A l'occasion, j'ai remarqué que tous mes lispfunction que j'avais, et qui marchais créent le même message d'erreur : System.ArgumentException: Impossible d'établir une liaison avec la méthode cible, car sa signature ou sa transparence de sécurité n'est pas compatible avec celle du type délégué. à System.Delegate.CreateDelegate(Type type, Object firstArgument, MethodInfo method, Boolean throwOnBindFailure) à System.Delegate.CreateDelegate(Type type, Object firstArgument, MethodInfo method) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction) à Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.InvokeLisp() "Demande ADS erronée" Si qq a des idées ? merci,Gérald ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Maxence DELANNOY Posté(e) le 11 juillet 2014 Posté(e) le 11 juillet 2014 La fonction ne doit prendre qu'un seul argument de type ResultBuffer : <LispFunction("FindFilesLike")> _ Public Function FindFilesLike(ByVal args As ResultBuffer) As ResultBuffer Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr
GEGEMATIC Posté(e) le 15 juillet 2014 Auteur Posté(e) le 15 juillet 2014 La fonction ne doit prendre qu'un seul argument de type ResultBuffer :Salutmerci, c'était ça, et apparemment, elle doit au moins en comporter unau passage je poste cette petite fonction, qui est bien utile pour moi 'usage (FindFilesLike "Directory" "filepattern" "mode = TopDirectoryOnly or AllDirectories") 'TopDirectoryOnly Inclut uniquement le répertoire actif dans une recherche. 'AllDirectories Inclut le répertoire actif et tous les sous-répertoires dans une opération de recherche. Cette option inclut des points d'analyse tels que des lecteurs montés et des liens symboliques dans la recherche. 'exemple (FindFilesLike "C:\\MonChemin\\" "MonFichierN*.pdf" "TopDirectoryOnly") 'retourne ("C:\\MonChemin\\MonFichierN1.pdf" "C:\\MonChemin\\MonFichierN2.pdf") <LispFunction("FindFilesLike")> _ Public Function FindFilesLike(ByVal rbfArgs As ResultBuffer) As ResultBuffer Dim arInputArgs As Array Dim rbfResult As ResultBuffer Dim Mode As String Dim Path As String Dim FilePattern As String Dim filesFound As Array = Array.CreateInstance(GetType(String), 0) Dim FileDetails(0) As String arInputArgs = rbfArgs.AsArray Path = CType(arInputArgs.GetValue(0), TypedValue).Value FilePattern = CType(arInputArgs.GetValue(1), TypedValue).Value Mode = CType(arInputArgs.GetValue(2), TypedValue).Value If Mode = "AllDirectories" Then filesFound = System.IO.Directory.GetFiles(Path, FilePattern, IO.SearchOption.AllDirectories) ElseIf Mode = "TopDirectoryOnly" Then filesFound = System.IO.Directory.GetFiles(Path, FilePattern, IO.SearchOption.TopDirectoryOnly) Else MsgBox("Mode de recherche : " & Mode.ToString & " Inconnu") End If 'Dim Nb As Integer = 0 If filesFound.Length > 0 Then rbfResult = New ResultBuffer For Each oneFIle In filesFound 'Nb = Nb + 1 rbfResult.Add(New TypedValue(CInt(5005), oneFIle.ToString)) Next Return rbfResult Else 'les 2 suivant retourneront (nil) 'rbfResult = New ResultBuffer(New TypedValue(CInt(LispDataType.Nil))) 'rbfResult.Add(New TypedValue(CInt(LispDataType.Nil))) 'celui là retourne nil ... Return Nothing End If End Function ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant