Autor Tema: Utilizar código C en Visual Basic 6  (Leído 2602 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LoPiTaL

  • PIC12
  • **
  • Mensajes: 73
Utilizar código C en Visual Basic 6
« en: 26 de Marzo de 2008, 09:06:54 »
Hola a todos!

Os explico: tengo un código escrito en C. No es exactamente un programa, sino un conjunto de funciones que hacen determinadas acciones con ficheros. Me gustaría saber si a éstas funciones las puedo llamar desde Visual Basic, y si es así, ¿cómo?

Supongo que deberé crear una librería en las que estén metidas estas funciones. También me gustaría que me explicáseis esta parte.

Una vez creada la librería, tendré que importarla desde Visual Basic y ahora sí podré llamar a las funciones. Tampoco sé hacer esto....

Si tuviéseis un ejemplito en el que se vea todo el proceso desde el principio, por muy simple que fuese, os lo agradecería muchísimo: un ejemplo vale más que mil palabras  :)

Espero vuestra ayuda,

Muchas gracias de antemano,

LoPiTaL
Hoy soy yo quién pregunta. Mañana seré quien conteste...

Desconectado ma4826

  • PIC16
  • ***
  • Mensajes: 130
Re: Utilizar código C en Visual Basic 6
« Respuesta #1 en: 26 de Marzo de 2008, 09:19:13 »
Te pongo unos trozos de código de un programilla que hice en visual basic 5 y que usaba unas funciones de una dll que hice en MS Visual C 6.

La parte de c

Código: [Seleccionar]

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

#define TamBuffer 4092
#define TamMaxLista 256

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
)
{
    return TRUE;
}

long _stdcall Buscar(char *xdes,long principio,long final,long sentido,short int numdat,unsigned char lista[TamMaxLista])
{
...
}

long _stdcall CopiarA(char *origen,char *destino,long principio,long final)
{
...
}


y aquí la parte de visualbasic

Código: [Seleccionar]
Public Declare Function Buscar Lib "windebug.dll" (ByVal archivo As String, ByVal Inicio As Long, ByVal Final As Long, ByVal Sentido As Long, ByVal numdat As Integer, ByRef lst As ld) As Long

Public Declare Function CopiarA Lib "windebug.dll" (ByVal origen As String, ByVal Destino As String, ByVal Inicio As Long, ByVal Final As Long) As Long


Saludos,

Miguel Angel.

万人の友は誰の友でもない。

Desconectado LoPiTaL

  • PIC12
  • **
  • Mensajes: 73
Re: Utilizar código C en Visual Basic 6
« Respuesta #2 en: 26 de Marzo de 2008, 12:22:06 »
Ahhh ok ok, ya está esto funcionando, muchas gracias!!!

Me he liado un poco con los punteros, porque no había leído bien tus ejemplos y pensaba que si necesitabas un char * (es decir el string) tenías que pasar desde Visual Basic con ByRef, y no, tiene que ser como bien has dicho con ByVal.

Muchas gracias por la ayuda!!
Hoy soy yo quién pregunta. Mañana seré quien conteste...


 

anything