CRIAR DLL

LORDAUTUNM 26/11/2013 23:15:43
#431510
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?

MARCELOSN 27/11/2013 08:01:57
#431514
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




LORDAUTUNM 27/11/2013 16:17:48
#431543
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
LORDAUTUNM 28/11/2013 20:52:02
#431594
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.
OCELOT 29/11/2013 10:11:23
#431609
Resposta escolhida
Depois do Foto.Save teste colocar um Foto.Dispose()
LORDAUTUNM 29/11/2013 12:47:15
#431620
Valeu OCELOT!!!

Funcionou.
Tópico encerrado , respostas não são mais permitidas