el 03-31-2016 04:51 AM
He creado una funcion en labview, que llamo desde VBA (en mi caso Access, pero sería lo mismo desde Excel). La idea es pasarle unos parametros, y obtener de vuelta un array.
En la opción de comunicarme con la funcion en formato VI, no tengo problemas, pero cuando compilo, y lo intento con dll, es cuando me surge el problema.
La comunicación me funciona, simpre que los parametros sea un numero double o integer, pero cuando tengo que pasar un array o un cluster, no lo consigo.
Añado un ZIP con un proyecto ejemplo labociew, y dos dll, creados de forma diferente( en un word hay pantallazos de las dos formas posibles)
Tambien he añadido el Access, para poder ver el codigo VBA.
De todas formas, os copio el codigo de VBA:
Private Declare Function Salvar Lib "C:\ComunicacionVBA\SharedLib.dll" (ByVal y As Double, ByVal x As Double, ByRef Vector As Variant, ByRef Longitud As Integer) As Double
Private Declare Function Salvar2 Lib "C:\ComunicacionVBA\SharedLib2.dll" (ByVal y As Double, ByVal x As Double, ByRef Vector As Variant) As Double
Private Sub Comando_Click()
Dim x, y As Double
Dim Vector As Variant
Dim Longitud As Integer
x = 1
y = 2
x = Salvar(y, x, Vector, Longitud)
MsgBox (x)
MsgBox (Longitud)
MsgBox (Vector)
End Sub
Private Sub Comando2_Click()
Dim x, y As Double
Dim Vector As Variant
x = 1
y = 2
x = Salvar2(y, x, Vector)
MsgBox (x)
MsgBox (Vector(0))
End Sub