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

Ошибка при работе с dll - невозможно преобразовать параметр - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в функции http://www.cyberforum.ru/cpp-beginners/thread888513.html
#include <iostream> #include <conio.h> #include <Windows.h> #include <iomanip> using namespace std; char bufUkr; char *Ukr(const char* text) {
C++ Сделать что-бы строка бралась с файла (определить отношение количества гласных букв в предложении к согласным) Задание: Определить отношение количества гласных букв в предложении к согласным. код:#include <iostream> #include <conio.h> #include <string> #include <cctype> using namespace std; int main() { string a; http://www.cyberforum.ru/cpp-beginners/thread888498.html
C++ Зеркально поменять местами разряды младшего байта четных чисел, затем определить максимальное число в массиве и его индекс
Помогите! Очень срочно! Нужно написать программу: 2. Зеркально поменять местами разряды младшего байта четных чисел, затем определить максимальное число в массиве и его индекс Желательно с пояснениями!!))) Заранее Спасибо)
C++ Матрица из разных типов
хочу создать клас Matrix елементы обьектов которого могли бы быть разных типов. была идея создать клас Cell и определить его как шаблонный клас, но тогда и в класе матрици надо будет задавать тип, а я не знаю какой тип будет у каждой отдельной ячейки подскажите пожалуйста в какую сторону двигаться
C++ Stack around the variable 'cif' was corrupted http://www.cyberforum.ru/cpp-beginners/thread888462.html
#include <iostream> using namespace std; void main (){ char cif="1234567891111199121"; int i=0, j=0, dlin=0, razn=0, ost=0, z=0; int doprazn; dlin=strlen(cif); razn=dlin/6;
C++ Функция, возводящая в степень Помогите пожалуйста!!! Нужно было реализовать функцию возводящую дробную часть в степень k. Правильно ли я сделал???? Код: double drob::Videl() //функция выделющая дробную часть { double d1; int c1; d1=c/d; c1=c/d; d1=d1-c1; подробнее

Показать сообщение отдельно
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
03.06.2013, 10:33  [ТС]     Ошибка при работе с dll - невозможно преобразовать параметр
вот полный код проги, дело в том, что вообще не передаются данные(
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include "StdAfx.h"
#include <math.h> 
#include <string.h>
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#include <windows.h> 
using namespace std;
long double factorial(double k=0)
{
    if (k == 0) 
        return 1; 
    else
        return k * factorial(k - 1); // делаем рекурсию.
 
}
double function(double x, double eps)
{
double func=1,funct=1,k=0; 
do
{
func=funct;
k++;
funct=func+pow(x,k)/factorial(k); 
} while(abs(funct-func)>=eps); 
return func;
};
 
double epsil (double x,double fun)
{
return (sqrt(abs(exp(x)*exp(x) - fun*fun)));
};
 
 
int main(int argc, _TCHAR* argv[])
{ setlocale(LC_ALL,"Russian");
    HINSTANCE mydll = LoadLibrary (L"my_dll.dll");
    if (mydll==NULL)
    {
        cout<<"error!!!";
        return 0;
    }
    typedef double (*Func_epsil)(double, double, double);
    Func_epsil epsil_dll = (Func_epsil)GetProcAddress( mydll, "epsil" );
 
    typedef double (*Func_function_dll)(double, double);
    Func_function_dll function_dll = (Func_function_dll)GetProcAddress( mydll, "function" );
 
    typedef double (*Func_eksponent)(double);
    Func_eksponent eksponent_dll = (Func_eksponent)GetProcAddress( mydll, "eksponent" );
double eps ,fun=0, xna4, xkon, delta,x,xideal,m;
cout<<("Введите начальное Х\n");
cin>>xna4;
cout<<("Введите конечное X\n");
cin>>xkon;
cout<<("Введите шаг\n");
cin>>delta;
if (delta == 0)
{ cout<<("Неверно, введите новое значение\n");
cout<<("шаг"); 
cin>>delta;}
while (xna4>xkon && delta>0)
{ cout<<("Неверно, введите новое значение\n");
cout<<("шаг\n"); 
cin>>delta;
cout<<("x начальное\n"); 
cin>>xna4;
cout<<("x конечное\n"); 
cin>>xkon;}
while (xna4<xkon && delta<0)
{ cout<<("Неверно, введите новое значение\n");
cout<<("Введите корректное значение x начальное\n"); 
cin>>xna4;
cout<<("Введите корректное значение x конечное\n"); 
cin>>xkon;
cout<<("Введите корректное значение шага\n"); 
cin>>delta;
}
 
while(abs(xna4-xkon)<delta) {
cout<<("Введите корректное значение x начальное\n");
cin>>xna4;
cout<<("Введите корректное значение x конечное\n");
cin>>xkon;
cout<<("Введите корректное значение шаг\n");
cin>>delta; }
if (xna4==xkon) {printf ("Неверно, введите новое значение\n"); 
cout<<("Введите корректное значение x начальное\n");
cin>>xna4;
cout<<("Введите корректное значение x конечное\n");
cin>>xkon;
cout<<("Введите корректное значение шаг\n");
cin>>delta;
}
 
cout<<"Введите точность\n";
cin>>eps;
//if ((eps>0.1) (eps<0.0000001) || eps<0 || eps!=0) //1
while ((eps>1) || (eps<=0)) 
{
cout<<("Введите корректное значение точности\n");
cin>>eps;
}
cout<<"Введите Х идеальное\n ";
cin >> xideal;
printf ("----------------------------------------------------------------\n");
printf ("|     x      |  MyFunction(x) |      pi/4      |      delta     |\n");
printf ("----------------------------------------------------------------\n");
for (x=xna4; x<=xkon; x=x+delta)
{
printf("|%12.4f| %14.7f | %14.7f | %14.7f |\n",x,function_dll(x,eps),eksponent_dll,epsil(x,function(x,eps)));
printf ("----------------------------------------------------------------\n");
}
 
for (x=xna4; x>=xkon; x=x+delta)
{
printf("|%12.4f| %14.7f | %14.7f | %14.7f |\n",x,function_dll(x,eps),eksponent_dll,epsil(x,function(x,eps)));
printf ("----------------------------------------------------------------\n");
}
 
printf ("----------------------------------------------------------------\n");
printf ("|     eps    |  MyFunction(x) |      pi/4      |     delta      |\n");
printf ("----------------------------------------------------------------\n");
for (eps=0.1;eps>0.0000001;eps=eps*0.1) // 1
{
printf("|%12.7f| %14.7f | %14.7f | %14.7f |\n",eps,function_dll(xideal,eps),exp(xideal),epsil(x,function(x,eps)));
printf ("----------------------------------------------------------------\n");
}
getch();
}
my_dll
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include <math.h>
 
extern "C" __declspec(dllexport) double epsil (double x,double fun);
extern "C" __declspec(dllexport) double function(double x, double eps)
 
double epsil (double x,double fun);
long double factorial(double k=0);
double function(double x, double eps)
 
extern "C" __declspec(dllexport) double function(double x, double eps)
{
    return function(double (x), double (eps));
}
 
extern "C" __declspec(dllexport) double epsil (double x,double fun)
{
    return epsil (double (x),double (fun));
}
extern "C" __declspec(dllexport) double eksponent (double x)
{
    return exp(x);
}
 
long double factorial(double k=0)
{
    if (k == 0) 
        return 1; 
    else
        return k * factorial(k - 1); // делаем рекурсию.
 
}
 
double function(double x, double eps)
{
double func=1,funct=1,k=0; 
do
{
func=funct;
k++;
funct=func+pow(x,k)/factorial(k); 
} while(abs(funct-func)>=eps); 
return func;
};
 
double epsil (double x,double fun)
{
return (sqrt(abs(exp(x)*exp(x) - fun*fun)));
};
 
Текущее время: 11:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru