Olá pessoal,
meu primeiro post aqui neste fórum - que já me ajudou (e muito) - e chego cheio de dúvidas.
Inicialmente informo que é a primeira vez que uso c++, sempre usei delphi e um pouco de java.
Estou usando Dev c++ em ambiente windows.
Meu problema:
Tento compilar um projeto cpp que irá acessar uma dll através de um header (.h). O .h contém as assinaturas dos métodos (me perdoem se falei alguma besteira) que estão na dll, mas só retorna o erro:
Eu consigo visualizar todos os métodos da dll através dos headers e consigo mostrá-los apertando ctrl+espaço quando estou escrevendo um trecho de código no meu arquivo principal. Na aba lateral “Classes” ao lado de “Project” e “Debug”, eu consigo visualizar todas as estruturas chamadas disponíveis.
Os headers estão todos na mesma pasta do meu projeto. A lib da .dll e a .dll que quero utilizar também estão na mesma pasta.
Já tentei adicionar as referências da pasta no projeto (“Tools” > “Compiler Options” > “Directories”).
#include <cstdlib>
#include <iostream>
#include "UF_API.h" //incluindo header necessário.
using namespace std;
int main(int argc, char *argv[])
{
int teste = 5; //declarando variável do tipo int
UF_CalculateTimeout(teste); //chamando método
system("PAUSE");
return EXIT_SUCCESS;
}
Imagino que seja alguma coisa simples, mas não estou conseguindo descobrir o motivo do problema.
Agradeço desde já a atenção, e se precisarem de mais informações é só pedir que eu busco.
PS : Fiz uma dll para testes e utilizei o mesmo princípio… funcionou. Consigo chamar os métodos e etc.
Acredito que o problema seja na dll que quero utilizar. Talvez os nomes dos métodos estejam incorretos ou algo assim (o que é estranho pois o .h veio junto com a dll, ou seja, acho que o desenvolvedor não iria se enganar dessa maneira não é? )
Se alguém souber de algum programa que abra a dll e mostre o nome dos métodos que estão lá exportados já ajuda!!
Bom galera, consegui resolver o problema aqui. O método não existia na dll mesmo :roll: . Consegui uma documentação atualizada e vi onde estava o erro.
Valeu da força e caso alguém tenha alguma dúvida posta aqui que eu leio depois…