DLL Contabilidad Electrónica y NET

Hay dos medios para facturar, por medios propios y mediante terceros autorizados, aqui se discuten las soluciones que hay en el mercado
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
ijmg2000
Mensajes: 56
Registrado: Mar Feb 01, 2011 9:09 pm

DLL Contabilidad Electrónica y NET

Mensajepor ijmg2000 » Mar Ago 26, 2014 3:26 pm

Hola compañeros, estoy haciendo algunas pruebas de integración con la DLL que DADO ofrece en esta página para el tema de la Contabilidad Electrónica, y me aparece un error y no he podido identificar el motivo, igual y no la estoy invocando correctamente. Les comparto el código que hice para efectos de prueba. Estoy utilizando VB 2013.

Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("CELib.dll")> _
Public Shared Function Balanza(ByVal IniFileName As String, ByVal TError As Byte)
End Function
<DllImport("CELib.dll")> _
Public Shared Function Catalogo(ByVal IniFileName As String, ByVal TError As Byte)
End Function
<DllImport("CELib.dll")> _
Public Shared Function Polizas(ByVal IniFileName As String, ByVal TError As Byte)
End Function
<DllImport("CELib.dll")> _
Public Shared Function CFDLibVersion() As String
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim origen = "C:\XSA\CONTABILIDAD\ORIGEN_INI\Ejemplo Balanza.ini"
Balanza(origen, 0)
End Sub
End Class

En la línea donde llamo la función y envío los parámetros "Balanza(origen, 0)" me arroja un error:

Excepción no controlada del tipo 'System.Runtime.InteropServices.MarshalDirectiveException' en WindowsApplication1.exe
Información adicional: Restricción PInvoke: no se pueden devolver variantes.

He buscado información pero no me queda claro el origen del problema, ¿alguien tiene alguna idea? Gracias de antemano

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor Dado » Mar Ago 26, 2014 3:41 pm

La funcion Balanza LLEVA UN SOLO PARAMETRO

No me hagas mucho caso, pero como el burro que toco la flauta pienso que debes definir asi la funcion :

Private Shared Function Balanza(ByVal IniFileName As String) As Byte

Aunque no estoy seguro, definitivamente NO DEBES LLAMARLO CON DOS PARAMETROS, SOLO CON UNO :

error = Balanza(origen)
Si error = 0 entonces todo bien
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ijmg2000
Mensajes: 56
Registrado: Mar Feb 01, 2011 9:09 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor ijmg2000 » Mar Ago 26, 2014 4:06 pm

Hola DADO, gracias por el dato, realice la corrección para invocar la DLL, y quedo así:

Public Class Form1
<DllImport("CELib.dll")> _
Public Shared Function Balanza(ByVal IniFileName As String) As Byte
End Function

Y para llamar la función quedo así:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim origen = "C:\XSA\CONTABILIDAD\ORIGEN_INI\Ejemplo_Balanza.ini"
Dim err As Byte
err = Balanza(origen)
If err <> 0 Then
MessageBox.Show("Ha habido un error")
End If
End Sub

Se ejecuta correctamente pero la variable "err" que es valor que me devuelve la función para evaluar el procesamiento me esta dando un valor "3", supongo que es un tipo de error, ¿tu sabes a que se refiera?

Gracias por tu apoyo

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor Dado » Mar Ago 26, 2014 4:16 pm

El numero de error no es muy informativo

Ese practicamente sirve solo para ver si es cero o distinto de cero, no mas

Mejor revisa la "bitacora de proceso.txt" para ver los errores, este archivo se graba en c:\ y simultaneamente en %exepath%
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ijmg2000
Mensajes: 56
Registrado: Mar Feb 01, 2011 9:09 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor ijmg2000 » Mar Ago 26, 2014 4:43 pm

Hola DADO, ya verifique el archivo que comentas y solo aparece la línea siguiente por cada vez que he intentado procesar el archivo:

26/ago. 16:39:10 ---Inciando creacion de Balanza---

Comparándola con la de tu demo, pues todo parece ser que no puede cargar el archivo, o no lo encuentra o no pasa correctamente el parámetro. De ahí me surge la duda, la ruta del archivo debe ser la ruta completa me imagino.

Continuare revisando, lo que si es cierto es que ya logre cargar correctamente la DLL y puedo invocar sus funciones, pero no así el parámetro.

Saludos y continuamos investigando

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor jggtz » Mar Ago 26, 2014 9:11 pm

