Passage de tableau en parametre ASP => composant COM [Résolu]

cs_leromantique6 29 Messages postés mardi 12 avril 2005Date d'inscription 27 août 2007 Dernière intervention - 13 juil. 2007 à 14:23 - Dernière réponse : cs_leromantique6 29 Messages postés mardi 12 avril 2005Date d'inscription 27 août 2007 Dernière intervention
- 11 août 2007 à 01:15
Bonjour,

J'ai un petit problème avec ma page asp.
Dans ma page asp, je cree un objet COM, puis j'appelle une fonction de cet objet qui prends en parametre deux tableau.
 Quand je lance la page il me dit que j'ai une erreur sur les parametres de la fonction. J'ai bp cherché sur internet mais j'ai pas trouvé grand chose.
Voici mon code : 

 Dim objetD
 names=array("french", "english","german","italian")
 Dim languages(4,3)

 languages(0,0) = 2
 languages(0,1) = 3
 languages(0,2) = 4
... 
 
 set objetD = Server.CreateObject("DetectLanguageProcess.Base.Identifier")
 call objetD.initialize names,language

Mon composant COM est ecrit en C#, voici la signature de la methode en question:
public void initialize(string[]names, int[][] l)

Merci d'avance pour votre aide.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_leromantique6 29 Messages postés mardi 12 avril 2005Date d'inscription 27 août 2007 Dernière intervention - 20 juil. 2007 à 22:34
3
Merci
Merci pour ta réponse, mais finalement je passe une string en parametre que je parse pour en creer un tableau.
C'est un peu de la bricole mais ca marche bien ;)

Merci cs_leromantique6 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_leromantique6
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 19 juil. 2007 à 23:56
0
Merci
salut,

tu peux essayer de mettre des marshalas safearray dans ton code c# et en asp, il me semble que si tu déclares un tab(4,3), il a 5* 4 cases...

ShareVB
Commenter la réponse de ShareVB
cs_leromantique6 29 Messages postés mardi 12 avril 2005Date d'inscription 27 août 2007 Dernière intervention - 9 août 2007 à 14:56
0
Merci
Re-bonjour!
Finalement, je me sens contraint d'utiliser ta methode ShareVB (Marshallas safearray). Parce qu'a partir d'un programme composant Com, j'ai une fonction qui renvoit un tableau de int assez conséquent. Et j'ai pas envie de spliter ce tableau ca prendrai encore plus de temps.

Pour ce faire j'ai fait un petit test :

interface testInterface{

   [return: MarshalAs(UnnmanagedType.saffeArray)]
   int[] getTest();
}
public class testImpl : testInterface{
   public int[] getTest(){
      int[] tab = new int[]{1,2,3,4,5,6,7,89,0};
     return tab;
   }
}

Donc Si j'appelle cet objet a partir d'une page asp, comme ceci :

... creation de l'objet (server.createobject ...)
tableau = t.getTest()

Lorsque je fais typename(tableau), ca marche, ca reponds : Long().
Quand je fais ubound(tableau) => 9.
Parcontre quand je fais : tableau(1), ca marche plus !!! Erreur : Type incompatible ....

Voila, et la j'ai beau chercher des info sur le net ca marche pas trop ..
Votre aide serez la bienvenue

Merci
Commenter la réponse de cs_leromantique6
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 10 août 2007 à 21:26
0
Merci
salut,

essaie de mettre le [return: ...] dans la classe et pas dans l'interface...

ShareVB
Commenter la réponse de ShareVB
cs_leromantique6 29 Messages postés mardi 12 avril 2005Date d'inscription 27 août 2007 Dernière intervention - 11 août 2007 à 01:15
0
Merci
Ca marche pas ...
J'ai mm modifier le code MSIL comme specifié  dans la MSDN ca marche toujours pas.
Apparament c pas tres interoperable tout ca ...
Commenter la réponse de cs_leromantique6

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.