Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
3 / 3 / 0
Регистрация: 17.11.2009
Сообщений: 210

Ошибка cannot convert parameter 2 from 'void *' to 'char

13.09.2010, 14:15. Показов 3600. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Есть библиотека для фокса.
библиотека находится в файле ping.c
Понадобилось изменить кое-что.
Дописал код:
C++
1
2
  HANDLE         hEvent;
  hEvent = CreateEvent (NULL, TRUE, FALSE, 'StopThreadEvent');
Пошли ошибки компиляции:
D:Vfp8pingcomPing.c(105) : error C2275: 'HANDLE' : illegal use of this type as an expression
D:Program FilesMicrosoft Visual StudioVC98INCLUDEwinnt.h(207) : see declaration of 'HANDLE'
D:Vfp8pingcomPing.c(105) : error C2146: syntax error : missing '' before identifier 'hEvent'
D:Vfp8pingcomPing.c(105) : error C2065: 'hEvent' : undeclared identifier
Поменял имя файла на СРР
Компилиреут нормально, но ругается на строку, где я вынимаю передаваемые параметры
C++
1
_StrCpy( (char FAR *) pszMachineName,_HandToPtr(parm->p[0].val.ev_handle) );
Ругается приблизительно так:
Еrror C2664: '_StrCpy' : cannot convert parameter 2 from 'void *' to 'char
*'
Conversion from 'void*' to pointer to non-'void' requires an
explicit cast

Переменная pszMachineName объявлена как char pszMachineName[255];
Мне бы либо СРР отладить, либо С. Плииииз (
Александр
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.09.2010, 14:15
Ответы с готовыми решениями:

Ошибка: cannot convert parameter 1 from 'const char [14]' to 'LPCWSTR'
HWND hTaskBar, hButton; hTaskBar = FindWindow("Shell_TrayWnd", NULL); hButton = GetWindow(hTaskBar, GW_CHILD);Люди, скажите...

Ошибка: 'fputc' : cannot convert parameter 1 from 'char *' to 'int'
Помогите разобраться Я начинающий программист, не судите строго:- int _tmain() { char *a; a="TTTT+"; FILE *fp; ...

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

10
1 / 1 / 2
Регистрация: 05.08.2009
Сообщений: 96
13.09.2010, 16:29
А если перед _HandToPtr(...) поставить char*:
(char*)_HandToPtr(...)
0
3 / 3 / 0
Регистрация: 17.11.2009
Сообщений: 210
13.09.2010, 16:40  [ТС]
Спасибо. Этот кусок прошёл, но осталось ещё
C++
1
2
icmp_data = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, MAX_PACKET);
recvbuf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,MAX_PACKET);
Ping.cpp
D:Vfp8pingcomPing.cpp(205) : error C2440: '=' : cannot convert from 'void *' to 'char *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
D:Vfp8pingcomPing.cpp(206) : error C2440: '=' : cannot convert from 'void *' to 'char *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Александр
0
1 / 1 / 2
Регистрация: 05.08.2009
Сообщений: 96
13.09.2010, 16:43
Так же перед HeapAlloc поставить char*:
...=(char*)HeapAlloc(...)
0
3 / 3 / 0
Регистрация: 17.11.2009
Сообщений: 210
13.09.2010, 16:50  [ТС]
Спасибо.
Странно, но (char*)
помогло и тут. ((( Почему в С это проходило?
Александр
0
3 / 3 / 0
Регистрация: 17.11.2009
Сообщений: 210
13.09.2010, 16:58  [ТС]
Извини, думал, что закрыл тему.
Компилируется без ошибок, но неможит прорезолвить
Compiling...
Ping.cpp
Linking...
Creating library Release/VFPPing.lib and object Release/VFPPing.exp
winapims.lib(apimain.obj) : error LNK2001: unresolved external symbol __FoxTable

Это следующие строчки:
C++
1
2
3
4
FoxTable _FoxTable =
{
    (FoxTable FAR *)0, sizeof(myFoxInfo) / sizeof(FoxInfo), myFoxInfo
};
Описание
C++
1
#include <pro_ext.h>
Александр
0
1 / 1 / 2
Регистрация: 05.08.2009
Сообщений: 96
13.09.2010, 16:59
Скорее всего его компилятор.
А в С, когда char* присваиваеться
void* хотябы warning(s) есть?
0
1 / 1 / 2
Регистрация: 05.08.2009
Сообщений: 96
13.09.2010, 17:16
Поповоду ошибки __FoxTable

Скорее всего необходимо добавить ???.lib.
Вот какую конкретно подсказать не могу.У меня фокс не установлен
0
3 / 3 / 0
Регистрация: 17.11.2009
Сообщений: 210
13.09.2010, 17:17  [ТС]
Было всё нормально. Это рабочий проект.
Я в сях не очень. Так себе.
Выдрал с мелкософта сырцы пинга и приспособил для библиотеки.
Работает уже года два. Решил усовершенствовать, перевести сокет в неблокирующий режим. (много направлений, а таймауты не отрабатываются). Вот и решил сам их обрабатывать.
И сразу возникли проблемы.
Вот выдержка из хелпа по этому поводу:
Ха-ха-ха-ха ))))))))))))))))
Перечитал хелп и нашёл решение. Я просто не обращал внимание на это. А там есть примерчик.
Для С++
выглядит так:
C++
1
2
3
4
5
extern 'C' {
   FoxTable _FoxTable = {
      (FoxTable *)0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
   };
}
СПАСИИИББООООООО!

_Foxtable. Может поможет ((
Because an FLL library is essentially a DLL with calls to the Visual FoxPro API, you create an FLL library by following the steps in your development environment for creating a DLL.

To create a project for the FLL library

Start Microsoft Visual C/C++.
From the File menu, choose New.
In the New dialog box, choose Project Workspace.
In the New Project Workspace dialog box, specify a project name.
In the Type list, choose Dynamic-Link Library.
After creating the basic DLL structure, you add the functions you want to be able to call from Visual FoxPro. The following sections provide skeletons for creating functions in both C and C++.

Setting Up a Library Template
Each function library that you create has the same basic structure. By using a template for the structure, all you have to do is fill in the blanks that apply to your specific library routine.

There are five elements in a Visual FoxPro library template:

#include statement
Function definition
Function code
FoxInfo structure
FoxTable structure
A Sample C Template
You can use the following template to create libraries written in C:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <Pro_ext.h>
 
void Internal_Name(ParamBlk *parm)
{
// function code goes here.
}
 
FoxInfo myFoxInfo[] = {
   {'FUNC_NAME', (FPFI) Internal_Name, 0, ''},
};
 
FoxTable _FoxTable = {
   (FoxTable *)0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
A Sample C++ Template
For C++ routines, you can use the following template. This template differs from the C template because it declares the FoxTable structure as external:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Pro_ext.h>
 
void Internal_Name(ParamBlk  *parm)
{
// function code goes here.
}
 
   FoxInfo myFoxInfo[] = {
      {'FUNC_NAME', (FPFI) Internal_Name, 0, ''},
   };
 
extern 'C' {
   FoxTable _FoxTable = {
      (FoxTable *)0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
   };
}
Using the Template
To use the header file and create a compiled library, you need:

The header file Pro_ext.h. You can print this file to see the function declarations, typedefs, and structs used in the Visual FoxPro API.
The file Winapims.lib.
Both of these files are installed in the API subdirectory when you install Visual FoxPro.

The function definition returns void and expects the following parameter: ParamBlk *parm. The ParamBlk structure is discussed under Passing and Reception of Parameters.

Other than the files listed above, the only other required elements of a Visual FoxPro library are the FoxInfo and FoxTable structures.

Using FoxInfo and FoxTable Structures
Your library functions communicate with Visual FoxPro through the FoxInfo structure. From this structure, Visual FoxPro determines the function name and the number and type of parameters. The FoxTable structure is a linked list that keeps track of the FoxInfo structures. See Pro_ext.h in the Visual FoxPro
0
1 / 1 / 2
Регистрация: 05.08.2009
Сообщений: 96
13.09.2010, 18:08
Так что откомпилилась прого,али нет?
0
3 / 3 / 0
Регистрация: 17.11.2009
Сообщений: 210
13.09.2010, 18:42  [ТС]
Естественно да.
Ещё раз спасибо.
Нужна помощь по фоксу, плиз в форум ниже, помогу. ))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.09.2010, 18:42
Помогаю со студенческими работами здесь

Cannot convert parameter 1 from 'const char [48]' to 'LPCTSTR'
Кто может помочь в решении следующего вопроса. Недавно начал изучать программирование на С++ в Visual Studio и сразу столкнулся с...

Cannot convert parameter 1 from 'char' to 'char []'
#include &lt;iostream&gt; using namespace std; const int MAX=20; class base { public: virtual char sry(char str, char s)=0; }; ...

Error C2664: 'sprintf' : cannot convert parameter 2 from 'float' to 'const char *'
Читаю в Интернете пишут о том что нужно явное преобразование типов, подскажите, пжл, как его произвести. PS: если оно тут...

Исправить ошибку cannot convert parameter 1 from 'const char [15]' to 'LPCWSTR' (CopyFile)
Народ, помогите, не могу разобраться с &quot;CopyFile(LPCTSTR fromName, LPCTSTR toName, BOOL failIfExists);&quot;. Вопрос таков: почему при...

Ошибка cannot convert from type void*(classname::) () to type void*(*)(void*)
Подскажите пожалуйста как избавиться от ошибки? Есть ещё какой-либо способ, кроме как объявить thread_func как static? Можно конечно...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru