SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: johndoe90 en Domingo 3 de Mayo de 2009, 23:23

Título: Error de compilación: Se esperaba una función o una variable
Publicado por: johndoe90 en Domingo 3 de Mayo de 2009, 23:23
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
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: m0skit0 en Lunes 4 de Mayo de 2009, 10:52
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?
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: johndoe90 en Lunes 4 de Mayo de 2009, 12:38
Tienes un mail para que pueda enviarte el proyecto todo comprimido y mirarlo todo con mas calma?
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: m0skit0 en Lunes 4 de Mayo de 2009, 12:47
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
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: johndoe90 en Lunes 4 de Mayo de 2009, 13:12
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);
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: m0skit0 en Lunes 4 de Mayo de 2009, 14:23
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!
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: johndoe90 en Lunes 4 de Mayo de 2009, 16:23
Gracias, pero me sigue dando el mismo error.
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: m0skit0 en Lunes 4 de Mayo de 2009, 16:42
¿Cómo tienes declarada la referencia a DLLdame_id en VB?
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: johndoe90 en Lunes 4 de Mayo de 2009, 16:52
Public Declare Sub DLLdame_id _
Lib "tren.dll" _
(ByVal id As String, ByVal k As Long)
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: johndoe90 en Lunes 4 de Mayo de 2009, 17:16
Solucionado, en vez de ser Sub es Function, y devuelve un As Long.
Título: Re: Error de compilación: Se esperaba una función o una variable
Publicado por: m0skit0 en Lunes 4 de Mayo de 2009, 19:15
Está bien que lo hayas descubierto tú solo  <_<