• Sábado 21 de Diciembre de 2024, 12:05

Autor Tema:  Error de compilación: Se esperaba una función o una variable  (Leído 12579 veces)

johndoe90

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Error de compilación: Se esperaba una función o una variable
« en: Domingo 3 de Mayo de 2009, 23:23 »
0
Hola que tal?
A que es debido este error? Si, ya se que esperaba una funcion o una variable, pero en esencia, porque suele pasar este tipo de error?
El bucle esta bien escrito?
El error me lo marca con amarillo en Private Sub Form_Load() y en azul me subraya DLLdame_id.
Gracias.

Option Explicit

Private Sub Form_Load()
Dim n As Long
Dim k As Integer
Dim id As String
Dim t As String
Dim er As Long
Dim x As Long
x = 0
er = DLLcargar
If er = -1 Then
MsgBox "Error al cargar el fichero"
ElseIf er = -2 Then
MsgBox "Error al leer el id"
ElseIf er = -3 Then
MsgBox "error al leer el porcentaje de ocupacion"
ElseIf er = -4 Then
MsgBox "error al leer las cooredenadas"
ElseIf er = -5 Then
MsgBox "Las coordenadas exceden la capacidad de la matriz"
ElseIf er = -6 Then
MsgBox "Error al leer los datos personales"
Else
MsgBox "Fichero cargado correctamente"



id = "                    "
n = DLLdame_num_trenes
For k = 0 To n
    t = "                    "
    x = DLLdame_id(id, k)
    If x = 0 Then
        t = id
    End If
    List1.AddItem t
   
Next k
End Sub

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #1 en: Lunes 4 de Mayo de 2009, 10:52 »
0
Cita de: "johndoe90"
A que es debido este error?
No sabe a qué función te estás refiriendo con DLLdame_id(id, k). ¿Dónde tienes definida esta función? ¿Cuál es el prototipo?

johndoe90

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #2 en: Lunes 4 de Mayo de 2009, 12:38 »
0
Tienes un mail para que pueda enviarte el proyecto todo comprimido y mirarlo todo con mas calma?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #3 en: Lunes 4 de Mayo de 2009, 12:47 »
0
Cita de: "johndoe90"
Tienes un mail para que pueda enviarte el proyecto todo comprimido y mirarlo todo con mas calma?
Lo siento, no acostumbro a hacer eso porque es tu trabajo y de todas formas ahora mismo no tengo tiempo para depurar proyectos ajenos. Si quieres responder a las preguntas con mucho gusto te echo una mano.

Saludos

johndoe90

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #4 en: Lunes 4 de Mayo de 2009, 13:12 »
0
De acuerdo, esta funcion va a llamar en la dll la función escrita en C++ siguiente:

int FAR PASCAL DLLdame_id(char id [20],int i)
{
   t=*mis_trenes.dame_tren(i);
   strcpy (id,*t.dame_id());
   return 0;
}

Definida en DLLtrenes.cpp en VC++ 6.0

Esta dame_id esta definida en tren.cpp

Tpalabra* CTren::dame_id(void)
{
   return (&id);
}

De la clase CTren en public:

Tpalabra* dame_id(void);

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #5 en: Lunes 4 de Mayo de 2009, 14:23 »
0
Vale, entiendo. Tu problema es que le estás pasando una cadena de caracteres de VB a una función que espera una cadena de caracteres de C. No son compatibles. Debes pasar la cadena id como StrPtr(id) a la función, esto es

Código: Visual Basic
  1. x = DLLdame_id(StrPtr(id), k)
  2.  

Debería funcionar. Ya me cuentas, saludos.

PD: ¡utiliza las etiquetas de código!

johndoe90

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #6 en: Lunes 4 de Mayo de 2009, 16:23 »
0
Gracias, pero me sigue dando el mismo error.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #7 en: Lunes 4 de Mayo de 2009, 16:42 »
0
¿Cómo tienes declarada la referencia a DLLdame_id en VB?

johndoe90

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #8 en: Lunes 4 de Mayo de 2009, 16:52 »
0
Public Declare Sub DLLdame_id _
Lib "tren.dll" _
(ByVal id As String, ByVal k As Long)

johndoe90

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #9 en: Lunes 4 de Mayo de 2009, 17:16 »
0
Solucionado, en vez de ser Sub es Function, y devuelve un As Long.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error de compilación: Se esperaba una función o una variable
« Respuesta #10 en: Lunes 4 de Mayo de 2009, 19:15 »
0
Está bien que lo hayas descubierto tú solo  <_<