Главная страница | назад





Article #16718: Conversion of assembly from 16-bit to 32-bit

 Question and Answer Database
FAQ1718C.txt Conversion of assembly from 16-bit to 32-bit
Category :C/C++ Language Issues
Platform :All
Product :C++Builder 1.x
Question:
In trying to convert a 16-bit EasyWin program to a Win32 console
program I have encountered an error during linking which reads,
"Bad loc for fixupp in module XXXX".
The program is comprised of C++ and assembly language modules.
The problematic module is an assembly module. Some of the
assembly modules link properly but some do not, and I have not
been able to find a reason for this by comparing the working
and not working modules.
When I remove the problematicmodules the program runs.
Does anywone know what this error means?
PLEASE NOTE: I have searched the Borland databases but the few
applicable entries did not help me. (For example, I could not
find any 00000s messages when I assembled my module with the
list option.)
I am using version 5.0x of the Borland C++ development suite and
TASM32 version 5. I have included the .386 and .model flat
directives at the top of each assembly module. I have also been
careful to leave out any direct segment references which might
confuse the linker. Any help would be very much appreciated.
Answer:
You may have forgotten FAR keyword somewhere.
Note that 32-bit flat programs use FAR calls very rarely in some
very specific cases and linker assumes all user-defined labels
as NEAR.
7/2/98 10:32:32 AM

Last Modified: 01-SEP-99