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

EneMy

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

11 mensagens neste tópico

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..  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola..

Tenho o 'Microsoft Visual Basic 2008 Express Edition'..

Ou Simplesmente 'VB.NET 9'.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora