Ir para conteúdo

POWERED BY:

Arquivado

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

Claudio Neto

[Resolvido] Erro ao criar DLL

Recommended Posts

Estou tentando criar uma DLL para usar em uma aplicação feita em VB.

 

De início estou tentando fazer algo simples:

int _stdcall add2(int num){
   return num + 2;
}
Só para teste mesmo.

 

Mas quando chamo a função em VB dá o seguinte erro:

Can't find DLL entry point add2 in 'c:\mydll.dll'

 

Então encontrei no site da MinGW uma explicação de como corrigir isso, mas para compilar dá o erro:

dll.cpp:9: error: expected constructor, destructor, or type conversion before "F

ooBarRet"

dll.cpp:14: error: expected constructor, destructor, or type conversion before "

DllMain"

dll.cpp:30:16: warning: no newline at end of file

 

Para compilar estou usando:

gcc -shared -o mydll.dll dll.cpp

Em ambos os casos.

 

O que está faltando no primeiro e porque o segundo não compila?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Quit, mas o erro não está na geração da DLL?

 

No fim das contas, a dica que ele deu foi de usar _stdcall para as dll que forem funcionar com VB6. Eu achei uma apostila aqui que ensina a criar usando VC6. Em todos os exemplos dados ele tbm usa _stdcall. Mas eu queria tentar criar na mão, não com IDE. Mas meu exemplo já está com _stdcall e mesmo assim não roda.

 

O que quer dizer esse erro?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui rodar. Quer dizer, desisti de compilar na mão e baixei o DEV C++.

 

O código da dll ficou assim:

 

mydll.h:

#ifndef _MYDLL_H_
#define _MYDLL_H_

#include <stdio.h>

extern "C" __declspec(dllexport) int MinhaFuncao();

#endif

mydll.cpp:

#include "mydll.h"

extern "C" __declspec(dllexport) int MinhaFuncao() {
    return 1;
}

Para quem tiver interesse, o tutorial que segui está aqui.

Só fica a observação que o programa que ele sugeriu para testar feito em C não compilou. Mas a DLL funcionou com VB6.

 

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.