Как подлинковать статическую библиотеку ScApiBnd.lib
09.04.11 | Раздел публикации: Cognitive Technologies
Посетитель: Здравствуйте,
Как подлинковать статическую библиотеку ScApiBnd.lib?
-----------------------------------------------------------------------------------------------------
Консультант: Здравствуйте,
Библиотека состоит из набора .dll-файлов, которые должны редистрибутироваться вместе с прикладной программой. Кроме того, для связывания библиотеки с прикладной программой, на этапе компиляции и сборки необходимы заголовочные файлы ScApi.h и ScApiBnd.h и статические библиотеки ScAli.lib и ScApiBnd.h.
Возможно динамическое и статическое связывание прикладной программы с библиотекой Scanify API.
Статическое связывание
В случае статического связывания файл ScApi.dll и все остальные .dll библиотеки должны находиться в той же директории, что и .exe-файл программы. Включить ScApi.lib в проект MSVC или указать ScApi.lib на вкладке Link диалога Project Settings. В текст прикладной программы включить заголовочный файл библиотеки:
#include "ScApi.h"
Динамическое связывание
В случае динамического связывания все .dll, относящиеся к библиотеке, должны находиться в одной директории.
1 способ
Подлинковать статическую библиотеку ScApiBnd.lib.
Включить заголовочный файл
#include "ScApiBnd.h"
Вызвать функцию
bool ScBindApi(const char *dll_path_name);
Где dll_path_name — строка пути к ScApi.dll. Путь может быть либо абсолютным, либо относительным — относительно местоположения .exe-файла. Библиотека будет загружена, и указатели pSc… будут инициализированы функциями библиотеки.
2 способ
Подлинковать статическую библиотеку ScApiBnd.lib.
Включить заголовочный файл
#include "ScApiBnd.h"
Вызвать
HMODULE ScLoadLibrary(const char *dll_path_name);
Где dll_path_name — строка пути к ScApi.dll. Путь может быть либо абсолютным, либо относительным — относительно местоположения .exe-файла. Функция загрузит библиотеку и вернет ее хэндл. Теперь можно вручную грузить функции через GetProcAddress(). Экспортируемые имена функций соответствуют соглашению __stdcall, т.е.
_Имя-функции@число-байт-списка-аргументов
Например
_ScInitialize@4
Чтобы получить список всех экспортируемых имен, можно воспользоваться командой:
dumpbin /exports scapi.dll
(утилита dumpbin входит в MSVC).
В обработку принимаются вопросы только по Корпоративному ПО и компьютерной технике для использования в организациях. Отправить запрос |
Техподдержка для Домашних пользователей (персональные версии программ, компьютер, ноутбук, принтер, сканер, монитор) производится Службами поддержки Производителей |