Ir ao conteúdo
  • Cadastre-se

Tipos de dados em diferentes linguagens


Overmind

Posts recomendados

:huh: Estou tentando escrever uma macro no Excel (em VBA) para executar algumas funções (mais por curiosidade do que por necessidade!) para auxiliar em alguns trabalhos.

O problema é que a linguagem interpretada do VBA é muito lenta para executar todo o conjunto de comandos. Então decidi criar uma DLL (em Delphi) contendo as funções mais críticas. O outro problema é que o VBA não aceita os valores retornados pelas funções do Delphi (nem Variant, String, Integer ou outro tipo qualquer).

Pergunta: Existe alguma forma de passar valores de uma linguagem (seja ela qual for) para outra linguagem (qualquer uma também), mesmo seus tipos de dados sendo diferentes. Atualmente estudo Delphi e C++. :help:

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Estranho. você não deveria ter problemas com o formato Integer. String e Variant já são mais complexos e realmente pode existir incompatibilidades.

Tente fazer testes com outros formatos básicos (integer seria um), tipo dword, byte e double, por exemplo. Se persistir o problema, melhor verificar a declaração das funções e se elas são exportadas de forma correta.

Não é muito comum alguém importar DLL feita no Delphi no VB/VBA. Em geral usam o Visual C++. Não sei te dizer se tem alguma incompatibilidade. Talvez nas funções você precisei declarar o padrão com que os parâmetros são passados. Use o cdecl que é o padrão para a linguagem C. você precisa apenas incluir no final da declaração de cada função esse parametro.

Dê uma lida nisso: http://www.swissdelphicenter.ch/torry/showcode.php?id=1233

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Me desculpe pela demora na resposta, e muito obrigado pela ajuda.

Eu estava usando o stdcall, mas ainda não tive tempo para testar o cdecl.

Sou iniciante em Delphi e C++, mas gostaria de aprender ambas as linguagens.

Por enquanto estou "quebrando um galho" brincando com o VBA, já que uso o Excel 8 horas por dia :P . ( o "ajuda" do VBA diz, inclusive, que pode haver uma incompatibilidade entre os tipos de dados de outras linguagens)

O fato é que encontrei uma forma de contornar a necessidade de utilizar um procedimento compilado externo através de algumas ferramentas que têm um desempenho aceitável dentro do próprio VBA. Estudarei o caso das chamadas de função e, se conseguir descobrir o que está errado nas minhas chamados, postarei nesse fórum novamente.

Por hora, grato pela dica. Vou dar uma olhada com muita atenção nesse site.

:-BEER

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...