Problema llamada función DLL en Excel-VBA
Publicado por usuariocccc (4 intervenciones) el 26/07/2018 21:28:53
Buenas tardes,
Tengo un problema con una dll que estoy intentando incluir en una macro para el calculo de componentes mecanicos.
La dll la proporciona un fabricante y sirve para seleccionar su componente de forma automática.
En el manual de la dll se proporciona el siguiente código:
Pero cuando se ejecuta y llama a la funcion "startjob" se produce un error, ya que no encuentra la dll y salta el error: "se ha producido el error '48' en tiempo de ejecución, no se encontro el archivo :"C:\Users\Usuario\Desktop\Componentes\Baterias VRF\calcdll.dll" "
Alguien me podría echar una mano????? he comprobado la ruta de la dll y es correcta
¿existe alguna otra manera de llamar a la dll?
Un saludo y muchas gracias de antemano por la ayuda
Tengo un problema con una dll que estoy intentando incluir en una macro para el calculo de componentes mecanicos.
La dll la proporciona un fabricante y sirve para seleccionar su componente de forma automática.
En el manual de la dll se proporciona el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'Function declaration
Public Declare PtrSafe Function StartJob Lib "C:\Users\Usuario\Desktop\Componentes\Baterias VRF\calcdll.dll" (ByRef p1 As Double, ByRef p2 As Variant, ByRef p3 As Double) As Boolean
Public Declare PtrSafe Function SetPricePath Lib "C:\Users\Usuario\Desktop\Componentes\Baterias VRF\calcdll.dll" (ByRef p1 As String)
Const NINPUTDATA = 100
Const NRESDATA = 100
Const NOPTIONSDATA = 1
Const P60 = 1
'where "c:\calcsoft\calcdll\debug\calcdll.dll" is the absolute path of calcdll.dll
'Usage
Function StartCalc_Clicked()
Dim bErr As Boolean
Dim aInputData(NINPUTDATA) As Double
Dim aResult(NRESDATA) As Variant
Dim aOptions(NOPTIONSDATA) As Variant
Dim a As Boolean
On Error GoTo StartCalc_exit
'Collect data from input mask
aInputData(0) = 1 'coil type P60
aInputData(1) = 32 'inlet temperature 32°C
aInputData(2) = 50 '50% R.H.
aInputData(5) = 2000 'air volume 2000 Sm3/h
aInputData(14) = 4 '4 Rows
aInputData(15) = 10 '10 tubes per row
aInputData(16) = 2 'fin pitch 2.0 mm
aInputData(17) = 4 '4 circuits
aInputData(18) = 500 'coil length 500 mm
aInputData(26) = 7 'water inlet temp 7 °C
aInputData(27) = 12 'water outlet temp 12 °C
' DLL DBM
SetPricePath (".\\")
a = StartJob(aInputData(0), aResult(0), aOptions(0))
'show data results
'ShowResult (aResult)
MsgBox ("Selected coil" & aResult(29)) 'Simple result processing
'Exit Sub
StartCalc_exit: MsgBox ("Errors during calculation")
'Resume Next
End Function
Pero cuando se ejecuta y llama a la funcion "startjob" se produce un error, ya que no encuentra la dll y salta el error: "se ha producido el error '48' en tiempo de ejecución, no se encontro el archivo :"C:\Users\Usuario\Desktop\Componentes\Baterias VRF\calcdll.dll" "
Alguien me podría echar una mano????? he comprobado la ruta de la dll y es correcta
¿existe alguna otra manera de llamar a la dll?
Un saludo y muchas gracias de antemano por la ayuda
Valora esta pregunta


0