Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
1

DLL, ошибка Cannot convert 'char *' to 'char'

13.11.2012, 08:41. Просмотров 1630. Ответов 18
Метки нет (Все метки)

подключал dll по примеру Dynamic-Link Library: Теория + Практика
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// определяем тип "указатель на функцию"
typedef void __cdecl (*dll_func)(const char lpszHost, unsigned short ObjectNumber, unsigned short NofObject, float Buffer);
 
dll_func getFloatValues = NULL;
 
HMODULE hDLL = LoadLibrary("MPUBComm.dll");
if (!hDLL) {
  ShowMessage("Невозможно загрузить MPUBComm.dll");
  return;
}
 
// пытаемся найти в таблице экспорта необходимую нам функцию
getFloatValues = (dll_func)GetProcAddress(hDLL, "_getFloatValues"); // обратите название на название функции (объяснение будет ниже)
 
if (!getFloatValues) {
  ShowMessage("Невозможно найти функцию getFloatValues");
  return;
}
 
getFloatValues(SERVERADDR,OID1,1,WorkBuffer[0]);
Edit4->Text = FloatToStrF(WorkBuffer[0],ffFixed,5,3);
FreeLibrary(hDLL);
переменная SERVERADDR будет ip-адрес (123.22.42.1)
объявляю const char SERVERADDR = "123.22.42.1";
пишет [C++ Error] MainUnit.cpp(21): E2034 Cannot convert 'char *' to 'char', скажите как правильно определить эту переменную????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 08:41
Ответы с готовыми решениями:

Ошибка - Cannot convert 'wchar_t *' to 'const char *'
В событии компонента TStringGrid OnDrawCell перерисовываю ячейки. Текст вывожу...

Ошибка Cannot convert 'const char *' to 'void *'
Всем привет! Нужна помощь новичку. Пытаюсь в С++ Builder 2009 создать...

Ошибка E2034 Cannot convert 'wchar_t *' to 'char *'
Ошибка при компиляции (bcc32error) смотреть скриншот Установлена последняя...

Ошибка cannon convert 'AnsiString' to 'char'
Помогите. пожалуйста. Пишу программу, нужно записать название команды и ее...

Cannot convert 'void (_fastcall * (_closure )(TObject *,char &))(TObject *,char &)' to 'TKeyPressEvent'
доброго времени суток. роект был создан в builder 2007, а при попытке его...

18
Avazart
Эксперт С++
7722 / 5631 / 549
Регистрация: 10.12.2010
Сообщений: 25,401
Записей в блоге: 17
13.11.2012, 09:02 2
C++
1
Edit4->Text = FloatToStrF(WorkBuffer[0],ffFixed,5,3);
Что такое WorkBuffer ?

И наверное :
Добавлено через 1 минуту
C++
1
const char SERVERADDR[] = "123.22.42.1";
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 09:07  [ТС] 3
туда функция пишет результат работы.

Добавлено через 5 минут
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
Edit4->Text = FloatToStrF(WorkBuffer[0],ffFixed,5,3);
Что такое WorkBuffer ?

