Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

EneMy

[Resolvido] Alguem que saiba VB.NET e VB6 poderia me ajudar ?

Recommended Posts

EneMy

Ola pessoal, estou com um codigo criado em VB.NET aqui, mais eu não trabalho com o .NET, então preciso da ajuda de vocês para transformar esse codigo do vb.net para o vb6, espero que possam me ajudar  :P

    Public Shared Function Set_OZJ_TO_JPG(ByVal FilePath As String, ByVal NewFilePath As String) As Boolean
        Dim flag As Boolean = False
        Dim stream As FileStream = Nothing
        Dim buffer As Byte() = New Byte(&H18 - 1) {}

        Dim info As New FileInfo(FilePath)
        stream = New FileStream(FilePath, FileMode.Open, FileAccess.Read)
        Dim count As Integer = (CInt(stream.Length) - &H18)
        Dim buffer2 As Byte() = New Byte(count - 1) {}
        stream.Read(buffer, 0, &H18)
        stream.Read(buffer2, 0, count)
        stream.Close()
        stream = New FileStream(NewFilePath, FileMode.Create, FileAccess.ReadWrite)
        stream.Write(buffer2, 0, buffer2.Length)
        stream.Close()
        flag = True
        Return flag
    End Function
End Class

Bom.. Este e uma função para transformar arquivos 'OZJ' em 'JPG'.

Não sei se essa e o local certo para isto, se não for me desculpem.

Aguardo Respostas..  ;)

Share this post


Link to post
Share on other sites
jpaulino

Ok, então podes criar um DLL COM Interop e utilizar esse código no VB6. É mais simples porque no VB6 não podes fazer dessa forma e só precisas de ter o .NET Framework instalado no PC onde isso vai funcionar. Esse código não tem conversão para VB6, é muito especifico.

Tens aqui um exemplo de como fazer:

http://vbtuga.blogspot.com/2008/08/vbnet-criao-de-classes-com-interop-vb6.html

Mãos à obra e se tiveres dúvidas diz qualquer coisa.

No final não te esqueças de indicar se está resolvido!

Share this post


Link to post
Share on other sites
EneMy

Eu tentei aqui mais não tem o "COM Class".

semttulo2pf7.jpg

Me diz uma coisa, criando uma DLL com e eviando com o meu programa qualquer um que quizer pode abrir a DLL e usar em outro Projeto neah ?

Se tiver existe outro geito de se criar uma dll normal ?

Share this post


Link to post
Share on other sites
EneMy

Na segunda parte do Tutorial diz assim:

"Atenção: o ficheiro myComProject.tlb e não o myComProject.dll"

E você so me mandou a DLL.

Share this post


Link to post
Share on other sites
EneMy

Funcionou  ;)

Tenho mais 2 perguntas se não for encomodar ^^

Poderia me mandar o Projeto dessa DLL ?

E teria como esconder o tlb pra outra pessoa não usar ?

Share this post


Link to post
Share on other sites
jpaulino

tlb é um "type library" e não precisas colocar junto ao teu executável. É apenas necessário para mostar, quando está a programar, as propriedades, métodos, etc, do teu dll. O dll sim é importante.

O código do dll está aqui:

Imports System.IO

<ComClass(ConvertOZJ_JPG.ClassId, ConvertOZJ_JPG.InterfaceId, ConvertOZJ_JPG.EventsId)> _
Public Class ConvertOZJ_JPG

#Region "COM GUIDs"
    ' These  GUIDs provide the COM identity for this class 
    ' and its COM interfaces. If you change them, existing 
    ' clients will no longer be able to access the class.
    Public Const ClassId As String = "9ec78f09-eede-4fe9-9852-b7421687cfc1"
    Public Const InterfaceId As String = "979dfc59-3f0a-496f-b615-3212a0913507"
    Public Const EventsId As String = "bc7e3c55-1f9f-40fb-8a29-c5ebf811c600"
#End Region

    ' A creatable COM class must have a Public Sub New() 
    ' with no parameters, otherwise, the class will not be 
    ' registered in the COM registry and cannot be created 
    ' via CreateObject.
    Public Sub New()
        MyBase.New()
    End Sub


    Public Function Set_OZJ_TO_JPG(ByVal FilePath As String, ByVal NewFilePath As String) As Boolean
        Dim flag As Boolean = False
        Dim stream As FileStream = Nothing
        Dim buffer As Byte() = New Byte(&H18 - 1) {}

        Dim info As New FileInfo(FilePath)
        stream = New FileStream(FilePath, FileMode.Open, FileAccess.Read)
        Dim count As Integer = (CInt(stream.Length) - &H18)
        Dim buffer2 As Byte() = New Byte(count - 1) {}
        stream.Read(buffer, 0, &H18)
        stream.Read(buffer2, 0, count)
        stream.Close()
        stream = New FileStream(NewFilePath, FileMode.Create, FileAccess.ReadWrite)
        stream.Write(buffer2, 0, buffer2.Length)
        stream.Close()
        flag = True
        Return flag
    End Function

End Class

Não te esqueças de indicar que o tópico está resolvido!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.