PDA

Ver la Versión Completa : usando archivos .obj de C++ en mi proyecto de Delphi


xangiesaurx
14-03-2016, 19:58:04
Hola a todos, tengo una pequeña duda, estoy usando archivos .obj de C++ en mi proyecto de Delphi, el problema es que me salen estos errores:

[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '_fltused'
[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '__GSHandlerCheck'
[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '__security_cookie'
[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '__security_check_cookie'

Alguien sabe que me falta hacer (ya implemente funciones de msvcrt.dll para corregir otros errores, pero estos persisten) o como eliminar estos errores?
Gracias :)

Ñuño Martínez
15-03-2016, 12:14:44
Usar archivos objeto de C++ desde Delphi no es fácil. De hecho, es muy difícil ya que ambos compiladores usan nomenclaturas diferentes para definir el nombre de los objetos, y también difiere en el número, orden y forma de paso de los parámetros. En concreto "this" no tiene traducción directa a "SELF", así como la definición de la tabla virtual no tiene nada que ver en uno u otro lenguaje, y si ya nos vamos a las excepciones, ni te cuento.

Con C es otro tema, ya que, al ser un lenguaje diseñado para trabajar en bajo nivel, tiene un funcionamiento muy sencillo.

Normalmente, cuando hay que acceder a C++ desde Delphi se suele crear una envolvente "C++ a C", y luego ya se puede acceder a esa envolvente como si fuera C.

xangiesaurx
15-03-2016, 18:02:08
Gracias por tu respuesta ñuño, es cierto que me ah costado un poco de trabajo esto de los archivos objeto, pero afortunadamente poco a poco voy entiendo un poco, logre solucionar estos errores
[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '__GSHandlerCheck'
[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '__security_cookie'
[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '__security_check_cookie'

deshabilitando el /GS Switch desde VS, asi al compilar de nuevo y generar los objetos ya no tenia ese problema, lo que aun no logro arreglar es el siguiente error:

[dcc64 Error] JPG.pas(1223): E2065 Unsatisfied forward or external declaration: '_fltused'

Alguien sabe por que me sale este error y cual sería su posible solución?.
Gracias :)