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

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

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

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

02.06.2013, 20:45. Просмотров 590. Ответов 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++):

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

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

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

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

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

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

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

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

Невозможно преобразовать параметр из int в const char - C++
Приветствую, помогите пожалуйста исправить следующую ошибку: printf: невозможно преобразовать параметр 1 из &quot;int&quot; в &quot;const char *&quot; Хотя...

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...

Ошибка 6 error C2664: strtok: невозможно преобразовать параметр 1 из "const char *" в "char *" - C++
string s = &quot;555 44 55 66&quot;;//размер строки заранее неизвестен char* p = strtok(s.c_str(), ' '); не нравится такое...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.06.2013, 13:36
Ответ Создать тему
Опции темы

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