И наверное :
Добавлено через 1 минуту
C++
1
const char SERVERADDR[] = "123.22.42.1";
[C++ Error] MainUnit.cpp(339): E2034 Cannot convert 'const char *' to 'char'
[C++ Error] MainUnit.cpp(339): E2342 Type mismatch in parameter 'lpszHost' (wanted 'const char', got 'const char *')
0
Avazart
Эксперт С++
7722 / 5631 / 549
Регистрация: 10.12.2010
Сообщений: 25,401
Записей в блоге: 17
13.11.2012, 09:11 4
Type mismatch in parameter 'lpszHost' (wanted 'const char', got 'const char *')
Покажите объявление OID1 и WorkBuffer
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 09:17  [ТС] 5
Цитата Сообщение от Avazart Посмотреть сообщение
Покажите объявление OID1 и WorkBuffer
unsigned int OID1;
WorkBuffer= new float[50];
0
Avazart
Эксперт С++
7722 / 5631 / 549
Регистрация: 10.12.2010
Сообщений: 25,401
Записей в блоге: 17
13.11.2012, 09:19 6
C++
1
WorkBuffer= new float[50];
Это что?
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 09:20  [ТС] 7
что именно?
0
Avazart
Эксперт С++
7722 / 5631 / 549
Регистрация: 10.12.2010
Сообщений: 25,401
Записей в блоге: 17
13.11.2012, 09:26 8
E2034 Cannot convert 'char *' to 'char', скажите как правильно определить эту переменную????
E2342 Type mismatch in parameter 'lpszHost' (wanted 'const char', got 'const char *')
Ну тут явно сказано что суёшь ей char*, а она хочит char - тобиш один символ...
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 09:35  [ТС] 9
тогда перефразирую вопрос
const char lpszHost - указывает хост для подключения, как мне передать туда нужный ip из хоста???
0
Avazart
Эксперт С++
7722 / 5631 / 549
Регистрация: 10.12.2010
Сообщений: 25,401
Записей в блоге: 17
13.11.2012, 09:42 10
Никак, это же один символ !
0
LK
Заблокирован
13.11.2012, 09:46 11
C++
1
2
AnsiString str = "32132132";
...,str.c_str();
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 09:56  [ТС] 12
все эту проблему победил,компилирует все.
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
13.11.2012, 10:00 13
Цитата Сообщение от builderf Посмотреть сообщение
const char lpszHost
Что-то у меня сомнения про const char, в названии явно используются lps... = long pointer to string
Где-то вы сами себя обманули
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 10:38  [ТС] 14
еще такой вопрос: как посмотреть весь список функций в dll???
0
SatanaXIII
Супер-модератор
Эксперт С++
5773 / 2772 / 376
Регистрация: 01.11.2011
Сообщений: 6,744
Завершенные тесты: 1
13.11.2012, 10:52 15
Цитата Сообщение от builderf Посмотреть сообщение
как посмотреть весь список функций в dll???
Можно нортоном. Но это долго ковыряться и извращение. Зато им можно поглядеть названия и параметры функций.
0
LK
Заблокирован
13.11.2012, 10:53 16
impdef, кажись
0
builderf
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 33
13.11.2012, 11:00  [ТС] 17
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Можно нортоном. Но это долго ковыряться и извращение. Зато им можно поглядеть названия и параметры функций.
а подробнее, что за нортон?
0
LK
Заблокирован
13.11.2012, 11:06 18
builderf, подробнее - в новой теме, правила: одна тема - один вопрос. Если начнете обсуждать нортона, тема будет закрыта.
0
Avazart
Эксперт С++
7722 / 5631 / 549
Регистрация: 10.12.2010
Сообщений: 25,401
Записей в блоге: 17
13.11.2012, 19:47 19
Для просмотра обычно Builder используют консольное приложение tdump.exe
Код
tdump x.dll > tdump.txt
и в tdump.txt объявления, но там не увидишь какие параметры передаются

Добавлено через 1 минуту
Цитата Сообщение от mimicria Посмотреть сообщение
Что-то у меня сомнения про const char, в названии явно используются lps... = long pointer to string
Где-то вы сами себя обманули
Возможно здесь ?
C++
1
2
3
4
5
typedef void __cdecl (*dll_func)
     (const char lpszHost, /* может const char* lpszHost  ??? */
      unsigned short ObjectNumber,
      unsigned short NofObject,
      float Buffer);
0
13.11.2012, 19:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 19:47

Ошибка: E2034 Cannot convert 'char const[51]' to 'const wchar_t *
Пытаюсь добавить в memo1 название файлов располагающихся в каталоге, в Console...

Ошибка E2034: Cannot convert 'char const[8]' to 'const wchar_t *'
Прошу прощения за свой вопрос, но я никак не пойму где ошибка? использую c++...

ошибка "Cannot convert 'char' to 'wchar_t *' "
Здравствуйте. Подскажите, пожалуйста, как избавиться от ошибки Cannot convert...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

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