Olá...
 
Amigo quando você criar uma dll que será utilizada em outro ambiente que não o 
próprio Delphi deve tomar cuidado para deixá-la compativel... de uma olhada no 
texto que é inserido pelo Delphi no iníncio da unit da dll...
Por exemplo vc deve usar Pchar ao invés de String na passagem de parâmetros:
function ObterMensagem(FCod_Mensagem : Integer):Pchar;stdcall
 
Abraços 
 
Macfly
Marcelo Moacir Florindo <[EMAIL PROTECTED]> wrote:
Amigos,

Não sei se é off-topicm, porém se for, peço desculpas...

Bem, eu fiz uma DLL em delphi

porém ao tentar chamar os métodos, passando parametro, eu não consigo 
receber na dll os parametros.
meu método na dll delphi:

function ObterMensagem(FCod_Mensagem : Integer):String;stdcall
begin

   showmessage(intToStr(FCod_Mensagem));
   case FCod_Mensagem of

        0: result := 'Ação executada com sucesso.';
       -1: result := 'Erro ao Incluir Dados do Veiculo.';
       -2: result := 'Erro ao Incluir Dados do Movimento de Cota.';
       -3: result := 'Erro ao Incluir Dados da Transação.';
       -4: result := 'Erro ao Incluir Dados do Detalhe da Transação.';
       -5: result := 'Erro ao Incluir Dados do Modelo de Veiculo.';
       -6: result := 'Erro ao Incluir Dados da Marca do Veiculo.';
       -7: result := 'Transação já inicializada.';
       -8: result := 'Transação inicializada com sucesso.';
       -9: result := 'Impossível inicializar transação.';
      -10: result := 'Transação não inicializada.';
      -11: result := 'Transação Finalizada com sucesso.';
      -12: result := 'Transação impossível de ser inicializada.';
      -13: result := 'Veiculo não cadastrado.';
      -14: result := 'Cidade não cadastrada.';
      -15: result := 'Modelo de Veiculo não cadastrado.';
      -16: result := 'Pais não cadastrado.';
      -17: result := 'Plano de Veiculo não cadastrado.';
      -18: result := 'Marca não cadastrada';
      -19: result := 'Descrição do Modelo não poderá ser nula.';
      -20: result := 'Valor do Campo F_I_Num_Dig_Hodometro fora da Faixa 
(2).'+#10+
                     'Não existindo valores, inclua com 0 (zero).';
      -21: result := 'Valor do Campo FI_Cap_Tue fora da Faixa (4).'+#10+
                     'Não existindo valores, inclua com 0 (zero).';
      -22: result := 'Descrição da Marca não poderá ser nula.';
      -23: result := 'Descrição ou Nome já existente na tabela.';
      -24: result := 'Placa já cadastrada';
      -25: result := 'Campo F_I_Cod_M_Pessoa não poderá ser nulo';
      -26: result := 'Planta não cadastrada.';
      -27: result := 'Unidade de Produto não cadastrado.';
      -28: result := 'Produto não cadastrado.';
      -29: result := 'Usuário não cadastrado.';
      -30: result := 'Valor do Hodômetro não poderá ser zero.';
      -31: result := 'Preço Unitário fora da faixa.';
      -32: result := 'Erro ao tentar montar a estrutura do abastecimento.';
      -33: result := 'Erro na Conexão.';
   end;

end;

A estrututura de testes do VB

Option Explicit


Public Declare Function ObterMensagem Lib 
"C:\desenvolvimento\saaf\saaf_integrador_dll\SAAF_Integrador.dll" 
(FCod_Mensagem As Integer) As String

Private Sub CommandButton1_Click()  
    Call ObterMensagem(-2)  
End Sub

e nada funciona, aparecendo esta mensagem:

ERRO EM TEMPO DE EXECUCAO '-2147417848(80010108)

ERRO DE AUTOMAÇÃO
O OBJETO CHAMADO FOI DESCONECTADO DE SEUS CLIENTES

Obrigado a todos..

Marcelo


-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED] ou [EMAIL PROTECTED]




---------------------------------
Links do Yahoo! Grupos

   Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
  
   Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
  
   O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do 
Yahoo!. 


                
---------------------------------
Discover Yahoo!
 Find restaurants, movies, travel & more fun for the weekend. Check it out!

[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a