Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

линковка без либы

18K
18 мая 2007 года
un_named
60 / / 24.04.2007
Есть функция в user32.dll
SwitchToThisWindow,hWnd (хэндл окна),Restore (развернуть окно,если оно минимизировано;т.е. указываем тру или фалсе);
пишу на МАСМ32, хочу использовать эту функцию, но в инклудах и либах для МАСМа она не предусмотрена.
Если недопонимание с инклудами решается просто - объявлением прототипа, то как обойти либы не знаю - линковщик ругается.
Подскажите как слинковать.
Просьба не предлагать другой способ решения - мне интересно, как можно обходится без либ или как можно создать свои. Это не срочно, время потерпит.
Спасибо за внимание.
7.8K
18 мая 2007 года
Monarhia
105 / / 26.06.2006
Ну я незнаю как это делаетса в масме, но ты можешь в .idata сделать импорт нужной тебе ф-и... в фасме это выглядит приблизительно так:
Код:
.idata

  library kernel,'KERNEL32.DLL',\
          user,'USER32.DLL',\
          gdi,'GDI32.DLL'

  import kernel,\
         GetModuleHandle,'GetModuleHandleA',\
         ExitProcess,'ExitProcess'

  import user,\
         RegisterClass,'RegisterClassA',\
         CreateWindowEx,'CreateWindowExA',\
         DefWindowProc,'DefWindowProcA',\
         SetWindowLong,'SetWindowLongA',\
         RedrawWindow,'RedrawWindow',\
         GetMessage,'GetMessageA',\
         TranslateMessage,'TranslateMessage',\
         DispatchMessage,'DispatchMessageA',\
         SendMessage,'SendMessageA',\
         LoadCursor,'LoadCursorA',\
         LoadIcon,'LoadIconA',\
         LoadMenu,'LoadMenuA',\
         GetClientRect,'GetClientRect',\
         MoveWindow,'MoveWindow',\
         SetFocus,'SetFocus',\
         MessageBox,'MessageBoxA',\
         PostQuitMessage,'PostQuitMessage'

  import gdi,\
         CreateFont,'CreateFontA',\
         DeleteObject,'DeleteObject'

если я не прав или не это нужно было то извините...
334
18 мая 2007 года
HexEdit
809 / / 27.07.2006
Смотри утилиту IMPLIB32, должна входить.... Покрайней мере в VS есть...
7.8K
18 мая 2007 года
Monarhia
105 / / 26.06.2006
Чё за утилита? и для чего она подскажи плз... и я походу не то написал?
334
18 мая 2007 года
HexEdit
809 / / 27.07.2006
То, но это для фасма.
А утилита создает библиотеку импорта на основе длл, указываешь путь к которой.
7.8K
18 мая 2007 года
Monarhia
105 / / 26.06.2006
Цитата: HexEdit
То, но это для фасма.
А утилита создает библиотеку импорта на основе длл, указываешь путь к которой.



ясн, пасиб... но у масма тоже должен быть импорт как у фасма... или как?

334
18 мая 2007 года
HexEdit
809 / / 27.07.2006
Ой, сори... толи перепутал с BCB, толи....
Вобщем вот нашел небольшую статайку, там написано про это...
http://lvm.converters.ru/93/ru/article_3.html
В VS - impdef, но вроде implib тоже была.... Наверное память отшибло :)
Сам чаще пишу на фасме ;)
334
18 мая 2007 года
HexEdit
809 / / 27.07.2006
Цитата: Monarhia
у масма тоже должен быть импорт как у фасма... или как?


Нет - там либы

7.8K
18 мая 2007 года
Monarhia
105 / / 26.06.2006
хз, у меня ссылк не открываетса или со шрифтами лаганутыми...
А насчёт масма ты роскажи "un_named" ответ... ато чё мы заговорились не в тему))
7.8K
18 мая 2007 года
Monarhia
105 / / 26.06.2006
ясн... ну считаем ответили)) Вернее ты ответил...
334
18 мая 2007 года
HexEdit
809 / / 27.07.2006
[quote=Monarhia]хз, у меня ссылк не открываетса или со шрифтами лаганутыми...[/quote]
Ну вот цитата оттуда (на главное)
Цитата:
Как импортировать функции dll Borland в MS Visual studio 6.0?

1 Создаем def файл

Пример:

impdef ParseAddr.def ParseAddr.dll

2 При необходимости из def файла удаляем лишние функции и знаки '_'

3 Создаем lib файл при помощи утилиты lib.exe

Если пути не проставлены ее можно найти в "C:\Program Files\Microsoft Visual Studio\VC98\Bin"

Кстати, потребуется также файл MSPDB60.DLL ("C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin")

Пример:

LIB.exe /def:F:\Laboratory\ParseAddr.def /out:F:\Laboratory\ParseAddr.lib

7.8K
18 мая 2007 года
Monarhia
105 / / 26.06.2006
хм... интересно...! в фасме поменьше проблем будет... "un_named";)
334
18 мая 2007 года
HexEdit
809 / / 27.07.2006
Согласен ;)
18K
21 мая 2007 года
un_named
60 / / 24.04.2007
Всем спасибо, что откликнулись, если кому поможет, то удалось накопать вот такую интересную статейку:
http://www.wasm.ru/article.php?article=1018001
Но что-то у меня либ.ехе создаёт библиотеки, которые МАСМ не признаёт. Попробую ешё последний вариант (это где с Млиб и файлами .ицз).
Если кто-нибудь знает с какими параметрами дружит Млиб, подскажите пожалуйста.
Цитата:
хм... интересно...! в фасме поменьше проблем будет... "un_named"


+1 :)
Наверно так и поступлю, но ФАСМ увы не такой удобный, хотя... если написать подходящие макросы...

7.8K
21 мая 2007 года
Monarhia
105 / / 26.06.2006
Как по мне масм совсем не удобный...! поэтому насчёт макросов сор, но мне кажетса это совсем на тугой конец писать надо...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог