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

DLL, ошибка Cannot convert 'char *' to 'char' - C++ Builder

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

подключал dll по примеру http://www.cyberforum.ru/cpp-builder/thread154847.html
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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос DLL, ошибка Cannot convert 'char *' to 'char' (C++ Builder):

Ошибка - Cannot convert 'wchar_t *' to 'const char *'
В событии компонента TStringGrid OnDrawCell перерисовываю ячейки. Текст вывожу так: DrawText(Canvas->Handle, Cells.t_str(),...

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

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

Ошибка cannon convert 'AnsiString' to 'char'
Помогите. пожалуйста. Пишу программу, нужно записать название команды и ее баллы в массив, в коде Form1->mas.name=(Edit1->Text); ...

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

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

18
Avazart
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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
Супер-модератор
Эксперт С++
5765 / 2763 / 374
Регистрация: 01.11.2011
Сообщений: 6,717
Завершенные тесты: 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
Эксперт С++
7683 / 5592 / 543
Регистрация: 10.12.2010
Сообщений: 25,073
Записей в блоге: 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[8]' to 'const wchar_t *'
Прошу прощения за свой вопрос, но я никак не пойму где ошибка? использую c++ builder 10 (если это как то связано) выдает следующие...

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

Error: Cannot convert 'wchar_t *' to 'char *'
Не могу понять как исправить, другие темы читал, в Borland 6 работает, а в Embarcadero XE3 нет. void __fastcall...

Cannot convert 'unsigned char *' to 'UnicodeString'
Добрый день. Есть кодUCHAR *sstr1=0; SG1->Cells = ReverseString(sstr1); пишет ошибку E2034 Cannot convert 'unsigned char *' to...


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

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

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