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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
#1

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

02.06.2013, 20:45. Просмотров 566. Ответов 7
Метки нет (Все метки)

пишу прогу, функции передаются с dll, выдает ошибку в строке
C++
1
HINSTANCE mydll = LoadLibrary ("my_dll.dll");
error C2664: LoadLibraryW: невозможно преобразовать параметр 1 из "const char [11]" в "LPCWSTR"
почему ругается?( в 1 раз с dll работаю(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 20:45     Ошибка при работе с dll - невозможно преобразовать параметр
Посмотрите здесь:

невозможно преобразовать параметр - C++
Добрый день. Имеется такой код для поиска и замены в РичТекстБокс: private: System::Void button5_Click(System::Object^ sender,...

Невозможно преобразовать параметр - C++
Пишу сканер. Пока консольный, потом планирую перевести на форму. Все практически готово. Загвоздка только в следующем. Никак не...

error C2664:невозможно преобразовать параметр - C++
/*************************************************** * Программа: Квадратный трехчлен * * Лаб. работа: 5 ...

error C2664:невозможно преобразовать параметр - C++
#include "stdafx.h" #include <iostream> using namespace std; #include <cstring> #define q 250 struct sanat{ string Name; ...

error C2664: невозможно преобразовать параметр - C++
Здравствуйте. Отправьте меня если что в другую тему, где это обсуждалось, но я не понимаю, в чем собственно дело void grouping(int n,...

fscanf: невозможно преобразовать параметр 1 из 'char [40]' в 'FILE *' - C++
Организовываю файл данных со структурой, и выдает такую ошибку еrror C2664: fscanf: невозможно преобразовать параметр 1 из 'char ' в 'FILE...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.06.2013, 21:43     Ошибка при работе с dll - невозможно преобразовать параметр #2
Попробуйте так:
C++
1
HINSTANCE mydll = LoadLibrary (L"my_dll.dll");
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
02.06.2013, 21:52  [ТС]     Ошибка при работе с dll - невозможно преобразовать параметр #3
alsav22, если нетрудно, поясните пожалуйста что значит L?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.06.2013, 22:14     Ошибка при работе с dll - невозможно преобразовать параметр #4
Цитата Сообщение от andyoO Посмотреть сообщение
alsav22, если нетрудно, поясните пожалуйста что значит L?
Что дальше текст из расширенных символов (wchar_t)
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
03.06.2013, 09:34  [ТС]     Ошибка при работе с dll - невозможно преобразовать параметр #5
alsav22, но мне нужно передать с dll значения функции double(
Игорь с++
433 / 456 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
03.06.2013, 10:21     Ошибка при работе с dll - невозможно преобразовать параметр #6
Цитата Сообщение от andyoO Посмотреть сообщение
но мне нужно передать с dll значения функции double(
и что ? чем вам помешает вот это -
Цитата Сообщение от alsav22 Посмотреть сообщение
Что дальше текст из расширенных символов (wchar_t)
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
03.06.2013, 10:33  [ТС]     Ошибка при работе с dll - невозможно преобразовать параметр #7
вот полный код проги, дело в том, что вообще не передаются данные(
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)));
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 13:36     Ошибка при работе с dll - невозможно преобразовать параметр
Еще ссылки по теме:

Невозможно преобразовать параметр 1 из 'const char [15]' в 'LPCWSTR' - C++
с сайта скачала прогу которая должна рисовать сферу, но при компилировании выходит ошибка:error C2664: auxInitWindowW: невозможно...

Fopen: невозможно преобразовать параметр 1 из 'LPWSTR' в 'const char *' - C++
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include&lt;cstdio&gt; #include&lt;io.h&gt; int APIENTRY WinMain(HINSTANCE hInst,HINSTANCE...

error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' - C++
Помогите поправить код, а то выдаёт ошибки #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; void...

Невозможно преобразовать параметр 1 из 'char' в 'const char *' - C++
Дана задача: Задана последовательность, состоящая только из символов ‘&gt;’, ‘&lt;’ и ‘-‘. Требуется найти количество стрел, которые спрятаны...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.06.2013, 13:36     Ошибка при работе с dll - невозможно преобразовать параметр #8
Ответ был на этот вопрос:
Цитата Сообщение от andyoO Посмотреть сообщение
пишу прогу, функции передаются с dll, выдает ошибку в строке
C++
1
HINSTANCE mydll = LoadLibrary ("my_dll.dll");
error C2664: LoadLibraryW: невозможно преобразовать параметр 1 из "const char [11]" в "LPCWSTR"
почему ругается?( в 1 раз с dll работаю(
вот полный код проги, дело в том, что вообще не передаются данные(
Это уже другая тема.
Yandex
Объявления
03.06.2013, 13:36     Ошибка при работе с dll - невозможно преобразовать параметр
Ответ Создать тему
Опции темы

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