Форум программистов, компьютерный форум CyberForum.ru

Не могу вызвать функцию из .dll - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Где находится error()? http://www.cyberforum.ru/cpp-beginners/thread926746.html
Учусь по книге Страуструпа. Я знаю что много чего есть в его заголовочном файле std_lib_facilities.h , но я решил его не использовать. Кто может подсказать где описана функция error() ?
Visual C++ Как вставить ролик на форму? Здравствуйте , хотел бы задать вопрос касающийся игр. Мы с другом решили написать 2d игру и тут возникли два вопроса. (Среда Visual studio 2010, язык C++ с .net) 1. Как в нужный момент удалить кнопку? 2. Как вставить разные фото и самое главное видео ролики в нужный момент? 3. Как вставлять звуки? http://www.cyberforum.ru/cpp-beginners/thread926743.html
Использовать void из 1.cpp в 2.cpp C++
Допустим, есть функция void Hello(). Она в файле 1.cpp. Мне нужно её использовать в файле 2.cpp, но программа пишет, что идентификатор не определён. Я попробовал в начале 2.cpp написать #include "1.cpp" но после этого стало писать много ошибок error LNK2005. Что делать?
Оператор индексации и присваивания для шаблонного класса Vector C++ C++
Было задание разработать шаблонный класс Vector и к нему перегрузить оператор таким боразом, чтобы он "должен позволять как получить значение элемента так и изменить его. Получение значения должно успешно работать для константных объектов". Просто индексацию я сделал, а вот как реализовать его вместе с присваиванием расчехлить не могу. Помогите неудачнику p.s функции set и get остались от...
C++ Вылетает консольное приложение http://www.cyberforum.ru/cpp-beginners/thread926723.html
При написании любой даже самой простой задачи или программы, а также в дальнейшем запуске консольное приложение(командная строка, программа и т.д.) просто включается/вылетает спустя 1сек.! сам .exe создается, а при нажатии "Debug (F5)" происходит нижеизложенная ошибка: Может в коде ошибка, хотя я пробовал разные! К примеру этот простейший он тоже принимает за ошибку #include <iostream> using...
C++ Работа с Итераторами Здравствуйте, у меня возникла следующая проблема. У меня есть list<pair<int, int> > snake; Мне надо, чтобы следующий элемент списка принимал значение нынешнего. Может кто-то пожалуйста написать цикл с использованием итераторов. ( Получается что, значение первого элемента списка не изменяется, а все последующие элементы принимают значения элементов перед ними. ) подробнее

Показать сообщение отдельно
NativeLand
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 46
22.07.2013, 00:33     Не могу вызвать функцию из .dll
Добрый день ... Полазил по форумам и гайдам ....
Пишу такой вот header:
C++
1
2
extern "C++" __declspec(dllexport) int function (int,int);
extern "C++" __declspec(dllexport) double function2(double,double);
Далее непосредственно сам .cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
#include "mbdll.h"
 
int function(int a, int b)
{
    return a*b;
}
 
double function2(double a,double b)
{
    return a/b;
}
И потом .def файлик:
C++
1
2
3
4
LIBRARY
EXPORTS
function = ?function@@YAHHH@Z PRIVATE
function2 = ?function2@@YANNN@Z PRIVATE

Теперь сам проект из которого явным способом пытаюсь вызвать функции (.dll добавил в проект через Shift+Alt+A):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include "windows.h"
#include <iostream>
 
int _tmain(int argc, _TCHAR* argv[])
{
    typedef int (*Add1)(int a, int b);
    typedef double (*Add2)(double a, double b);
 
    HMODULE hmod = LoadLibrary((LPCWSTR)"mbdll.dll");
    
    Add1 fun1= (Add1) GetProcAddress(hmod, "function");
    Add2 fun2= (Add2) GetProcAddress(hmod, "function2");
    if (fun1 || fun2)
    {
        std::cout<<fun1(3,3)<<std::endl;
        std::cout<<fun2(3,3)<<std::endl;
    }
    else
        std::cout<<"Cannot get function address\n";
 
    FreeLibrary( hmod );
    system("PAUSE");
    return 0;
}
И мне выдает "Cannot get function address" ... Если просто вызываю без if функции .. компилит но вылетает ошибка при выполнении исходника ...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru