Портирование импорта DLL из c # в c ++

вы можете использовать

$('.buttons').on('click', 'button', function(){
    // your magic goes here
});

или

$('.buttons').delegate('button', 'click', function() {
    // your magic goes here
});

, эти два метода эквивалентны, но имеют другой порядок параметров.

см .: Событие делегата jQuery

1
задан TerribleDog 28 March 2019 в 02:48
поделиться

1 ответ

При условии, что у вас нет заголовка разработки и файлов lib, доступных для DLL, и вам необходимо динамически загрузить DLL в ваш проект C ++, тогда вы можете сделать следующее.

Определите указатель на функцию (эквивалентно вашему объявлению extern):

typedef int FnSomeFunction(const char* input);

Загрузите библиотеку (здесь я использую LoadLibraryA для загрузки библиотеки DLL с именами, это зависит от вашего Проект C ++). DLL должна находиться в пути поиска, то есть в том же пути, что и исполняемый файл):

HMODULE hModule = LoadLibraryA("something.dll");

Проверить, что модуль успешно загружен:

if (hModule == nullptr)
    throw std::runtime_error("Lib not loaded");

Получить точку входа в функцию из библиотеки:

FnSomething* fnSomething = (FnSomeFunction*)GetProcAddress(hModule, "somthng");

Вызовите функцию:

(*fnSomething)("some text");

Освободите библиотеку, когда она больше не нужна:

FreeLibrary(hModule);
0
ответ дан J.R. 28 March 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: