2012-01-04 14 views
7

Recientemente descubrí a problem on the midas y lo arreglé, el problema ahora es que quiero usar MidasLib no midas.dll y con el código fuente solo puedo construir la DLL.Cómo construir midas.obj desde el código fuente de midas

La fuente es C++ y tengo muy pocos conocimientos con ella. Sé que MidasLib.pas usa internamente midas.obj, así que necesito crearlo para vincular estáticamente los midas a mi aplicación. ¿Cómo hacerlo en C++ Builder? (XE)

+0

Puede que sea mejor parchear el código en memoria en lugar de intentar recompilarlo. Si puede ubicar ese 255 en la memoria, entonces todo lo que necesita hacer es una modificación bastante VirtualProtect y estará dorado. –

+0

@DavidHeffernan ¡Sí! Esta sería realmente la mejor forma, pero cómo encontrar: 1 - la declaración #define; 2 - la línea a modificar? –

+0

@DavidHeffernan Entonces, ¿hay NINGUNA MANERA de construir midas.obj del código fuente ???? –

Respuesta

1

Al compilar el código C++, el compilador crea un archivo .OBJ para cada archivo .CPP/.C que tenga y los guarda en algún lugar de su computadora. Lo que sucede en la mayoría de los casos es que uno ejecuta un enlazador en todos esos archivos .OBJ para unirlos en un único archivo EXE o DLL, pero en su caso no necesita esos resultados. Su C++ Builder, como la mayoría de los IDEs de programación, hace automáticamente la compilación y el enlace.

Si solo desea el archivo .OBJ, necesita encontrar el lugar en la carpeta de su proyecto C++ Builder coloca sus archivos .OBJ (llamado su "salida intermedia", típicamente, ya que es el paso intermedio entre compilación y vinculación) . Entonces debe tener un archivo fuente llamado midas.cpp o midas.c que produzca un archivo de salida correspondiente llamado midas.obj.

+0

¡Sí! Esta fue la respuesta que estaba buscando. Pero desafortunadamente Embarcadero no proporciona un midas.cpp, así que no midas.obj esta vez. Pero seguí el enfoque de David Heffernan y he hecho un parche en el midas.obj original para obtener el comportamiento esperado. Muchas gracias. Solo para explicar un poco más: El archivo .obj es para el archivo .cpp en C/C++ como el archivo .dcu es para el archivo .pas en Delphi;) –

+0

Aquí está mi solución (en portugués, lo siento): https://sites.google.com/site/carlosfeitozafilho/artigos/comoobtermensagensdeerroereconcileerrorcommaisde255caracteres –

Cuestiones relacionadas