Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2011, 00:57   #1
raast777
 
Регистрация: 21.07.2011
Сообщений: 4
Восклицание Проблема с переопределением типа void

Здравствуйте! Столкнулся с ошибкой
...\lib\guardant\include\grdapi.h(2 5) : warning C4518: 'void ' : storage-class or type specifier(s) unexpected here; ignored
...\lib\guardant\include\grdapi.h(2 5) : error C2059: syntax error : ';'
db.cpp


Код:
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(_WIN64)
typedef int                 BOOL;
typedef unsigned char       BYTE;
typedef unsigned short      WORD;
typedef unsigned long       DWORD;
typedef unsigned __int64    QWORD;
typedef void               *HANDLE; // здесь
#else
При включении в свой проект объектника GrdFWMC.obj, grdapi.h, grddongle.cpp и grddongle.h, которые входят в библиотеку Guardant KEY API по безопасности на основании примера
..\Samples\x86\Win32\General Guardant API\Microsoft Visual C++

Программирую под Visual Studio C++ 6.0

В чем может быть загвоздка??
Помогите, кто сможет, пожалуйста
raast777 вне форума Ответить с цитированием
Старый 22.07.2011, 13:10   #2
raast777
 
Регистрация: 21.07.2011
Сообщений: 4
По умолчанию

Кто-нибудь может помочь
raast777 вне форума Ответить с цитированием
Старый 22.07.2011, 13:20   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2raast777
возможно, HANDLE у тебя уже является каким-то синонимом
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 22.07.2011, 13:28   #4
raast777
 
Регистрация: 21.07.2011
Сообщений: 4
По умолчанию

Да, точно

Код:
#ifndef _CORE_H
#define _CORE_H

#pragma warning(disable: 4786)

#include <vector>
#include <string>
#include <list> 

#ifndef HANDLE
#ifdef WIN32
#define HANDLE void*
#else
#define HANDLE pthread_t
#endif // WIN32
#endif // HANDLE
Как тогда обойти??
Убрать свое определение HANDLE, заменить на void* в зависимости конечно от платформы

Может быть поможет, если я свой код чем-то отделить, например, namespace ???

Последний раз редактировалось raast777; 22.07.2011 в 13:34. Причина: Изменения
raast777 вне форума Ответить с цитированием
Старый 22.07.2011, 13:35   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Код:
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(_WIN64)
typedef int                 BOOL;
typedef unsigned char       BYTE;
typedef unsigned short      WORD;
typedef unsigned long       DWORD;
typedef unsigned __int64    QWORD;

#ifndef HANDLE
typedef void               *HANDLE; // здесь
#endif
#else
или

Код:
#undef HANDLE
typedef void *HANDLE;
вообще одинаковые имена с typedef и define мешать нехорошо

пс. я попаду пальцем в небо, если скажу, что core.h - твой файл, а не библиотечный?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 22.07.2011 в 13:41.
pproger вне форума Ответить с цитированием
Старый 22.07.2011, 13:47   #6
raast777
 
Регистрация: 21.07.2011
Сообщений: 4
Подмигивание

Спасибо большое, что помогли мне!

За комментировал старое определение HANDLE
И везде заменил на необходимое значение в своих исходниках core.h и core.cpp
raast777 вне форума Ответить с цитированием
Старый 22.07.2011, 14:00   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2raast777
вообще всегда нужно использовать typedef для определения синонимов типов. с дефайнами будешь ловить лулзы

Код:
#define HANDLE void *

HANDLE h1, h2;
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с переопределением оператора << для своего класса DKOI Общие вопросы C/C++ 1 16.11.2010 00:40
Проблема с функциями(передача масива в функцию типа int) sekator Общие вопросы C/C++ 4 27.07.2010 22:13
Проблема с автоматическим преобразованием типа данных в Excel kovalevskivf Microsoft Office Excel 0 20.05.2010 01:25
С++.Чтение из файла - проблема с массивом типа char. AgIon Общие вопросы C/C++ 4 07.12.2009 00:39
Переопределением обработчика события при создании MDIChild 8alig8 Общие вопросы Delphi 1 18.06.2009 18:03