Как подлинковать статическую библиотеку 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).

info В обработку принимаются вопросы только по Корпоративному ПО и компьютерной технике для использования в организациях. Отправить запрос
info Техподдержка для Домашних пользователей (персональные версии программ, компьютер, ноутбук, принтер, сканер, монитор) производится Службами поддержки Производителей