Пость имеется исходная пара некоторой библиотеки на экспорт:
Код: Выделить всё
// language_Common.h
#pragma once
#include <string>
bool /*тут, наверное, экспортное украшение нужно*/ GetGladeString(const std::string& strKey, std::string& strValue);
bool /*тут, наверное, экспортное украшение нужно*/ GetSingleString(const std::string& strKey, std::string& strValue);
typedef bool (/*тут, наверное, экспортное украшение нужно*/ *LOOKUP_PROC_PFN)(const std::string& strKey, std::string& strValue);Код: Выделить всё
// language_RU.h
#pragma once
#include "language_Common.h"Код: Выделить всё
// language_RU.cpp
#include "language_RU.h"
bool /*тут, наверное, экспортное украшение нужно*/ GetGladeString(const std::string& /*strKey*/, std::string& /*strValue*/) { return false; }
bool /*тут, наверное, экспортное украшение нужно*/ GetSingleString(const std::string& /*strKey*/, std::string& /*strValue*/) { return false; }Вопрос 0:
Какое украшение необходимо функциям на экспорт ?
Вопрос 1:
Как должна выглядеть командная строка для строя динамической библиотеки "language_RU", экспортирующей обе функции ?
Далее, пусть имеется клиент библиотеки:
Код: Выделить всё
// test.cpp
#include "language_RU.h"
int main(int argc, char* argv[])
{
LINUX_INSTANCE_HANDLE hLib(::linuxLoadLibrary("language_RU"));
if (hLib) {
LOOKUP_PROC_PFN pfnGetSingleString(::linuxGetProcAddress(hLib, "GetSingleString"));
if (pfnGetSingleString) {
const std::string strTestKey("flashTitle");
std::string strTestValue;
if ((*pfnGetSingleString)(strTestKey, strTestValue)) {
// Поехали...
}
}
::linuxFreeLibrary(hLib);
}
return 0;
}Вопрос 2:
Как это (код в test.cpp) пишется в Линуксе ?
Спасибо большое !