DLL NO .NET

LORDAUTUNM 17/01/2014 10:47:22
#433208
Bom dia, criei a seguinte dll no .net:

Imports System.Drawing

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

#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 = [Ô]d5ac45ed-c358-4916-8287-ef3334b4ef67[Ô]
Public Const InterfaceId As String = [Ô]127979c4-010e-4aac-842f-8710a1d3cdc5[Ô]
Public Const EventsId As String = [Ô]68b3b6e3-d24a-4ec8-b5b9-6684b99bc678[Ô]
#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 Sub ConvertJPG(ByVal ArqBmp As String, ByVal ArqJPG As String)

Try
IO.File.Delete(ArqJPG)

Dim Foto As New Bitmap(ArqBmp)
Foto.Save(ArqJPG, System.Drawing.Imaging.ImageFormat.Jpeg)

Do While Dir(ArqJPG) <> [Ô][Ô]
System.Windows.Forms.Application.DoEvents()
Loop

Foto.Dispose()
IO.File.Delete(ArqBmp)
Catch
MsgBox(Err.Number & [Ô] [Ô] & Err.Description)
End Try
End Sub
End Class

A função da dll é bem simples, converter bmp em jpg, em um sistema em VB6, no meu PC funciona corretamente mas não consegui utiliza-la em outra maquina, não ocorre erro, mas o arquivo JPG não é criado.
Na maquina de teste além dos arquivos de instalação do vb6, levei o arquivo Convert.dll e Convert.tlb, não sei se deveria levar + alguma coisa ref. ao .net que já esta instalado no PC.

Obs.: Não entendo nadica de nada de .net
GUIMORAES 17/01/2014 11:23:45
#433210
Verifica se o Framework está instalado.
KERPLUNK 17/01/2014 11:25:46
#433211
Assim não funciona? Simplesmente isso:

Image img = Image.FromFile([Ô]foo.bmp[Ô]);
img.Save([Ô]foo.jpg[Ô], ImageFormat.Jpeg);
LORDAUTUNM 17/01/2014 14:13:20
#433225
KERPLUNK foi isso que fiz a diferença é que carreguei a foto na declaração

GUIMORAES123 verifiquei e tem sim o framework na maquina de teste

Mais alguma sugestão?
KERPLUNK 17/01/2014 14:16:22
#433226
E você precisa que essa classe esteja exposta ao COM+?
LORDAUTUNM 17/01/2014 16:29:12
#433235
SEI LÁ
O QUE é COM+?
KERPLUNK 17/01/2014 16:49:32
#433236
Aquela primeira linha, <ComClass....> é uma decoração de classe, que expõe essa classe ao COM+, fazendo com que essa classe seja visível em aplicações que usam COM+, como o VB6 por exemplo. Se você não usa essa classe para um programa VB6, você não precisa dessa decoração.
LORDAUTUNM 17/01/2014 18:09:03
#433242
fiz a dll justamente por não programo em .net só em vb6
MARCELOKROL 18/01/2014 08:45:46
#433251
bom eu uso isso que voce esta querendo usar, interop do vb.net para o vb6, e quando vou instalar no cliente a minha dll sempre executo esse comando para registrar a dll COM na maquina cliente:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319egasm LocaleNomeDaSuaDll.dll LocaleNomeDeSuaReferenciaNoVb6.tlb

á mais uma coisa, necessita do framework 4.0 pra funcionar!

ja estava esquecendo... do windows 7 pra frente, tem que ser executada como administrador
Tópico encerrado , respostas não são mais permitidas