SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: josezzz en Jueves 1 de Mayo de 2008, 16:05
-
Hola a todos.
Resulta que estoy intentando crear una dll, es copiada de un ejemplo pero no logro hacer que funcione. El ejemplo es el siguiente:
// dlltest.h
#ifndef DLLTEST_H
#define DLLTEST_H
// are we importing or exporting
#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif
EXPORT void Hello();
#endif
// dlltest.cpp
#include "dlltest.h"
#include <iostream>
using namespace std;
EXPORT void Hello()
{
cout << "Hello World" << endl;
}
// hello.cpp
#include "dlltest.h"
int main()
{
Hello();
}
Creo los tres programitas y luego compilo la dll asi:
g++ -c dlltest.cpp -DBUILD_DLL
y parece que todo bien. Pero cuando tengo que usar el dllwrap asi:
dllwrap --output-lib=libdlltest.a --dllname=dlltest.dll --driver-name=g++ dlltest.o
me suelta este error:
dllwrap: no export definition file provided.
Creating one, but that may not be what you want
dllwrap: CreateProcess: No error
He estado mirando por google, pero esta todo en ingles y para mi es muy confuso.
Alguien sabe por que me pasa esto??? Qualquier ayuda sera de agradecer.
Saludos.
-
Mi consejo: usa VC++.
-
:think: ¿Qué compilador estás usando? :think:
En MinGW no recuerdo haber tenido que usar dllwrap para generar una DLL.
Checa aquí:
http://www.adp-gmbh.ch/win/misc/mingw/dll.html (http://www.adp-gmbh.ch/win/misc/mingw/dll.html)
Aquí encuentras lo mismo, además de un ejemplo de carga de la DLL usando LoadLibrary:
http://sig9.com/node/35 (http://sig9.com/node/35)
Quizá esto también te sirva (Dev-C++):
http://codigolatino.allhyper.com/private/E...diecinueve.html (http://codigolatino.allhyper.com/private/Ediciones/Codigo_Latino_2/private/diecinueve.html)
-
Resuelto. Al parecer el ejemplo es algo viejo y el dllwrap esta 'deprecated'. Indagando algo mas he encontrado la solucion en la misma pagina de MinGW.
h t t p : / / w w w .mingw.org/MinGWiki/index.php/sample%20DLL
Saludos y gracias. :-)