Сейчас на форуме: (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› подключение masm obj файла в BCB6 |
Посл.ответ | Сообщение |
|
Создано: 18 июля 2007 20:29 · Личное сообщение · #1 просто хочу разобраться как связать асм функции с такой вот средой разработки есть асм функция:
выполняю команду: C:\masm32\bin\ml /nologo /c /coff /Cp /IC:\masm32\include\ example.asm получившийся obj файл формата coff преобразую программой coff2omf.exe в omf формат в билдере с подключаю его к проекту, затем обьявляю саму функцию: extern "C" void _stdcall mess();
после чего он при попытке компиляции заявляет следующее: [Linker Error] Unresolved external 'mess' referenced from C:\BUILDER\UNIT1.OBJ что я зделал не так? ![]() |
|
Создано: 18 июля 2007 22:05 · Личное сообщение · #2 |
|
Создано: 18 июля 2007 23:29 · Личное сообщение · #3 |
|
Создано: 19 июля 2007 05:13 · Личное сообщение · #4 пробовал подключать к vc++ 2005 там требуется coff формат - все нормально работает сейчас к билдеру подключить тоже самое немогу. файлы в приложении ![]() ![]() |
|
Создано: 19 июля 2007 05:14 · Личное сообщение · #5 |
|
Создано: 19 июля 2007 05:34 · Личное сообщение · #6 упс нетрогайте первую ссылку чтото нето я туда кинул, с утра плохо понимаю что происходит итак если подключать этот код скомпонованый в coff формате в vc2005 все нормально работает тотже coff obj файл преобразую программой coff2omf.exe в omf формат и подключаю его к проекту в билдере, видимо я както не так его подключаю возможно mathio вот файлы которые пытаюсь связать ![]() ![]() |
|
Создано: 19 июля 2007 05:43 · Поправил: v0id2k · Личное сообщение · #7 |
|
Создано: 19 июля 2007 13:04 · Личное сообщение · #8 Не знаю, как там в BCB, но думаю также, как и в Delphi. А чтоб прилиноквать к Delphi, coff2omf недостаточно, надо omf2d юзать, чтоб преобразовать вызовы функций из _MessageBoxA@16 в MessageBoxA или из _mess@4 в mess. Попробуй ещё в tasm скомпилить, он точно прилинкеруется. ![]() ![]() |
|
Создано: 19 июля 2007 19:03 · Личное сообщение · #9 спасибо за файл пробовал но все равно получаю сообщение: [Linker Error] Unresolved external 'mess' referenced from C:\BUILDER\000\UNIT1.OBJ мне кажется я как-то неправильно его добавляю в проект что он его не воспринимает я делаю это через меню Project--->Add to Project...--->выбираю файл example_omf2d.obj в cpp пишу следующее:
неработает! а как создать lib - файл формата omf? ![]() |
|
Создано: 19 июля 2007 19:26 · Личное сообщение · #10 |
|
Создано: 20 июля 2007 06:32 · Личное сообщение · #11 |
|
Создано: 20 июля 2007 17:52 · Личное сообщение · #12 |
|
Создано: 21 июля 2007 15:28 · Личное сообщение · #13 IGORb_IGOREV пишет: он не там ищет - он ищет функцию в UNIT1.OBJ а она в example_omf2d.obj Бред, в bpr же прописано <OBJFILES value="Unit1.obj example_omf.obj"/>. example_omf.obj который ты выложил вообще какой-то кривой, конечно же он не линкуется ![]() ![]() ![]() |
|
Создано: 21 июля 2007 18:08 · Личное сообщение · #14 да MiHaN ты прав насчет example_omf.obj, но он не кривой а пустой проблема была в coff2omf от borland вот он кривой, создавал пустые файлы и как выяснилось нужно было передавать ему в качестве параметров не obj а lib файлы, но они в итоге тоже пустые получались. скомпоновать мой пример помогла програмка Coff2omf от Walter Oney. твои оба примера нормально работают. Большое СПАСИБО за помощь а то уже 4 дня с этим возился! ![]() |
![]() |
eXeL@B —› Программирование —› подключение masm obj файла в BCB6 |