Appeler une fonction externe avec un tableau comme parametre de passage !
chichiboof
Messages postés17Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention17 juillet 2009
-
21 déc. 2005 à 10:44
cs_med_aatif -
14 mai 2008 à 22:14
bonjour !
je suis une nouvelle sur ce forum et sur VBA mais ancienne en programmation !!
et mon problem est le suivant :
je travail sur ArcGis(cartographie) et je dois rajouter un plugIn qui me permetra d'utiliser via un activex des fonctions externes !(en VC++)
je dois faire appel a une fonction avec un tableau comme paramettre de passage
et puisque cette fct n'est pas conçue en VBA comment faire pour l'appeler (sans byRef et byVal )
A voir également:
Appeler une fonction externe avec un tableau comme parametre de passage !
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 24 déc. 2005 à 18:25
salut,
un prototype de la fonction C++ serait le bienvenu..Declare Function
machin alias "_machin@4" lib "truc.dll"(ByRef tab() as Long) as long
donne extern "C" int _stdcall machin(int* tab);...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 déc. 2005 à 12:51
Je suppose que ta fonction est dans une DLL
Le proto de la fonction
me laisse a penser que ca n'est pas un object COM (ce n'est pas là une
méthode, c'est une fonction), il faut donc utiliser des appels API...
chichiboof
Messages postés17Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention17 juillet 2009 27 déc. 2005 à 15:58
resalut je mexecuse c vrais ! voici le protype complet
long AddObject(long lLayerId, BSTR szName, long lObjectId, short bOwnerDraw, double* pPoints, long lNbPoints, long* partPoints, long lNbPart, short bConvert, BSTR szProjection);
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 déc. 2005 à 16:10
la déclaration d'API donnerai a priori :
declare function AddObject lib "C:\MaDll.dll" ( byval lLayerId as long, byval szName as string, byval lObjectId as long, byval bOwnerDraw as integer, byval pPoints as long, byval lNbPoints as long, byval partPoints as long, byval lNbPart as long, byval bConvert as integer, byval szProjection as String) as Long
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 28 déc. 2005 à 15:14
tu l'as semble t'il bien déclaré.
Maintenant, tu dois pouvoir appeler ta fonction AddObject, depuis ton code VBA (a condition que ta dll exporte bien cette fonction)
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 29 déc. 2005 à 12:07
salut,
sinon essais de faire une TypeLib pour VB avec l'interface de ton
objet, tu l'importe s en référence et tu déclares Obj du type de ton
interface...comme ça tu pourras mieux débuger...pour les typelib
compatible VB, il faut utiliser mktyplib...