Te recomiendo estudiar el ejemplo en VB.Net que utiliza la libreria CFDLib.dll (para Facturacion electronica), creo que la definicion y el llamado se parecen a lo de Contabilidad Electronica que utiliza la libreria CELib.dll

Aqui te anexo la clase de ese ejemplo

Código: Seleccionar todo


Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic

Public Class Form1
    Private Enum TError As Byte
        OK = 0
        Arch_No_Encontrado = 1
        Dato_Obligatorio = 2
        Problemas_Certificado = 3
        Vigencia_Certificado = 4
        LlavePrivada = 5
        Version_CFD_Invalida = 6
        ErrorGeneral = 7
    End Enum

    ''' <summary>
    ''' Esta es la funcion principal, toma un archivo tipo *.ini con la informacion necesaria
    ''' para crear la factura, si todo sale bien entonces devuelve un "OK", de otra forma devuelve
    ''' uno de los errores de la tabla TError
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function GeneraCFD(ByVal IniFileName As String, ByVal ClaveLlavePrivada As String) As TError
    End Function

    ''' <summary>
    ''' Esta es la funcion principal, toma un archivo tipo *.txt con la informacion necesaria
    ''' para crear la factura, si todo sale bien entonces devuelve un "OK", de otra forma devuelve
    ''' uno de los errores de la tabla TError. ********Usa formato de IT Complements Forms Appeal*******
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function GeneraCFD2(ByVal IniFileName As String, ByVal ClaveLlavePrivada As String) As TError
    End Function

    ''' <summary>
    ''' Funcion para generar el Timbrefiscal, hay que definir en el archivo ini el nombre del PAC
    ''' y la seccion especial correspondiente al PAC seleccionado, el resultado es el mismo XML
    ''' pero ya con el timbre insertado       
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function TimbrarCFD(ByVal IniFileName As String) As TError
    End Function

    ''' <summary>
    ''' Funcion para cancelar un CFDI, toma como parametro el nombre de un archivo
    ''' con extension ini en donde vienen los datos necesarios para la cancelacion/
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function CancelarCFD(ByVal IniFileName As String) As TError
    End Function

    ''' <summary>
    ''' Funcion para Recuperar el Acuse de Cancelacion que emite el SAT, toma como parametro
    ''' el nombre de un archivo con extension ini en donde vienen los datos necesarios
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function RecuperaAcuseCancelacion(ByVal IniFileName As String) As TError
    End Function

    ''' <summary>
    ''' Funcion para consultar el saldo de los timbres, el resultado se graba en el mismo archivo ini
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function ConsultaSaldo(ByVal IniFileName As String) As TError
    End Function

    ''' <summary>
    ''' Funcion para recuperar un CFDI previamente emitido
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function RecuperarCFD(ByVal IniFileName As String) As TError
    End Function

    ''' <summary>
    ''' PruebaClaveDeLlavePrivada es util para los menus de configuracion, en ese tipo de menus
    ''' se puede pedir la Clave de la Llave Privada y asegurarse que es la correcta sin necesidad
    ''' de crear una factura, ya cuando se asegure de que es correcta la clave puede ser grabada
    ''' para no tener que estarla pidiendo cada vez que se requiera elaborar un CFD
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function PruebaClaveDeLlavePrivada(ByVal IniFileName As String, ByVal ClaveLlavePrivada As String) As Byte
    End Function

    ''' <summary>
    ''' Funcion que regresa la version de la libreria
    ''' </summary>
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function CFDLibVersion() As String
    End Function

    ''' <summary>
    ''' La siguiente funcion regresa la Cadena Original y el Sello Digital que se uso para sellar la
    '''factura, es necesaria para poder programar la representacion impresa (el PDF)
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function CadenaOriginal() As String
    End Function

    ''' <summary>
    ''' La siguiente funcion regresa la Cadena Original y el Sello Digital que se uso para sellar la
    ''' factura, es necesaria para poder programar la representacion impresa (el PDF)
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function SelloDigital() As String
    End Function

    ''' <summary>
    ''' Si la funcion GeneraCFD no puede crear el CFD devuelve un numero entero -
    ''' con el error, la funcion GetError devuelve una cadena que explica ese error
    ''' </summary>       
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function GetError() As String
    End Function

    ''' <summary>
    ''' GetErrorExt es una cadena adicional al error que indica con mas detalle en donde
    ''' ocurrio el error, por ejemplo, GetError puede devolver "Archivo no encontrado"
    ''' y GetErrorExt devuelve el *nombre* del archivo que no fue encontrado
    ''' </summary>
    <DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
    Private Shared Function GetErrorExt() As String
    End Function

    Private Sub CrearCFDIClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrearCFDI.Click
        OpenDialog.Title = "CARGAR ARCHIVO INI PARA CONVERTIR A FACTURA"
        OpenDialog.DefaultExt = "ini"
        OpenDialog.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim clave As String = Interaction.InputBox("Introduzca la clave de la Llave Privada", "", "12345678a", -1, -1)

            Dim err As TError = GeneraCFD(OpenDialog.FileName, clave)
            If err = TError.OK Then
                Dim cadenaOriginalString As String = CadenaOriginal()
                If cadenaOriginalString.Length > 50 Then
                    cadenaOriginalString = cadenaOriginalString.Substring(0, 50)
                End If
                Dim selloDigitalString As String = SelloDigital()
                If selloDigitalString.Length > 50 Then
                    selloDigitalString = selloDigitalString.Substring(0, 50)
                End If
                MessageBox.Show("Se grabo la factura en formato XML" & vbCrLf & vbCrLf & "La Cadena Original y el Sello Digital son" & vbCrLf & vbCrLf & cadenaOriginalString & "..." & vbCr & vbLf & vbCr & vbLf & selloDigitalString & "...", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCrLf & GetError() & vbCrLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub TimbradoClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timbrado.Click
        OpenDialog.Title = "CARGAR INI CON LA CONFIGURACION PARA TIMBRADO"
        OpenDialog.DefaultExt = "ini"
        OpenDialog.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim err As TError = TimbrarCFD(OpenDialog.FileName)
            If err = TError.OK Then
                MessageBox.Show("TIMBRADO EXITOSO!!" & vbCr & vbLf & "Ahora el XML ya contiene un timbre", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCr & vbLf & GetError() & vbCr & vbLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub CancelacionClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancelacion.Click
        OpenDialog.Title = "CARGAR INI CON LA CONFIGURACION PARA CANCELAR UN CFDI"
        OpenDialog.DefaultExt = "ini"
        OpenDialog.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim err As TError = CancelarCFD(OpenDialog.FileName)
            If err = TError.OK Then
                MessageBox.Show("EL CFDI FUE CANCELADO", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCrLf & GetError() & vbCrLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub RecuperaAcuseClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RecuperaAcuse.Click
        OpenDialog.Title = "CARGAR INI CON LA CONFIGURACION PARA RECUPERAR EL ACUSE DE CANCELACION"
        OpenDialog.DefaultExt = "ini"
        OpenDialog.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim err As TError = RecuperaAcuseCancelacion(OpenDialog.FileName)
            If err = TError.OK Then
                MessageBox.Show("EL ACUSE FUE RECIBIDO Y SE GRABO EN DISCO", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCrLf & GetError() & vbCrLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub SaldoClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Saldo.Click
        OpenDialog.Title = "CARGAR INI CON LA CONFIGURACION PARA CONSULTAR SALDO"
        OpenDialog.DefaultExt = "ini"
        OpenDialog.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim err As TError = ConsultaSaldo(OpenDialog.FileName)
            If err = TError.OK Then
                MessageBox.Show("EL SALDO DE TIMBRES SE GRABO EN EL ARCHIVO INI", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCrLf & GetError() & vbCrLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub RecuperarCFDIClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RecuperarCFDI.Click
        OpenDialog.Title = "CARGAR INI CON LA CONFIGURACION PARA RECUPERAR UN CFDI"
        OpenDialog.DefaultExt = "ini"
        OpenDialog.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim err As TError = RecuperarCFD(OpenDialog.FileName)
            If err = TError.OK Then
                MessageBox.Show("EL XML SE GRABO EN DISCO", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCrLf & GetError() & vbCrLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub VersionClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Version.Click
        MessageBox.Show("Version de la libreria : " & CFDLibVersion(), "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub

    Private Sub PruebaLlaveClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PruebaLlave.Click
        OpenDialog.Title = "CARGAR LLAVE PRIVADA PARA PROBAR LA CLAVE"
        OpenDialog.DefaultExt = "key"
        OpenDialog.Filter = "Llave Privada (*.key)|*.key"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim clave As String = Interaction.InputBox("Introduzca la clave de la Llave Privada", "", "12345678a", -1, -1)

            Dim b As Byte = PruebaClaveDeLlavePrivada(OpenDialog.FileName, clave)
            If b <> 0 Then
                MessageBox.Show("La clave es correcta", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("La clave NO es correcta", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End If
    End Sub

    Private Sub FormsAppealClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FormsAppeal.Click
        OpenDialog.Title = "CARGAR ARCHIVO TXT PARA CONVERTIR A FACTURA"
        OpenDialog.DefaultExt = "txt"
        OpenDialog.Filter = "Archivo TXT (*.txt)|*.txt"

        If OpenDialog.ShowDialog() = DialogResult.OK Then
            Dim clave As String = Interaction.InputBox("Introduzca la clave de la Llave Privada", "", "12345678a", -1, -1)

            Dim err As TError = GeneraCFD2(OpenDialog.FileName, clave)
            If err = TError.OK Then
                Dim cadenaOriginalString As String = CadenaOriginal()
                If cadenaOriginalString.Length > 50 Then
                    cadenaOriginalString = cadenaOriginalString.Substring(0, 50)
                End If
                Dim selloDigitalString As String = SelloDigital()
                If selloDigitalString.Length > 50 Then
                    selloDigitalString = selloDigitalString.Substring(0, 50)
                End If
                MessageBox.Show("Se grabo la factura en formato XML" & vbCrLf & vbCrLf & "La Cadena Original y el Sello Digital son" & vbCrLf & vbCrLf & cadenaOriginalString & "..." & vbCrLf & vbCrLf & selloDigitalString & "...", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Hubo un Error" & vbCrLf & GetError() & vbCrLf & GetErrorExt(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub
End Class

ijmg2000
Mensajes: 56
Registrado: Mar Feb 01, 2011 9:09 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor ijmg2000 » Mié Ago 27, 2014 9:50 am

Gracias jggtz
Con las observaciones que me comentaste ajuste el código, mas o menos era lo mismo pero en sucio, ya que apenas estoy probando la DLL, en fin, el código quedo así:

Código: Seleccionar todo

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Err As Byte
        OpenFileDialog1.Title = "CARGAR INI PARA LA BALANZA DE COMPROBACIÓN"
        OpenFileDialog1.DefaultExt = "ini"
        OpenFileDialog1.Filter = "Archivo INI (*.ini)|*.ini"

        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            Err = Balanza(OpenFileDialog1.FileName)
            If Err = 0 Then
                MessageBox.Show("GENERACION CORRECTA", "CORRECTO", MessageBoxButtons.OK, MessageBoxIcon.None)
            Else
                MessageBox.Show("HUBO UN ERROR", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub


Pero lamentablemente me sigue arrojando el error 3, y no carga el archivo ini para procesarlo ¿alguien ya la ha probado la DLL en sus desarrollos?

Continuamos investigando, saludos

ijmg2000
Mensajes: 56
Registrado: Mar Feb 01, 2011 9:09 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor ijmg2000 » Mié Ago 27, 2014 10:03 am

Hola DADO, una pregunta, ¿en que lenguaje esta compilada la DLL?, ya que he estado leyendo algunos caso de importación de DLL desde otros lenguajes en NET y en algunos casos hay que hacer arreglos adicionales. Saludos

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor Dado » Mié Ago 27, 2014 10:09 am

Esta programada en Delphi

Te sugiero que sigas la recomendacion de jggtz :

Te recomiendo estudiar el ejemplo en VB.Net que utiliza la libreria CFDLib.dll (para Facturacion electronica)
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

ijmg2000
Mensajes: 56
Registrado: Mar Feb 01, 2011 9:09 pm

Re: DLL Contabilidad Electrónica y NET

Mensajepor ijmg2000 » Mié Ago 27, 2014 12:18 pm

Hola compañeros, ya quedo resuelto y les comparto el problema:

- El problema se debe a que en el proceso de compilación asume la DLL como compatible con 64 bits, lo cual no es correcto, por lo que manualmente hay que decirle al compilador que lea la DLL como de 32 bits.

- Haciendo pruebas, en Visual 2013 no me arroja un error que identifique esta causa, y en Visual 2005 me arroja:

"Se ha intentado cargar un programa con un formato incorrecto. (Excepción de HRESULT: 0x8007000B)"

- Con éste error busqué en internet y encontré un mismo post de éste foro con la solución resuelto por RaulAA:

http://validacfd.com/phpbb3/viewtopic.php?f=29&t=1509#wrap

- Realice los ajustes en el compilador y funciono, muchas gracias por sus comentarios y es importante que igual y se pueda documentar ésta parte para quien quiera compilar con Visual Studio.

NOTA: En Visual 2013 no pude echarlo a andar, aún haciendo los ajustes comentados, por lo que me quedo en Visual 2005

Saludos


Volver a “Soluciones Propias y de Terceros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados