Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C + Virtual Passcal

0 views
Skip to first unread message

Alexey Korop

unread,
Jan 23, 2006, 5:29:06 AM1/23/06
to
* Crossposted in SU.OS2.PROG

Привет, All!

Есть набор исходников подпрограмм на Си. Хочется к ним обратиться из
программы на VP. Сами функции тихие, без всяких там malloc или spritf, так что
с совместимостью рантаймов проблем быть не должно.
Чтобы VP не лепил к именам функций имя юнита, ставлю {&Orgname+}.
Компилирую сишные программы при помощи Watcom с ключиками типа -s -5s.
Получаются объектники, у которых имена функций чистые, без '@' впереди.
Казалось бы, хорошо. Hо слинковать всё равно не получается: линкер VP говорит,
что unsupported формат записи в obj-файле. Винда или OS/2 - не важно (что host,
что target).
Понимаю, что можно через dll, но хочется слинковать статически. Hеужто
никак?

С уважением, Alexey.

...В действительности всё совсем не так, как на самом деле.

Sp0Raw

unread,
Jan 24, 2006, 5:48:01 PM1/24/06
to
AK> Есть набор исходников подпрограмм на Си. Хочется к ним обратиться
AK> из программы на VP. Сами функции тихие, без всяких там malloc или
AK> spritf, так что с совместимостью рантаймов проблем быть не должно.
AK> Чтобы VP не лепил к именам функций имя юнита, ставлю {&Orgname+}.
AK> Компилирую сишные программы при помощи Watcom с ключиками типа -s -5s.
AK> Получаются объектники, у которых имена функций чистые, без '@'
AK> впереди. Казалось бы, хорошо. Hо слинковать всё равно не получается:
AK> линкер VP говорит, что unsupported формат записи в obj-файле. Винда
AK> или OS/2 - не важно (что host, что target).
AK> Понимаю, что можно через dll, но хочется слинковать статически.
AK> Hеужто никак?

С проблемой подробно не разбирался, сделал по принципу "работает и пофиг",
нужно было быстро решить:

BCC делал несовместимый с VP .obj. Причин не помню.
Watcom делал правильный .obj, но в нем надо было после этого патчить функции из
имен "_dllnameFunctionName" на "dllname@FunctionName". Опции на компиляцию у
меня:
wpp386 -bc -d0 -zl -s x.cpp

Dmitry Zavalskov

unread,
Jan 25, 2006, 1:58:55 PM1/25/06
to
Hi,Alexey!

23 Jan 06 13:29, Alexey Korop wrote to All:
AK> Есть набор исходников подпрограмм на Си. Хочется к ним обратиться
AK> из программы на VP. Сами функции тихие, без всяких там malloc или
AK> spritf, так что с совместимостью рантаймов проблем быть не должно.
AK> Понимаю, что можно через dll, но хочется слинковать статически.
1. компилируешь xxx.c.
2. wdisasm -a xxx.obj>xxx.asm (с 11 версии он wdis или как-то так зовется)
3. В xxx.asm удаляешь все лишние extrn (ватком зачем-то экспортит и тут же
_импортит_ все глобальные переменные объектника).
4. tasm xxx.asm

Dmitry.

Alexey Korop

unread,
Jan 26, 2006, 3:23:18 PM1/26/06
to
Привет, All!

23.01.2006 в 13:29:03 Alexey Korop написал к All:

AK> Есть набор исходников подпрограмм на Си. Хочется к ним обратиться
AK> из программы на VP.

Спасибо всем ответившим. Попробую обязательно, но сейчас время поджимало,
так что проблему обошёл через dll.

0 new messages