Ir ao conteúdo

Posts recomendados

Postado

Criei uma .dll em C e está funcionando muito bem, porém não estou conseguindo utilizá-la em outros projetos,

alguém tem um código de exemplo em C ou C++ que possa compartilhar?

Postado

#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 ( );
}

Postado

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!