Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: my_sistemas en 12 Marzo 2011, 00:37 am



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.

Código:
//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:
Código:
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:
Código:
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
Código:
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:

Código:
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

Código:
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:
Código:
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
Código:
'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:

Código
  1. Imports BBCFPCOMLib
  2.  
  3. Public Class Form1
  4.  
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        Dim ser As New Libreria
  7.        ser.ConnectAnyUSB(50, 0)
  8.    End Sub
  9. End Class
  10.  
  11. Public Class Libreria
  12.  
  13.    Implements BBCFPCOMLib.CFPGRSCOM
  14.  
  15.    Public Event OnDebugMessage(ByVal nLogLevel As Integer, ByVal bstrMessage As String) Implements BBCFPCOMLib._ICFPEvents_Event.OnDebugMessage
  16.  
  17.    Public Event OnNeedPassword(ByVal nTriesRemaining As Integer, ByRef password As String) Implements BBCFPCOMLib._ICFPEvents_Event.OnNeedPassword
  18.  
  19.    Public Event OnProgress(ByVal bstrCode As String, ByVal nPercent As Integer, ByVal ulExtraInfo As UInteger) Implements BBCFPCOMLib._ICFPEvents_Event.OnProgress
  20.  
  21.    Public Sub Abort() Implements BBCFPCOMLib.ICFPGRSCOM.Abort
  22.  
  23.    End Sub
  24.  
  25.    Public Sub Connect(ByVal nComport As Integer, ByVal nConnectBaudRate As Integer, ByVal nMaxTimeoutMs As Integer, ByVal nResetTimeOusMs As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.Connect
  26.  
  27.    End Sub
  28.  
  29.    Public Sub ConnectAnyUSB(ByVal nMaxTimeoutMs As Integer, ByVal nResetTimeOutMs As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.ConnectAnyUSB
  30.  
  31.    End Sub
  32.  
  33.    Public Sub ConnectToBootImage() Implements BBCFPCOMLib.ICFPGRSCOM.ConnectToBootImage
  34.  
  35.    End Sub
  36.  
  37.    Public Sub ConnectToBootrom() Implements BBCFPCOMLib.ICFPGRSCOM.ConnectToBootrom
  38.  
  39.    End Sub
  40.  
  41.    Public Property ConnectType() As BBCFPCOMLib.CFP_TYPE Implements BBCFPCOMLib.ICFPGRSCOM.ConnectType
  42.        Get
  43.  
  44.        End Get
  45.        Set(ByVal value As BBCFPCOMLib.CFP_TYPE)
  46.  
  47.        End Set
  48.    End Property
  49.  
  50.    Public Sub ConnectUSB(ByVal bstrProperty As String, ByVal bstrValue As String, ByVal nMaxTimeoutMs As Integer, ByVal nResetTimoeOutMs As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.ConnectUSB
  51.  
  52.    End Sub
  53.  
  54.    Public Sub Disconnect1() Implements BBCFPCOMLib.ICFPGRSCOM.Disconnect
  55.  
  56.    End Sub
  57.  
  58.    Public Sub GetBootromInfo(ByRef pulBRver As UInteger, ByRef pbSecurityEnabled As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.GetBootromInfo
  59.  
  60.    End Sub
  61.  
  62.    Public Sub GetCFPVersion(ByRef pulCFPver As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.GetCFPVersion
  63.  
  64.    End Sub
  65.  
  66.    Public Function GetCOMBuildVersion() As String Implements BBCFPCOMLib.ICFPGRSCOM.GetCOMBuildVersion
  67.  
  68.    End Function
  69.  
  70.    Public Function GetCOMBuildVersionID() As UInteger Implements BBCFPCOMLib.ICFPGRSCOM.GetCOMBuildVersionID
  71.  
  72.    End Function
  73.  
  74.    Public Function GetFlashSizeInBytes() As UInteger Implements BBCFPCOMLib.ICFPGRSCOM.GetFlashSizeInBytes
  75.  
  76.    End Function
  77.  
  78.    Public Sub GetOSVersionOfSFI(ByVal bstrFileName As String, ByRef pulOSver As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.GetOSVersionOfSFI
  79.  
  80.    End Sub
  81.  
  82.    Public Sub GetOSVersionOfSFIEx(ByVal bstrFileName As String, ByRef pulOSver As UInteger, ByRef pbstrOSver As String) Implements BBCFPCOMLib.ICFPGRSCOM.GetOSVersionOfSFIEx
  83.  
  84.    End Sub
  85.  
  86.    Public Function GetPatriotVersion() As String Implements BBCFPCOMLib.ICFPGRSCOM.GetPatriotVersion
  87.  
  88.    End Function
  89.  
  90.    Public Sub GetPlatformID(ByRef pulPID As UInteger, ByRef pbstrDeviceString As String) Implements BBCFPCOMLib.ICFPGRSCOM.GetPlatformID
  91.  
  92.    End Sub
  93.  
  94.    Public Sub GetSFIOSVersionPlatID(ByVal bstrFileName As String, ByRef pulOSver As UInteger, ByRef pulPlatID As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.GetSFIOSVersionPlatID
  95.  
  96.    End Sub
  97.  
  98.    Public Function GetSupportedBands() As UInteger Implements BBCFPCOMLib.ICFPGRSCOM.GetSupportedBands
  99.  
  100.    End Function
  101.  
  102.    Public Function GetVendorID() As UShort Implements BBCFPCOMLib.ICFPGRSCOM.GetVendorID
  103.  
  104.    End Function
  105.  
  106.    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
  107.  
  108.    End Sub
  109.  
  110.    Public Sub HeadInTheSandMode(ByVal bChangeMode As Boolean, ByRef pbHISMode As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.HeadInTheSandMode
  111.  
  112.    End Sub
  113.  
  114.    Public Sub InvokeMethod(ByVal bstrMethod As String, ByRef pulParam As UInteger, ByRef pbstrParam As String) Implements BBCFPCOMLib.ICFPGRSCOM.InvokeMethod
  115.  
  116.    End Sub
  117.  
  118.    Public Function IsDesktopRAMImage() As Boolean Implements BBCFPCOMLib.ICFPGRSCOM.IsDesktopRAMImage
  119.  
  120.    End Function
  121.  
  122.    Public Sub LoadBootrom(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.LoadBootrom
  123.  
  124.    End Sub
  125.  
  126.    Public Sub NukeDevice() Implements BBCFPCOMLib.ICFPGRSCOM.NukeDevice
  127.  
  128.    End Sub
  129.  
  130.    Public Sub PatriotConnectToTunnel() Implements BBCFPCOMLib.ICFPGRSCOM.PatriotConnectToTunnel
  131.  
  132.    End Sub
  133.  
  134.    Public Sub PatriotDisconnect() Implements BBCFPCOMLib.ICFPGRSCOM.PatriotDisconnect
  135.  
  136.    End Sub
  137.  
  138.    Public Sub PatriotGetInfo(ByRef pulPATver As UInteger, ByRef pulTunnelver As UInteger, ByRef pbBatteryVoltageOk As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotGetInfo
  139.  
  140.    End Sub
  141.  
  142.    Public Sub PatriotGetOSVersionOfFile(ByVal bstrFileName As String, ByRef pulOSver As UInteger) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotGetOSVersionOfFile
  143.  
  144.    End Sub
  145.  
  146.    Public Function PatriotGetOSVersionOfFileStr(ByVal bstrFileName As String) As String Implements BBCFPCOMLib.ICFPGRSCOM.PatriotGetOSVersionOfFileStr
  147.  
  148.    End Function
  149.  
  150.    Public Function PatriotInBerbugMode() As Boolean Implements BBCFPCOMLib.ICFPGRSCOM.PatriotInBerbugMode
  151.  
  152.    End Function
  153.  
  154.    Public Sub PatriotLastLoadSuccessful(ByRef pbSuccess As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotLastLoadSuccessful
  155.  
  156.    End Sub
  157.  
  158.    Public Sub PatriotLoadImage(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.PatriotLoadImage
  159.  
  160.    End Sub
  161.  
  162.    Public Sub ReloadFileSystem(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadFileSystem
  163.  
  164.    End Sub
  165.  
  166.    Public Sub ReloadOS(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadOS
  167.  
  168.    End Sub
  169.  
  170.    Public Sub ReloadPlantImage(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadPlantImage
  171.  
  172.    End Sub
  173.  
  174.    Public Sub ReloadPlantImageWithPatriot(ByVal bstrFileName As String) Implements BBCFPCOMLib.ICFPGRSCOM.ReloadPlantImageWithPatriot
  175.  
  176.    End Sub
  177.  
  178.    Public Sub ResetPatriot() Implements BBCFPCOMLib.ICFPGRSCOM.ResetPatriot
  179.  
  180.    End Sub
  181.  
  182.    Public Sub SaveFileSystem(ByVal bstrFileName As String, ByVal bVerifyToAPP As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.SaveFileSystem
  183.  
  184.    End Sub
  185.  
  186.    Public Sub SetConnectValues(ByVal nMaxTimeoutMs As Integer, ByVal bIncremental As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.SetConnectValues
  187.  
  188.    End Sub
  189.  
  190.    Public Sub SetMassStorage(ByVal nOn As Integer) Implements BBCFPCOMLib.ICFPGRSCOM.SetMassStorage
  191.  
  192.    End Sub
  193.  
  194.    Public Sub SuperNukeDevice() Implements BBCFPCOMLib.ICFPGRSCOM.SuperNukeDevice
  195.  
  196.    End Sub
  197.  
  198.    Public Sub ToastDevice(ByVal bstrPassword As String) Implements BBCFPCOMLib.ICFPGRSCOM.ToastDevice
  199.  
  200.    End Sub
  201.  
  202.    Public Sub WhoAmI(ByVal bstrWhoAmI As String) Implements BBCFPCOMLib.ICFPGRSCOM.WhoAmI
  203.  
  204.    End Sub
  205.  
  206.    Public Sub Wipe(ByVal bWipeOS As Boolean) Implements BBCFPCOMLib.ICFPGRSCOM.Wipe
  207.  
  208.    End Sub
  209. End Class
  210.  

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.CFPGRSCOM

saludos.


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:

Código:
//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.

Código:
 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
Código:

// 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
Código:

// 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???