DLL en Builder
¿Porque cuando genero una dll en CBuilder las funciones exportables se anteceden con un '_' dentro del archivo dll? ¿puedo modificar esto?
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.
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.
