DLL en Builder

JOse
07 de Marzo del 2003
¿Porque cuando genero una dll en CBuilder las funciones exportables se anteceden con un '_' dentro del archivo dll? ¿puedo modificar esto?

fpeque
07 de Marzo del 2003
Lo que pasa es que Builder Genera un underscore (subguión o guión bajo "_") a cada uno de los identificadores globales (funciones, variables o constantes). Para evitar esto debes desactivar la casilla Generate underscores en la oreja Advanced Compiler del diálogo Options en el Menú Project. Si bien esta es una opción bastante buena, no podrás utilizar las librerías (*.lib) por que ellas están enlazadas con esa opción activada.
Una segunta opción puede se antecer a la cláusula __export con __stdcall. Pero para esto hay que tener en cuenta de hacerlo en cada imortación también, para no tener problemas con la pila (stack).
Una tercera opción es guardar la función exportar en un archivo con extenciòn c (*.c). de esta manera esta funciòn no tendrá los manejos de nombres que si tienen los cpp (*.cpp). El problema de esto es que tendrás módulos echos en c y otros en c++, lo que puede resultar algo confuso.
Una cuarta opción (es la que prerimos) es anteceder la declaraciòn de la función con extern "C", esto solo tiene utilidad en archivos cpp (*.cpp). Por ejemplo:
extern "C" void __extern Funcion( void );
Es la soluciòn más elegante.

francis
07 de Marzo del 2003
Necesito saber como usar una dll, con funciones para capturar imagenes como CaptureBMP, en c++ builder, serias tan amable de explicarmelo.MUCHAS GRACIAS