Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
RomikB Гость
|
Добавлено: Вс Май 11 2003 19:50 Заголовок сообщения: Подружить GCC и Nasm |
|
|
Надо собрать Windows Dll из двух файлов .c .asm, а gcc почему-то не хочет создавать или создает неправильную Dll. Подскажите что и с какими ключами компилировать.
---file_asm.asm global _function_asm extern _printf section .text _function_asm: push dword str call _printf add esp,0x04 mov ecx,0x1000 mov edi,bss_data rep stosd ret section .data str db "String2print",0 section .bss bss_data resd 0x1000 ---file_c.c void function_c(void){ } --- Необходимо создать dll. Сколько я не пытался у меня не вышло , подскажите пожалуйста. |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Май 12 2003 11:50 Заголовок сообщения: А какая ОС (+) |
|
|
Попробуй под NT. У меня опыт такой: GCC+Perl под 98 не компилируется, под NT компилируется. Вероятно, 98 не дает достаточно ресурсов для GCC. |
|
Вернуться к началу |
|
|
RomikB Гость
|
Добавлено: Вт Май 13 2003 22:48 Заголовок сообщения: Re: А какая ОС (+) |
|
|
Хм. Не знал. Проблема в том, что компилируеться и линкуеться, но получаеться какая-то неправильная DLL только под Win98 работает, а под 2k и XP не хочет... |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Ср Май 14 2003 17:39 Заголовок сообщения: (Только как предположение! Не более!) По описанию имеет место статическое связывание, (+) |
|
|
то есть функции из внешних библиотек (типа Commdlg.dll, Commctrl.dll) вставляются в код конечного модуля. Они как раз и не работают в дугой ОС. Попробуй поискать ключики, которые отменяют статическое связывание, чтобы фугкции такого рода всегда брались из той копии ОС, в которой выполняется программа. |
|
Вернуться к началу |
|
|
|