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

Подключение Dll библиотеки, вылетает программа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Матрицы http://www.cyberforum.ru/cpp-beginners/thread650454.html
Заполнить двумерный массив следующим образом: (см.карт.)
C++ Что дальше? Здравствуйте.Я давно уже изучаю С++,изучил уже ООП,STL и т.д. все что касается консольных приложений.Что делать дальше?Хочу научится создавать полноценные приложения,работающие с графическим... http://www.cyberforum.ru/cpp-beginners/thread650429.html
Создание динамической матрицы C++
никак не могу понять в чем ошибка #include <stdio.h> void matrix(int n) { int** arr = new int*; for(int i = 0; i<n;i++) { arr = new int ;
операции для работы с битами C++
Есть ли в Visual C++ операторы выполняющие операции для работы с битами(сдвиг влево, сдвиг вправо, поразрядная инверсия, поразрядное ИЛИ, поразрядное И, поразрядное исключающее ИЛИ) или надо как-то...
C++ Абстрактные классы http://www.cyberforum.ru/cpp-beginners/thread650416.html
В общем есть у нас 2 абстрактных класса CA и CB и 2 дочерних от них класса CC и CD. Как сделать так чтобы CD наследовал CB поверх которого должен быть CC? #include <iostream> class CA abstract {...
C++ cin получил char вместо double и while зациклился. Почему? Привет! Решил задачу из книги Шилдта. "Годы Юпитера в Земные" Захотел проверить, что произойдет, если пользователь ошибется и вместо значения года введет символ. В итоге цикл while() бесконечно... подробнее

Показать сообщение отдельно
yulia_yulia
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 46

Подключение Dll библиотеки, вылетает программа - C++

11.09.2012, 23:22. Просмотров 868. Ответов 4
Метки (Все метки)

Добрый вечер!Помогите пожалуйста разобраться в чем проблема.. Задача: из библиотеки winmm.dll вызвать фукцию PlaySound()(это работает), после воспроизведение должна выводится сума двух чисел, функция суммы должна находится в созданной dll библиотеке, и вызываться с главного консольного проекта(компоновка явная).
Текст программы:
библиотека:
bibl.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <windows.h>
#include <tchar.h>
#include <vector>
#include <string>
using namespace std;
namespace MathFuncs
{
    class MyMathFunc
    {
    public:
        static __declspec(dllexport) int Summa(int a,int b);
};
}
bibl.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "bibl.h"
 
#include <stdexcept>
 
using namespace std;
 
namespace MathFuncs
{
    int Summa(int a, int b)
    {
        return a + b;
    }
 
    
}
консольный проект kk. cpp

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
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <windows.h>
 #include <mmsystem.h>
int main()
{ // Дескриптор загружаемой dll
  HINSTANCE h;
 
h=LoadLibrary("winmm.dll");
// Объявление указателя на функцию, вызываемой из DLL
typedef int (__stdcall *DllFunk) (LPCTSTR a ,HMODULE b,DWORD c );
DllFunk dllptr;
dllptr=(DllFunk)GetProcAddress(h,"PlaySound");
dllptr("deodorant-spray-1.wav", NULL, SND_FILENAME |SND_SYNC);
FreeLibrary(h);
 
 
// Дескриптор загружаемой dll
HINSTANCE h1;
h1=LoadLibrary("bibl.dll");
// Объявление указателя на функцию суммы
typedef int (__stdcall *DllSum) (int a, int b);
DllSum sum_ptr;
sum_ptr=(DllSum)GetProcAddress(h1,"Summa");
 
int t;
 int a=1;
int b=2;
t=sum_ptr(a,b);
 printf ("%s", "Summa a+b = ");
 printf ("%d \n",t);
 char с =getchar();
FreeLibrary(h1);
}
пробовал подключать def файл, с текством Export Summa

программа вылетает на строчке t=sum_ptr(a,b); как я понимаю. почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru