• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   13-02-2016

      Prezados membros do Clube do Hardware,

      Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:
        Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas ao formulário abaixo:    Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Seguidores 0
Overmind

Tipos de dados em diferentes linguagens

3 posts neste tópico

: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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar agora
Entre para seguir isso  
Seguidores 0