Título: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 00:37 am
Buenas noches, estoy tratando de hacer un software que use las funciones establecidas en una DLL, dicha DLL no fue creada por mi ni tengo el source, pero pude ver su contenido usando ciertos programas, siendo su contenido el siguiente. //BBCFPCOM 1.0 Type Library //Version: 1.0 BBCFPCOMLib; GUID = {C2CFDD51-0603-4889-9FF5-B943AA46118B};
Enum CFP_TYPE; CFP_TYPE_NORMAL = 0; CFP_TYPE_PATRIOT = 1; CFP_TYPE_EDW = 2; CFP_TYPE_RMA = 3; CFP_TYPE_STP = 4; CFP_TYPE_BRL = 5;
//CFPGRSCOM Class CoClass CFPGRSCOM; GUID = {3B5626A7-724D-4F17-A980-002FDC26B567};
//BBCFPCOM 1.0 Type Library Interface ICFPGRSCOM; GUID = {33CF20BC-B452-4529-B78E-B48E821AF3A8}; //Connect to Any USB device found function ConnectAnyUSB(nMaxTimeoutMs: I4; nResetTimeOutMs: I4): HResult; stdcall; //method ConnectToBootImage function ConnectToBootImage: HResult; stdcall; //Erase files and OS function Wipe(bWipeOS: Bool): HResult; stdcall;
Entonces por lo que veo dicha DLL (Desarrollada en .NET) Tiene las siguientes funciones: -ConnectAnyUSB -ConnectToBootImage -Wipe Necesito usar dichas funciones, pero no logro hacerlo. Hice un nuevo proyecto en Visual Basic 6, registre dicha DLL y la agregue como referencia en mi proyecto. Lugo hice el siguiente code: Dim CFP As BBCFPCOMLib.CFPGRSCOM
Private Sub Command1_Click() Set CFP = New BBCFPCOMLib.CFPGRSCOM CFP.ConnectAnyUSB 50, 50 CFP.ConnectToBootImage End Sub
Dandome error de Timeout en ConnectToBootImage, cuando dicha funcion no tiene TimeOut. Tambien intente llamando a la DLL desde un modulo: Public Declare Function ConnectToBootImage Lib "BBCFPCOM.dll" () Public Declare Function ConnectAnyUSB Lib "BBCFPCOM.dll" (ByVal nMaxTimeoutMs As Integer, ByVal nResetTimeOutMs As Integer)
y luego haciendo la llamada desde dicha DLL Private Sub Command1_Click() Call Module1.ConnectAnyUSB(50, 0) Call Module1.ConnectToBootImage End Sub
Y ahora me muestra que: "Can't Find DLL entry point ConnectAnyUSB in BBCFPCOM.dll" me dice que no encuentra dicha funcion, pero si presiono F2 si aparece como una funcion de dicha DLL. Descarga la DLL http://www.megaupload.com/?d=P24K7EPM
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 01:17 am
Ahora agregue la DLL como referencia en el proyecto y escribi el siguiente codigo: Option Explicit Private Declare Sub InitCommonControls Lib "comctl32.dll" () Private WithEvents frmNET As BBCFPCOMLib.CFPGRSCOM
Private Sub Command1_Click() Set frmNET = New CFPGRSCOM frmNET.ConnectAnyUSB 50, 0 frmNET.ConnectToBootImage End Sub
Y se me queda colgada la PC al momento de ConnectAnyUSB, alguna ayuda?? tengo windows 7, formateare y pondre winxp para ver qe tal.
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 03:46 am
Cmbie a Visual Basic .NET y ahora si me reconoce la interface ICFPGRSCOM Public Class Form1 Private Declare Sub InitCommonControls Lib "comctl32.dll" () Dim CFP As BBCFPCOMLib.ICFPGRSCOM Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click CFP.ConnectAnyUSB(50, 0) End Sub End Class
Pero ahora me da un error con el CFP. No se controlo NullReferenceException Referencia a objeto no establecida como instancia de un objeto
Título: Re: Trabajar con Funciones de DLL
Publicado por: seba123neo en 12 Marzo 2011, 03:56 am
sera que te falta instanciar el objeto CFP con la palabra New, ahi solo la declaraste.
PD: esa api InitCommonControls no es necesaria en .NET
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 04:03 am
ese es el detalle... que no me deja poner: Dim cfp As New BBCFPCOMLib.ICFPGRSCOM
Ya que NEW no se puede utilizar en una interfaz
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 04:27 am
'New' cannot be used on an interface
Instrucción Dim (Visual Basic) utiliza una cláusula New (Visual Basic) al declarar una variable para que sea de un tipo de interfaz.
Aunque una interfaz es un tipo de referencia, no puede crear una instancia de él. Sólo puede utilizar New para crear una instancia de una clase o una estructura.
Identificador de error: BC30375
Para corregir este error 1.Si la variable va a ser de un tipo de interfaz, quite la palabra clave New.
2.Si la variable va a hacer referencia a una instancia, declárela para que sea de una clase o un tipo de estructura. Conserve la palabra clave New para crear una instancia.
FUENTE: MSDN Mas no entiendo dicha solucion
Título: Re: Trabajar con Funciones de DLL
Publicado por: BlackZeroX en 12 Marzo 2011, 04:58 am
. Que idiotes puse :'(
Título: Re: Trabajar con Funciones de DLL
Publicado por: seba123neo en 12 Marzo 2011, 05:01 am
perdona no sabia que era una interfaz, recien me bajo la libreria y lo vi, no estoy seguro pero creo que debes implementarla asi: Imports BBCFPCOMLib Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ser As New Libreria ser.ConnectAnyUSB(50, 0) End Sub End Class Public Class Libreria Implements BBCFPCOMLib.CFPGRSCOM Public Event OnDebugMessage(ByVal nLogLevel As Integer, ByVal bstrMessage As String) Implements BBCFPCOMLib._ICFPEvents_Event.OnDebugMessage Public Event OnNeedPassword(ByVal nTriesRemaining As Integer, ByRef password As String) Implements BBCFPCOMLib._ICFPEvents_Event.OnNeedPassword Public Event OnProgress(ByVal bstrCode As String, ByVal nPercent As Integer, ByVal ulExtraInfo As UInteger) Implements BBCFPCOMLib._ICFPEvents_Event.OnProgress Public Sub Abort() Implements BBCFPCOMLib.ICFPGRSCOM.Abort End Sub Public Sub Connect(ByVal nComport As Integer, ByVal nConnectBaudRate As Integer, ByVal nMaxTimeoutMs As Integer, ByVal nResetTimeOusMs As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.Connect End Sub Public Sub ConnectAnyUSB(ByVal nMaxTimeoutMs As Integer, ByVal nResetTimeOutMs As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.ConnectAnyUSB End Sub Public Sub ConnectToBootImage() Implements BBCFPCOMLib.ICFPGRSCOM.ConnectToBootImage End Sub Public Sub ConnectToBootrom() Implements BBCFPCOMLib.ICFPGRSCOM.ConnectToBootrom End Sub Public Property ConnectType() As BBCFPCOMLib.CFP_TYPE Implements BBCFPCOMLib.ICFPGRSCOM.ConnectType Get End Get Set(ByVal value As BBCFPCOMLib.CFP_TYPE) End Set End Property Public Sub ConnectUSB(ByVal bstrProperty As String, ByVal bstrValue As String, ByVal nMaxTimeoutMs As Integer, ByVal nResetTimoeOutMs As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.ConnectUSB End Sub Public Sub Disconnect1() Implements BBCFPCOMLib.ICFPGRSCOM.Disconnect End Sub Public Sub GetBootromInfo(ByRef pulBRver As UInteger, ByRef pbSecurityEnabled As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.GetBootromInfo End Sub Public Sub GetCFPVersion(ByRef pulCFPver As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.GetCFPVersion End Sub Public Function GetCOMBuildVersion() As String Implements BBCFPCOMLib.ICFPGRSCOM.GetCOMBuildVersion End Function Public Function GetCOMBuildVersionID() As UInteger Implements BBCFPCOMLib.ICFPGRSCOM.GetCOMBuildVersionID End Function Public Function GetFlashSizeInBytes() As UInteger Implements BBCFPCOMLib.ICFPGRSCOM.GetFlashSizeInBytes End Function Public Sub GetOSVersionOfSFI(ByVal bstrFileName As String, ByRef pulOSver As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.GetOSVersionOfSFI End Sub Public Sub GetOSVersionOfSFIEx(ByVal bstrFileName As String, ByRef pulOSver As UInteger, ByRef pbstrOSver As String) Implements BBCFPCOMLib.ICFPGRSCOM.GetOSVersionOfSFIEx End Sub Public Function GetPatriotVersion() As String Implements BBCFPCOMLib.ICFPGRSCOM.GetPatriotVersion End Function Public Sub GetPlatformID(ByRef pulPID As UInteger, ByRef pbstrDeviceString As String) Implements BBCFPCOMLib.ICFPGRSCOM.GetPlatformID End Sub Public Sub GetSFIOSVersionPlatID(ByVal bstrFileName As String, ByRef pulOSver As UInteger, ByRef pulPlatID As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.GetSFIOSVersionPlatID End Sub Public Function GetSupportedBands() As UInteger Implements BBCFPCOMLib.ICFPGRSCOM.GetSupportedBands End Function Public Function GetVendorID() As UShort Implements BBCFPCOMLib.ICFPGRSCOM.GetVendorID End Function Public Sub GetVersionOfAPPfile(ByVal bstrFileName As String, ByRef pbstrAPPversion As String, ByRef pbVersionValid As Boolean, ByRef pbstrAppNumber As String, ByRef pbNumberValid As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.GetVersionOfAPPfile End Sub Public Sub HeadInTheSandMode(ByVal bChangeMode As Boolean, ByRef pbHISMode As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.HeadInTheSandMode End Sub Public Sub InvokeMethod(ByVal bstrMethod As String, ByRef pulParam As UInteger, ByRef pbstrParam As String) Implements BBCFPCOMLib.ICFPGRSCOM.InvokeMethod End Sub Public Function IsDesktopRAMImage() As Boolean Implements BBCFPCOMLib.ICFPGRSCOM.IsDesktopRAMImage End Function Public Sub LoadBootrom(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.LoadBootrom End Sub Public Sub NukeDevice() Implements BBCFPCOMLib.ICFPGRSCOM.NukeDevice End Sub Public Sub PatriotConnectToTunnel() Implements BBCFPCOMLib.ICFPGRSCOM.PatriotConnectToTunnel End Sub Public Sub PatriotDisconnect() Implements BBCFPCOMLib.ICFPGRSCOM.PatriotDisconnect End Sub Public Sub PatriotGetInfo(ByRef pulPATver As UInteger, ByRef pulTunnelver As UInteger, ByRef pbBatteryVoltageOk As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotGetInfo End Sub Public Sub PatriotGetOSVersionOfFile(ByVal bstrFileName As String, ByRef pulOSver As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotGetOSVersionOfFile End Sub Public Function PatriotGetOSVersionOfFileStr(ByVal bstrFileName As String) As String Implements BBCFPCOMLib.ICFPGRSCOM.PatriotGetOSVersionOfFileStr End Function Public Function PatriotInBerbugMode() As Boolean Implements BBCFPCOMLib.ICFPGRSCOM.PatriotInBerbugMode End Function Public Sub PatriotLastLoadSuccessful(ByRef pbSuccess As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotLastLoadSuccessful End Sub Public Sub PatriotLoadImage(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotLoadImage End Sub Public Sub ReloadFileSystem(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadFileSystem End Sub Public Sub ReloadOS(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadOS End Sub Public Sub ReloadPlantImage(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadPlantImage End Sub Public Sub ReloadPlantImageWithPatriot(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadPlantImageWithPatriot End Sub Public Sub ResetPatriot() Implements BBCFPCOMLib.ICFPGRSCOM.ResetPatriot End Sub Public Sub SaveFileSystem(ByVal bstrFileName As String, ByVal bVerifyToAPP As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.SaveFileSystem End Sub Public Sub SetConnectValues(ByVal nMaxTimeoutMs As Integer, ByVal bIncremental As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.SetConnectValues End Sub Public Sub SetMassStorage(ByVal nOn As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.SetMassStorage End Sub Public Sub SuperNukeDevice() Implements BBCFPCOMLib.ICFPGRSCOM.SuperNukeDevice End Sub Public Sub ToastDevice(ByVal bstrPassword As String) Implements BBCFPCOMLib.ICFPGRSCOM.ToastDevice End Sub Public Sub WhoAmI(ByVal bstrWhoAmI As String) Implements BBCFPCOMLib.ICFPGRSCOM.WhoAmI End Sub Public Sub Wipe(ByVal bWipeOS As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.Wipe End Sub End Class
todas esas funciones son las que tiene la dll dentro, no las escribi yo, me las detecto y escribio automaticamente el visual studio cuando implemente de BBCFPCOMLib.CFPGRSCOMsaludos.
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 07:05 am
Hola, gracias por tu respuesta pero por alguna razon no me esta haciendo nada el programa, es decir, no hace ninguna funcion ni lanza ningun errror
Título: Re: Trabajar con Funciones de DLL
Publicado por: raul338 en 12 Marzo 2011, 13:39 pm
Hola, gracias por tu respuesta pero por alguna razon no me esta haciendo nada el programa, es decir, no hace ninguna funcion ni lanza ningun errror
Porque esta implementando la interfaz, en una clase vacia, fijate la documentacion de la libreria haber que tienes que hacer en cada evento
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 16:51 pm
Buenos dias, como dije anteriormente dicha libreria no es mia, lo que pude analizar es lo siguiente: //BBCFPCOM 1.0 Type Library //Version: 1.0 BBCFPCOMLib; GUID = {C2CFDD51-0603-4889-9FF5-B943AA46118B};
Enum CFP_TYPE; CFP_TYPE_NORMAL = 0; CFP_TYPE_PATRIOT = 1; CFP_TYPE_EDW = 2; CFP_TYPE_RMA = 3; CFP_TYPE_STP = 4; CFP_TYPE_BRL = 5;
//ICFPEvents Interface Interface _ICFPEvents; GUID = {E219CDC3-58B9-4FF5-BC61-6295E378208E}; //method OnProgress function OnProgress(bstrCode: BSTR; nPercent: I4; ulExtraInfo: UI4): HResult; stdcall; //method OnDebugMessage function OnDebugMessage(nLogLevel: I4; bstrMessage: BSTR): HResult; stdcall; //method OnNeedPassword function OnNeedPassword(nTriesRemaining: I4; out password: ^BSTR): HResult; stdcall;
//CFPGRSCOM Class CoClass CFPGRSCOM; GUID = {3B5626A7-724D-4F17-A980-002FDC26B567};
//BBCFPCOM 1.0 Type Library Interface ICFPGRSCOM; GUID = {33CF20BC-B452-4529-B78E-B48E821AF3A8}; //Connect via COM port function Connect(nComport: I4; nConnectBaudRate: I4; nMaxTimeoutMs: I4; nResetTimeOusMs: I4): HResult; stdcall; //Connect to Any USB device found function ConnectAnyUSB(nMaxTimeoutMs: I4; nResetTimeOutMs: I4): HResult; stdcall; //Connect USB device using a specific property function ConnectUSB(bstrProperty: BSTR; bstrValue: BSTR; nMaxTimeoutMs: I4; nResetTimoeOutMs: I4): HResult; stdcall; //method ConnectToBootImage function ConnectToBootImage: HResult; stdcall; //method ConnectToBootrom function ConnectToBootrom: HResult; stdcall; //ReloadPlantImage - SFI function ReloadPlantImage(bstrFileName: BSTR): HResult; stdcall; //ReloadPlantImageWithPatriot - MFI function ReloadPlantImageWithPatriot(bstrFileName: BSTR): HResult; stdcall; //method ReloadFileSystem function ReloadFileSystem(bstrFileName: BSTR): HResult; stdcall; //method SaveFileSystem function SaveFileSystem(bstrFileName: BSTR; bVerifyToAPP: Bool): HResult; stdcall; //Terminate all interfaces function Disconnect: HResult; stdcall; //Signal any in-process commands to abort function Abort: HResult; stdcall; //method GetCFPVersion function GetCFPVersion(out pulCFPver: ^UI4): HResult; stdcall; //method GetBootromInfo function GetBootromInfo(out pulBRver: ^UI4; out pbSecurityEnabled: ^Bool): HResult; stdcall; //method PatriotConnectToTunnel function PatriotConnectToTunnel: HResult; stdcall; //method PatriotGetInfo function PatriotGetInfo(out pulPATver: ^UI4; out pulTunnelver: ^UI4; out pbBatteryVoltageOk: ^Bool): HResult; stdcall; //method PatriotDisconnect function PatriotDisconnect: HResult; stdcall; //method PatriotLastLoadSuccessful function PatriotLastLoadSuccessful(out pbSuccess: ^Bool): HResult; stdcall; //method PatriotLoadImage function PatriotLoadImage(bstrFileName: BSTR): HResult; stdcall; //method PatriotGetOSVersionOfFile function PatriotGetOSVersionOfFile(bstrFileName: BSTR; out pulOSver: ^UI4): HResult; stdcall; //method GetOSVersionOfSFI function GetOSVersionOfSFI(bstrFileName: BSTR; out pulOSver: ^UI4): HResult; stdcall; //method GetCOMBuildVersion function GetCOMBuildVersion(out pbstrVersion: ^BSTR): HResult; stdcall; //method ReloadOS function ReloadOS(bstrFileName: BSTR): HResult; stdcall; //Erase files and OS function Wipe(bWipeOS: Bool): HResult; stdcall; //Erase files/OS and passwords function NukeDevice: HResult; stdcall; //Erase the Appstore function SuperNukeDevice: HResult; stdcall; //Toast the device function ToastDevice(bstrPassword: BSTR): HResult; stdcall; //method HeadInTheSandMode function HeadInTheSandMode(bChangeMode: Bool; out pbHISMode: ^Bool): HResult; stdcall; //method GetFlashSizeInBytes function GetFlashSizeInBytes(out pulFlashSizeBytes: ^UI4): HResult; stdcall; //method GetPlatformID function GetPlatformID(out pulPID: ^UI4; out pbstrDeviceString: ^BSTR): HResult; stdcall; //method GetVendorID function GetVendorID(out pnVendorID: ^UI2): HResult; stdcall; //method GetSFIOSVersionPlatID function GetSFIOSVersionPlatID(bstrFileName: BSTR; out pulOSver: ^UI4; out pulPlatID: ^UI4): HResult; stdcall; //method GetVersionOfAPPfile function GetVersionOfAPPfile(bstrFileName: BSTR; out pbstrAPPversion: ^BSTR; out pbVersionValid: ^Bool; out pbstrAppNumber: ^BSTR; out pbNumberValid: ^Bool): HResult; stdcall; //method GetSupportedBands function GetSupportedBands(out pulBands: ^UI4): HResult; stdcall; //method GetCOMBuildVersionID function GetCOMBuildVersionID(out pulVersion: ^UI4): HResult; stdcall; //Invoke a custom method function InvokeMethod(bstrMethod: BSTR; out pulParam: ^UI4; out pbstrParam: ^BSTR): HResult; stdcall; //property ConnectType property-get ConnectType(out pVal: ^CFP_TYPE): HResult; stdcall; //property ConnectType property-put ConnectType(pVal: CFP_TYPE): HResult; stdcall; //method GetPatriotVersion function GetPatriotVersion(out pbstrPatVersion: ^BSTR): HResult; stdcall; //method PatriotGetOSVersionOfFileStr function PatriotGetOSVersionOfFileStr(bstrFileName: BSTR; out pbstrPatVer: ^BSTR): HResult; stdcall; //method PatriotInBerbugMode function PatriotInBerbugMode(out pbBerbugMode: ^Bool): HResult; stdcall; //method SetConnectValues function SetConnectValues(nMaxTimeoutMs: I4; bIncremental: Bool): HResult; stdcall; //method GetOSVersionOfSFIEx function GetOSVersionOfSFIEx(bstrFileName: BSTR; out pulOSver: ^UI4; out pbstrOSver: ^BSTR): HResult; stdcall; //method ResetPatriot function ResetPatriot: HResult; stdcall; //method WhoAmI function WhoAmI(bstrWhoAmI: BSTR): HResult; stdcall; //Load Bootrom Binary function LoadBootrom(bstrFileName: BSTR): HResult; stdcall; //MassStorage function SetMassStorage(nOn: I4): HResult; stdcall;
No tengo mas informacion de dicha libreria. Ya un companero lo pudo hacer funcionar en Linux en C++, como podria obtener yo que funciones hace cada funcion???
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 12 Marzo 2011, 17:50 pm
Despues de indagar, y ver muchos comentarios de que no se puede obtener el source que se ejecuta en cada evento, me dijeron que si se posia pero en assembler, es decir, se puede programar en Assembler "orientado a objetos", gracias a Ildasm.exe me explico. ildasm, desensambla tu dll o ejecutable, te genera código ensamblador (CIL), puedes modificar el código, agregar o quitar instrucciones, y enseguida con ilasm volver a generar el ejecutable con los cambios realizados. Son herramientas que proporciona el Visual Studio y Mono, ni siquiera tienes que descargar otros programas, más que el propio framework
Entonces segun me dicen con el Ilsdam se puede ver lo que hace cada funcion en ensamblador y se puede agregar eso en VB.NET??? Por favor confirmenme esa teoria? de todas maneras ya estoy descargando .NT Framework 4 (que es dodne viene incluido Ildasm.exe)
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 13 Marzo 2011, 00:20 am
Listo el Ildasm me hizo el volcado de lA DLL y me dio lo siguiente // Muchas lineas de codigo borradas
--------------------- EDITADO------------- Disculpen por poner tanto codigo, subi el TXT a mi server. para verlo click aqui: http://www.mysistemas.com/volcado2.txt
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 13 Marzo 2011, 00:21 am
Listo el Ildasm me hizo el volcado de lA DLL y me dio lo siguiente // Muchas lineas de codigo borradas
--------------------- EDITADO------------- Disculpen por poner tanto codigo, subi el TXT a mi server. para verlo click aqui: http://www.mysistemas.com/volcado2.txt
Título: Re: Trabajar con Funciones de DLL
Publicado por: my_sistemas en 16 Marzo 2011, 20:35 pm
No hay ninguna manera???
|