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

Динамическая загрузка библиотеки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Добавить элемент в set http://www.cyberforum.ru/cpp-beginners/thread597239.html
компиляция нижеприведенного кода приводит к ошибке: error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const TKeyInfo'... #include "stdafx.h" #include <string> #include <set> using namespace std; typedef struct {
C++ Определить, содержит ли string заданный символ дана строка и определенный символ! нужно определить содержат ли слова данной строки заданный символ!слово-последовотельность символов между пробелами! http://www.cyberforum.ru/cpp-beginners/thread597208.html
C++ Используя структуру с полями пол, ФИО, возраст, распечатать количество парней , фамилии которых начинаются на "Д" и призывного возраста...
Используя структуру с полями пол, ФИО, возраст, распечатать количество парней , фамилии которых начинаются на "Д" и призывного возраста.... #include <iostream> #include <string> using namespace std; struct Prizivnik // struktura Prizivnik { string name; int male; int vozrast;
В целочисленном массиве найти число чередований знака, то есть число переходов с минуса на плюс или с плюса на минус. C++
В целочисленном массиве найти число чередований знака, то есть число переходов с минуса на плюс или с плюса на минус. Например, в последовательности 0, -2, 0, -10, 2, -1, 0, 0, 3, 2, -3 четыре чередова¬ния (как известно, нуль не имеет знака).
C++ Проверка орфографии http://www.cyberforum.ru/cpp-beginners/thread597192.html
Подскажите алгоритм проверки орфографии, при котором введеное слово сравнивается со списком слов в текстовом редакторе. Плюс присутствует замена букв и их положения в слове (при замене).
C++ Используя все цифры от 1 до 9 по одному разу в различных комбинациях и операции сложения и вычитания, получить в сумме 100, при условии, что цифры поя Используя все цифры от 1 до 9 по одному разу в различных комбинациях и операции сложения и вычитания, получить в сумме 100, при условии, что цифры появляются в убывающем порядке. Например, 123-45-67+89=100, подробнее

Показать сообщение отдельно
Serg046
21 / 21 / 2
Регистрация: 07.01.2010
Сообщений: 376
06.06.2012, 01:12     Динамическая загрузка библиотеки
lab2.dll
C++
1
2
3
4
5
6
7
#include <windows.h>
#include <math.h>
 
extern "C"  __declspec(dllexport) double MyFunc(double X, double Y)
{
    return -log(fabs(X * X / (Y - 1))) / log(2.0);
}
Загружаю ее статически, кинув длл и либ в проект
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
 
#pragma comment(lib, "lab2.lib") 
extern "C" _declspec(dllexport) double MyFunc( double X, double Y);
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    double X, Y;
    cout << "Введите X: ";
    cin >> X;
    cout << "Введите Y: ";
    cin >> Y;
    cout << "Результат = " << MyFunc(X, Y) << endl;
    system("pause");
    return 0;
}
Все отлично, но (кинув в проект длл) загружая динамически выскакивают какие-то исключения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <Windows.h>
using namespace std;
 
int main(int argc, CHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    double X, Y;
    cout << "Введите X: ";
    cin >> X;
    cout << "Введите Y: ";
    cin >> Y;
    HINSTANCE hDllInstance = LoadLibraryEx(L"lab2.dll", 0, DONT_RESOLVE_DLL_REFERENCES );
    typedef double(*functionDll)( double, double );
    functionDll myFunc = (functionDll)GetProcAddress(hDllInstance, "MyFunc");
    cout << "Результат = " << myFunc(X, Y) << endl;
    FreeLibrary(hDllInstance);
    system("pause");
    return 0;
}
Что не так то?

Добавлено через 6 часов 44 минуты
Есть у кого готовый проект? Желательно vс++

Добавлено через 13 минут
Кстати все отлично работает если моя dll будет такой
C++
1
2
3
4
5
6
7
#include <windows.h>
#include <math.h>
 
extern "C"  __declspec(dllexport) double MyFunc(double X, double Y)
{
    return 5;
}
Ощущение что не отрабатывают math.h функции, тогда почему при статически поключенной длл все норм
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru