CRIAR DLL
Boa noite
Como o vb6 nao converte aquivos de imagem em jpg, queria criar uma dll para isso no .net, que faz isso muito bem.
Montei esse codigo em .net e agora queria transformar isso em dll
Public Sub ConvertJPG(ArqBmp As String, ArqJPG As String)
Dim PictureBox1 As System.Windows.Forms.PictureBox
PictureBox1.Image = Image.FromFile(ArqBmp)
PictureBox1.Image.Save(ArqJPG, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
tentei um projeto tipo Class Library
Inclui um form com um picturebox
e um modulo com o codigo acima
ate compila como dll mas nao é possivel adicionar na biblioteca do vb6
alguem sabe como fazer isso?
Como o vb6 nao converte aquivos de imagem em jpg, queria criar uma dll para isso no .net, que faz isso muito bem.
Montei esse codigo em .net e agora queria transformar isso em dll
Public Sub ConvertJPG(ArqBmp As String, ArqJPG As String)
Dim PictureBox1 As System.Windows.Forms.PictureBox
PictureBox1.Image = Image.FromFile(ArqBmp)
PictureBox1.Image.Save(ArqJPG, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
tentei um projeto tipo Class Library
Inclui um form com um picturebox
e um modulo com o codigo acima
ate compila como dll mas nao é possivel adicionar na biblioteca do vb6
alguem sabe como fazer isso?
bom dia
veja se ajuda
http://www.jorgepaulino.com/2008/08/vbnet-criao-de-classes-com-interop-vb6.html
http://social.msdn.microsoft.com/Forums/pt-BR/1907e898-7c79-4fd2-8bbe-f7825c6a4b47/vb6-usando-com-feito-em-vbnet?forum=compluspt
http://www.macoratti.net/vbn_cdl1.htm
http://www.macoratti.net/vbn5_ulc.htm
http://www.devmedia.com.br/como-usar-uma-dll-net-no-vb6/8999
veja se ajuda
http://www.jorgepaulino.com/2008/08/vbnet-criao-de-classes-com-interop-vb6.html
http://social.msdn.microsoft.com/Forums/pt-BR/1907e898-7c79-4fd2-8bbe-f7825c6a4b47/vb6-usando-com-feito-em-vbnet?forum=compluspt
http://www.macoratti.net/vbn_cdl1.htm
http://www.macoratti.net/vbn5_ulc.htm
http://www.devmedia.com.br/como-usar-uma-dll-net-no-vb6/8999
Marcelo muito obrigado achei oque procurava em seus post, mas agora me deparei com outro problema, meu codigo .net que gerou a dll ficou assim:
Public Sub ConvertJPG(ArqBmp As String, ArqJPG As String)
Try
IO.File.Delete(ArqJPG)
Dim Foto As New Bitmap(ArqBmp)
Foto.Save(ArqJPG, System.Drawing.Imaging.ImageFormat.Jpeg)
Foto = Nothing
IO.File.Delete(ArqBmp)
Catch
MsgBox(Err.Number & [Ô] [Ô] & Err.Description)
End Try
End Sub
Execulta perfeitamente ate a linha: IO.File.Delete(ArqBmp)
Entao retona um erro de permissao porque o arquivo esta sendo usado e nao pode ser deletado
Tentei entao usar o metodo Kill no vb6 mas tambem sem sucesso:
Sintax vb6:
Dim Converte As New Convert.JG_Processo
Converte.ConvertJPG [Ô]c:\fotoTemp1.bmp[Ô], [Ô]c:\fotoTemp1.jpg[Ô]
Set Converte = Nothing
kill [Ô]c:\fotoTemp1.bmp[Ô]
alguem sabe como liverar o arquivo para exclusao, tanto faz no .net ou no vb6
Public Sub ConvertJPG(ArqBmp As String, ArqJPG As String)
Try
IO.File.Delete(ArqJPG)
Dim Foto As New Bitmap(ArqBmp)
Foto.Save(ArqJPG, System.Drawing.Imaging.ImageFormat.Jpeg)
Foto = Nothing
IO.File.Delete(ArqBmp)
Catch
MsgBox(Err.Number & [Ô] [Ô] & Err.Description)
End Try
End Sub
Execulta perfeitamente ate a linha: IO.File.Delete(ArqBmp)
Entao retona um erro de permissao porque o arquivo esta sendo usado e nao pode ser deletado
Tentei entao usar o metodo Kill no vb6 mas tambem sem sucesso:
Sintax vb6:
Dim Converte As New Convert.JG_Processo
Converte.ConvertJPG [Ô]c:\fotoTemp1.bmp[Ô], [Ô]c:\fotoTemp1.jpg[Ô]
Set Converte = Nothing
kill [Ô]c:\fotoTemp1.bmp[Ô]
alguem sabe como liverar o arquivo para exclusao, tanto faz no .net ou no vb6
So falta liberar para excluir, no próprio .net da erro:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
IO.File.Delete([Ô]c:\fototemp1.jpg[Ô])
Dim Foto As New Bitmap([Ô]c:\fototemp1.bmp[Ô], True)
[ô]Foto.SetResolution(1.0F, 1.0F)
Foto.Save([Ô]c:\fototemp1.jpg[Ô], System.Drawing.Imaging.ImageFormat.Jpeg)
Foto = Nothing
IO.File.Delete([Ô]c:\fototemp1.bmp[Ô])
MsgBox([Ô]Feito[Ô])
End
End Sub
o erro é:
The process cannot access the file [ô]c:\fototemp1.bmp[ô] because it is being used by another process.
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
IO.File.Delete([Ô]c:\fototemp1.jpg[Ô])
Dim Foto As New Bitmap([Ô]c:\fototemp1.bmp[Ô], True)
[ô]Foto.SetResolution(1.0F, 1.0F)
Foto.Save([Ô]c:\fototemp1.jpg[Ô], System.Drawing.Imaging.ImageFormat.Jpeg)
Foto = Nothing
IO.File.Delete([Ô]c:\fototemp1.bmp[Ô])
MsgBox([Ô]Feito[Ô])
End
End Sub
o erro é:
The process cannot access the file [ô]c:\fototemp1.bmp[ô] because it is being used by another process.
Depois do Foto.Save teste colocar um Foto.Dispose()
Valeu OCELOT!!!
Funcionou.
Funcionou.
Tópico encerrado , respostas não são mais permitidas