Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
310 / 271 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
1

Не получается явное связывание

19.07.2012, 11:52. Просмотров 1534. Ответов 2
Метки нет (Все метки)

Всем привет. Делаю пример с явным связывание динамической DLL, но я не понимаю одной штуки.
Сам заголовочный .h файл:
C++
1
2
3
4
5
6
7
8
9
#pragma once
#ifdef __MYDLL__
#define LIB extern "C" __declspec(dllexport)
#else
#define LIB extern "C" __declspec(dllimport)
#endif
 
 
        LIB void push_back(int * & arr,int & count,int & sel, int index, int num);
В самой программе вызываю метод:
C++
1
2
3
4
5
 void (*ptr)(void);//компилятор ругается на эти    строки, но я не пойму, где что писать.
    ptr = (void (*)(void)) GetProcAddress(hMod,"push_back");
 
 
ptr(arr,count,sel,ind,num);
При этом выходит ошибка:
C++
1
c:\......\mydialog.cpp(62): error C2197: void (__cdecl *)(void): слишком много аргументов для вызова
Как исправить? Зарание спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2012, 11:52
Ответы с готовыми решениями:

Явное связывание dll
"hLibrary" может быть равен "0": это не соответствует спецификации функции "GetProcAddress". ...

DLL явное связывание
Не могу передать функцию через явное связывание. Возвращает ошибку 127 - не могу понять, что я не...

Явное и не явное преобразование типов - разобраться в понятии
Это как? "явно приобразовать оъекты в объекты" а что можно не явно?

Явное и не явное преобразование типов
добрый день, я запутался в преобразовании типов и не могу понять компилятор косячит или я не...

2
52 / 52 / 2
Регистрация: 09.03.2012
Сообщений: 101
19.07.2012, 11:59 2
Надо записывать в типе ptr вместо void параметры, которые принимает эта функция:
C++
1
2
3
void (*ptr)(int * & arr,int & count,int & sel, int index, int num);
ptr = (void (*)(int * & arr,int & count,int & sel, int index, int num)) GetProcAddress(NULL,"push_back");
ptr(arr,count,sel,ind,num);
1
310 / 271 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
19.07.2012, 12:29  [ТС] 3
Спасибо большое.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2012, 12:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Явное приведение
Сверх-глупый вопрос , который меня все время мучает Вот значит пример с msdn Giraffe g = new...

Не явное преобразование
Хай всем! Вопрос почему Студия Экспресс 2010 выдаёт ошибку о неявном преобразовании int в bool в...

Явное преобразование типов
Здравствуйте. Подскажите как происходит явное преобразование типов? Например, int i=258; byte...

Явное приведение типов
Доброе время. Помогите с вопросом явного приведения. К объектам классам new Treygolnik(), new...

Явное преобразование типов
#include<iostream> using namespace std; int main() { double a = 4.6; cout << int(a * 10) %...

Явное наследование конструкторов
Если препод требует наследовать констуркторы явно что он имеет ввиду делать это только для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.