Ir ao conteúdo
  • Cadastre-se

Utilizar dll criada em c, em outros projetos c/c++


Endrew Lima

Posts recomendados

#include <stdio.h>
#include "minha.DLL"
#include <conio.h>
int main ( ) {
    //O problema está aqui, não estou conseguindo
    //colocar algum comando que faça subir a dll.
    //A mesma está incluída nos includes
    //e fisicamente se encontra no projeto ao lado
    //deste código, junto está também o arquivo minha.a.
    //Na verdade o compilador está visualizando-a como
    //um arquivo de texto com centenas de caracteres incompreensíveis.
    // e faz sentido porque uma dll não pode ser lida como um arquivo de texto.
    getche ( );
}

Link para o comentário
Compartilhar em outros sites

Para usar as funções da DLL você precisa exportar as funções da DLL.

No código da dll adicione isto antes do tipo da função que deseja que seja exportada

__declspec(dllexport)

Após ter criado a Dll já com as funções preparadas para serem usadas por outros programas você pode fazer isso de duas maneiras("Que eu conheço") o jeito mais usado é fazendo o que o membro acima disse, adicionando o arquivo .lib ao projeto.

 

Supondo que esta é a função que eu criei dentro da dll e quero usar em outro programa.

__declspec(dllexport) int somarNumeros(int x, int y)
{
	return x + y;
}

Para usar basta incluir o arquivo .lib no projeto e depois fazer o seguinte.

#include <iostream>
#include <windows.h>
using namespace std;
  
__declspec(dllimport) int somarNumeros(int x, int y);
  
int main()
{
  int soma = somarNumeros(5, 3);
  cout << "A soma de 5 e 3 e: " << soma << endl;
  return 0;
}

Caso não queira usar o arquivo .lib também da para fazer da seguinte maneira.

 

#include <iostream>
#include <windows.h>
  
using namespace std;
  
#typedef int(__stdcall* somarnumeros)(int x, int y);
somarnumeros iSomarNumeros;
  
int main()
{
  HMODULE minhaDLL = (HMODULE)LoadLibrary("NomeDaDLL.dll");
  iSomarNumeros = (somarnumeros)GetProcAddress((HMODULE)minhaDLL, "somarNumeros");
  
  int soma = iSomarNumeros(5, 3);
  cout << "A soma de 5 e 3 e: " << soma << endl;
  
  return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!