On-line: Dr. Oldwarez, PSP, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 73
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 11.11.11 11:58. Заголовок: Mingw


Mingw выдает следующие ошибки :


../../../function/bpaint.c: In function 'HB_FUN_SBTNPAINT':
../../../function/bpaint.c:48:12: warning: type of 'PARAMS' defaults to 'int'
../../../function/bpaint.c:51:4: warning: implicit declaration of function 'Hb_parnl'
../../../function/bpaint.c:53:4: warning: implicit declaration of function 'Hb_parl'
../../../function/bpaint.c:55:4: warning: implicit declaration of function 'Hb_parc'
../../../function/bpaint.c:55:25: warning: initialization makes pointer from integer without a cast
../../../function/bpaint.c:56:4: warning: implicit declaration of function 'Hb_parni'
../../../function/bpaint.c:76:56: warning: signed and unsigned type in conditional expression
../../../function/bpaint.c:77:56: warning: signed and unsigned type in conditional expression
../../../function/bpaint.c:102:30: warning: unused variable 'hMask'
../../../function/bpaint.c:102:21: warning: unused variable 'hBmOld2'
../../../function/bpaint.c:101:11: warning: unused variable 'lpBits'
../../../function/bpaint.c:100:10: warning: unused variable 'pt'
../../../function/bpaint.c:97:21: warning: unused variable 'nDC'
../../../function/bpaint.c:97:16: warning: unused variable 'mDC'
../../../function/bpaint.c:90:15: warning: unused variable 'bs'
../../../function/bpaint.c:87:13: warning: unused variable 'lb'
../../../function/bpaint.c:48:12: warning: unused parameter 'PARAMS'

и т.д.
Текст имеет вид :

#include <WinTen.h> /* set your own path if needed */
#include <Windows.h>
#include <HbApi.h> /* set your own path if needed */
#include <StdLib.h>
#define NOTSRCAND 0x220326
#define S_LNUM 0x0002
#define S_DNUM 0x0008
#define S_LOG 0x0080
#define S_CHAR 0x0400
#define S_ANYNUM ( S_LNUM | S_DNUM )

#define ISCHAR( s ) ( hb_param( s, S_CHAR ) != NULL )
#define ISNUM( s ) ( hb_param( s, S_ANYNUM ) != NULL )
#define ISLOGICAL( s ) ( hb_param( s, S_LOG ) != NULL )

int hue, sat, lig ;
void DrawBitmap( HDC hdc, HBITMAP hbm, WORD wCol, WORD wRow, WORD wWidth, WORD wHeight, DWORD dwRaster ) ;
static void DrawMasked( HDC hdc, HBITMAP hbm, signed int y, signed int x ) ;
static void DrawGrayed( HDC hDC, HBITMAP hBmp, signed int iRow, signed int iCol ) ;
void DrawGray( HDC hDC, HBITMAP hBmp, signed int iRow, signed int iCol ) ;
static void RectDisable( HDC , LPRECT ) ;
void GoPoint( HDC, int, int ) ;
COLORREF MakeDarker( COLORREF, signed long ) ;
void VertSeparator( HDC, HWND, int, COLORREF, BOOL ) ;
void HorzSeparator( HDC, HWND, int, COLORREF, BOOL ) ;
void SBtnBox( HDC, RECT *, COLORREF, BOOL, int ) ;
void ColorDegrad( HDC hDC, RECT * rori, COLORREF cFrom, COLORREF cTo, int nDegType, int iRound, int iCorner ) ;
static void DegradColor( HDC hDC, RECT * rori, COLORREF ColorFrom, COLORREF ColorTo ) ;
void SBtnRoundBox( HDC, RECT *, COLORREF, BOOL, BOOL ) ;
void cDrawBoxes( HDC, RECT *, int, LPSTR, HFONT, int, COLORREF, COLORREF, COLORREF, BOOL, int ) ;
int GetTextExtent( HDC, LPSTR, int ) ;
BOOL AlphaPaint( HDC dcDest, int x, int y, int cx, int cy, HDC dcSrc, int sx, int sy, int scx, int scy, int alpha ) ;
BOOL DetectAlpha( HDC dcSrc, int sx, int sy, int scx, int scy ) ;

//---------------------------------------------------------------------------//

#ifndef __HARBOUR__
CLIPPER SBtnPaint( PARAMS ) // ( hWnd, hBitmaP, lPressed,
// hFont, cText, nPos, nClrText, ClrBack,
// lMouseOver, lOpaque, hBrush, nRows, lW97,
// lAdjust, lMenu, lMenuPress, lFocused,
// nShape, lBorder, lBox, nClip, nClrTo, lHorz, lRound )
#else
HARBOUR HB_FUN_SBTNPAINT( PARAMS )
#endif
{
HWND hWnd = ( HWND ) Hb_parnl( 1 ) ;
HBITMAP hBitMap1 = ( HBITMAP ) Hb_parnl( 2 ) ;
BOOL bPressed = Hb_parl( 3 ) ;
HFONT hFont = ( HFONT ) Hb_parnl( 4 ) ;
LPSTR cText = Hb_parc( 5 ) ;
int nPos = Hb_parni( 6 ) ;
COLORREF nClrText = Hb_parnl( 7 ) ;
COLORREF ClrBack = Hb_parnl( 8 ) ;
BOOL bMOver = Hb_parl( 9 ) ;
BOOL bOpaque = Hb_parl( 10 ) ;
HBRUSH wBrush = ( HBRUSH ) Hb_parni( 11 ) ;
int nRows = Hb_parni( 12 ) ;
int iBorder = Hb_parni( 13 ) ;
BOOL bAdjust = Hb_parl( 14 ) ;
BOOL bMenu = Hb_parl( 15 ) ;
BOOL bMPress = Hb_parl( 16 ) ;
BOOL bFocused = Hb_parl( 17 ) ;
int iShape = Hb_parni( 18 ) ;
int iClip = Hb_parni( 19 ) ;
COLORREF nClrTo = Hb_parnl( 20 ) ;
int iDegType = Hb_parni( 21 ) ;
HBITMAP hShape = ( HBITMAP ) Hb_parnl( 22 ) ;
BOOL bDisable = Hb_parl( 23 ) ;
BOOL b3DInv = ( ISLOGICAL( 24 ) ? ! Hb_parl( 24 ) : FALSE ) ;
BOOL b3D = ( ISLOGICAL( 24 ) ? TRUE : FALSE ) ;
COLORREF nClr3DL = ( ISNUM( 25 ) ? Hb_parnl( 25 ) : GetSysColor( COLOR_BTNHIGHLIGHT ) ) ;
COLORREF nClr3DS = ( ISNUM( 26 ) ? Hb_parnl( 26 ) : GetSysColor( COLOR_BTNSHADOW ) ) ;
int iTTop = Hb_parni( 27 ) ;
int iTLeft = Hb_parni( 28 ) ;
BOOL bClrRct = Hb_parl( 29 ) ;
int iClipTot = Hb_parni( 30 ) ;
COLORREF ClrBord = Hb_parnl( 31 ) ;
BOOL bBBar = Hb_parl( 32 ) ;
int iCorner = ( ISNUM( 33 ) ? Hb_parni( 33 ) : 0 ) ;
int iAlpha = Hb_parni( 34 ) ;
BOOL bTPos = ISNUM( 27 ) ;
LOGBRUSH lb ;
RECT rct, rctt, rctm, rctb ;
HBRUSH hBrush, hBOld ;
BITMAP bm, bs ;
TEXTMETRIC tm ;
HFONT hOldFont ;
WORD nTop, nLeft, nBkOld ;
int iROP, iType, iBottom, iTop, iLeft, iRight ;
WORD nWidth, nHeight, ibmWidth ;
COLORREF lBkColor ;
HDC hdcBmp, mDC, nDC, hDC = GetDC( hWnd ) ;
HRGN hRgn, hRgn1, hOldRgn, hOldRg1 ;
HPEN hPen, hOldPen ;
POINT pt ;
LPBYTE lpBits ;
HBITMAP hBmOld1, hBmOld2, hMask ;
bOpaque = ( bAdjust ? TRUE : bOpaque ) ;
hOldFont = SelectObject( hDC, hFont ) ;
GetClientRect( hWnd, &rctt ) ;
GetClientRect( hWnd, &rctb ) ;
GetClientRect( hWnd, &rct ) ;
GetTextMetrics( hDC, &tm ) ;
SetTextColor( hDC, nClrText ) ;
SetBkColor( hDC, ClrBack ) ;
lBkColor = GetBkColor( hDC ) ;
nHeight = ( nRows > 0 ? nRows * tm.tmHeight : tm.tmHeight ) ;

if( nPos )
{
switch( nPos )
{
case 6 : // text on top out of button
rct.top += nHeight ;
rctb.top += nHeight ;
rct.bottom += nHeight ;
rctb.bottom += nHeight ;
break ;

case 7 : // text on bottom out of button
rct.bottom -= nHeight ;
rctb.bottom -= nHeight ;
break ;
}
}

if( wBrush )
hBOld = SelectObject( hDC, wBrush ) ;

if( hShape || ! iBorder || iBorder == 3 )
nBkOld = SetBkMode( hDC, TRANSPARENT ) ;

if( nPos && hBitMap1 )
GetObject( ( HGDIOBJ ) hBitMap1, sizeof( BITMAP ), ( LPSTR ) &bm ) ;

switch( iShape )
{
case 4 : // bitmap shape
{
DrawMasked( hDC, hShape, rct.top, rct.left ) ;
break ;
}

case 5 : // office shape
и т.д.
........................

Какие мне надо внести исправления , что бы "лишиться" этих ошибок?



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 20 [только новые]


постоянный участник


Пост N: 611
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.11.11 13:54. Заголовок: Это просто предупреж..


Это просто предупреждения. Думаю, ничего страшного в них нет.
К примеру, "Unused..." - неиспользуемые переменные, просто удали их объявление.
Остальные, думаю, тоже не страшней... :)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 74
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 11.11.11 14:18. Заголовок: PSP пишет: К пример..


PSP пишет:

 цитата:
К примеру, "Unused..." - неиспользуемые переменные, просто удали их объявление.
Остальные, думаю, тоже не страшней... :)


Вот именно остальное и страшней :))
Действительно , эти предупреждения не мешают собраться библиотеке. Но, вот когда она (библиотека)
используется далее , то возникают практически те же ошибки -
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10bb): undefined reference to `Hb_parni'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10c9): undefined reference to `Hb_parl'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10ec): undefined reference to `Hb_parl'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10fc): undefined reference to `Hb_parnl'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x110a): undefined reference to `Hb_parni'
.....
В результате -
collect2: ld returned 1 exit status
hbmk2: Error: Running linker. 1



Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 290
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.11.11 14:40. Заголовок: ММК пишет: ffmpeg/l..


ММК пишет:

 цитата:
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10bb): undefined reference to `Hb_parni'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10c9): undefined reference to `Hb_parl'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10ec): undefined reference to `Hb_parl'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x10fc): undefined reference to `Hb_parnl'
ffmpeg/lib/LibBut.a(bpaint.o):bpaint.c:(.text+0x110a): undefined reference to `Hb_parni'


Теперь стало яснее
В харборе используются следующие функции
hb_parl
hb_parnl
hb_parni
Ошибка возникает из-за того, что С-компилятор является регистро-чувствительным и для него Hb_parl и hb_parl - это разные функции...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 75
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 11.11.11 19:10. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
С-компилятор является регистро-чувствительным и для него Hb_parl и hb_parl - это разные функции.


Да , действительно это так! Вы правы:) Но от эnого ситуация стала еще веселее :)) Мейчас не могу собрать библиотеку!
Функция была первоночально написана под ВСС ( Меркадовские красивые кнопки и т.д. TsButoon ) и функции hb_parl и hb_parni имели вид -
_parl и _parnil плюс
#include <ClipApi.h>
Пытаюсь собрать под Харбор3+Mingw в соответствии с чем ClipApi.h заменяется на hbApi.h
И вот здесь новая проблема - определение hb_parni разное.
В ClipApi.h
int _parni( WORD wParam, ... );
А в hbApi.h
int hb_parni( int iParam )
Исходная ф-я имеет (точнее с заменой _parni на hb_parni) следующую конструкцию-
int iTop = hb_parni( 2, 1 ) ;
int iLeft = hb_parni( 2, 2 ) ;
int iBottom = hb_parni( 2, 3 ) ;
int iRight = hb_parni( 2, 4 ) ;
Т.е. содержит по два параметра , которые с Харбором3 уже не проходят.
Какие могут быть варианты?







Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 291
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.11.11 19:37. Заголовок: ММК пишет: Какие мо..


ММК пишет:

 цитата:
Какие могут быть варианты?


Попробуйте заменить hb_parni на hb_parvni

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 17
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 11.11.11 20:32. Заголовок: ММК пишет: ./../../..


ММК пишет:

 цитата:
./../../function/bpaint.c: In function 'HB_FUN_SBTNPAINT':
../../../function/bpaint.c:48:12: warning: type of 'PARAMS' defaults to 'int'
../../../function/bpaint.c:51:4: warning: implicit declaration of function 'Hb_parnl'
../../../function/bpaint.c:53:4: warning: implicit declaration of function 'Hb_parl'
../../../function/bpaint.c:55:4: warning: implicit declaration of function 'Hb_parc'
../../../function/bpaint.c:55:25: warning: initialization makes pointer from integer without a cast
../../../function/bpaint.c:56:4: warning: implicit declaration of function 'Hb_parni'
../../../function/bpaint.c:76:56: warning: signed and unsigned type in conditional expression
../../../function/bpaint.c:77:56: warning: signed and unsigned type in conditional expression
../../../function/bpaint.c:102:30: warning: unused variable 'hMask'
../../../function/bpaint.c:102:21: warning: unused variable 'hBmOld2'
../../../function/bpaint.c:101:11: warning: unused variable 'lpBits'
../../../function/bpaint.c:100:10: warning: unused variable 'pt'
../../../function/bpaint.c:97:21: warning: unused variable 'nDC'
../../../function/bpaint.c:97:16: warning: unused variable 'mDC'
../../../function/bpaint.c:90:15: warning: unused variable 'bs'
../../../function/bpaint.c:87:13: warning: unused variable 'lb'
../../../function/bpaint.c:48:12: warning: unused parameter 'PARAMS'



Я могу прокомментировать некоторые сообщения.

Сообщение ../../../function/bpaint.c:48:12: warning: type of 'PARAMS' defaults to 'int' означает, что компилятор не видит объявление переменной PARAMS и принимает правило по умолчанию,что ее тип равен int. Такое возможно,если объявляется функция в старом стиле без указания типов параметров. Или когда вобласти видимости появляется перменная, а ее объявления компилятор не видит. Такое возможно, если вы компилировали старым компилятором Borland. Вообще-то, это не соответствует стандарту С, и новые компиляторы это не пропускают. Так что мой совет -это перейти на более современный компилятор.

Сообщение ../../../function/bpaint.c:51:4: warning: implicit declaration of function 'Hb_parnl' означает,что в коде используется вызов функции, однако компилятор не видит объявления этой функции.

Сообщение ../../../function/bpaint.c:55:25: warning: initialization makes pointer from integer without a cast означает,что где-то в коде указателю присваивается целочисленное значение, что естественно без приведения типов делать нельзя.

Сообщение ../../../function/bpaint.c:76:56: warning: signed and unsigned type in conditional expression означает,что имеет место попытка сравнить знаковое целочисленное значение с беззнаковым. Проблема в том, что в этом случае знаковое число будет рассматриваться как беззнаковое и как таковое может по абсолютной величине оказаться больше второго беззнакового операнда.

Это сообщение ./../../function/bpaint.c:102:30: warning: unused variable 'hMask' самое безобидное. Оно просто сообщает, что в коде объявлены переменные, но они не используются.

Проблема в том, что многие, кто пишет на Clipper, обычно плохо знают С, и при этом используют старые компиляторы С.

Хочу заметить, что сам Clipper писался с использованием С++! Об этом многие не знают, но, например, SET ( установка различных опций в Clipper) - это объект класса!


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 76
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 12.11.11 14:12. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуйте заменить hb_parni на hb_parvni


Ну все , надо наливать Большое Вам спасибо !
Так может прислать Вам исходники ? Сейчас они работают с третьим харбором + Mingw. В вашем проекте будет не лишнее :)))
И не подскажете ли мне какую книжечку ( наверное по gсс ? ) желательно на рус. и без лишней лирики. Для начинающего :)
Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 77
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 12.11.11 14:24. Заголовок: Сыроежка пишет: Я м..


Сыроежка пишет:

 цитата:
Я могу прокомментировать некоторые сообщения.


Большое спасибо , но я просил о помощи в конкретной сишной теме! :)
Сыроежка пишет:

 цитата:
Проблема в том, что многие, кто пишет на Clipper, обычно плохо знают С, и при этом используют старые компиляторы С.


С плохим знание си соглашусь, но компиляторы , какие же они старые? И всс и mingw последних версий..
Сыроежка пишет:

 цитата:
Хочу заметить, что сам Clipper писался с использованием С++! Об этом многие не знаю


Вряд ли .. не знают :)
Да и при чем здесь клиппер?!!!

Если я правильно Вас понимаю - си Вы знаете ?
Вот довайте попробуем совершенно конкретную вещь - какие исправления внести в пр-му? Избавимся от ненужных предупреждений :))
Под Mingw.




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 18
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 12.11.11 18:57. Заголовок: ММК пишет: Большое ..


ММК пишет:

 цитата:
Большое спасибо , но я просил о помощи в конкретной сишной теме! :)



Так я вам и конкретно сообщил, что означают ваши многочисленные сообщения компилятора.
ММК пишет:

 цитата:
С плохим знание си соглашусь, но компиляторы , какие же они старые? И всс и mingw последних версий..



Компилятор Borland, которым обычно пользуются для сборки Harbour достаточно старый. Достаточно сказать, что уже давно не существует такой фирмы, как Borland, а разработка компилятора давно перекочевала в другие руки по крайней мере два раза. Более того новый стандарт С был принят в 1999 году, и компилятор Borland его не поддерживает. ОН лишь поддерживает С стандарта 1989 года. А тем более он не удовлетворяет стандарту С++.
ММК пишет:

 цитата:
Вряд ли .. не знают :)
Да и при чем здесь клиппер?!!!



Увы, на самом деле это многие не знают! Думают, что Clipper был написан на С, а не С++. То есть не знают, что исходный код Clipper писался с использованием классов и объектов. Только не путайте классы Clipper типа Browse с классами С++. Какое отношение это имеет к Clipper? Самое прямое! Это имеет отношение к его исходным кодам.ММК пишет:

 цитата:
Если я правильно Вас понимаю - си Вы знаете ?
Вот довайте попробуем совершенно конкретную вещь - какие исправления внести в пр-му? Избавимся от ненужных предупреждений :))



Да, я знаю С и С++ на уровне стандартов языков. Таких, как я , немного, так как большинство даже в глаза не видели стандартов С и С++. К тому же я знаю Clipper на уровне исходных кодов. Поэтому вопрос, заданный недавно Димой в разделе Clipper про дату, для меня банальный. Более того я могу сказать, какой имеется баг с датой у Clipper. Но мне это в настоящее время не интересно. Я не занимаюсь Harbour. У меня сейчас круг интересов - С и С++.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 78
Зарегистрирован: 29.05.10
ссылка на сообщение  Отправлено: 12.11.11 19:28. Заголовок: Сыроежка пишет: Да..


Сыроежка пишет:

 цитата:
Да, я знаю С и С++


Оставим лирику. Что я должен исправить ? Компилятор Mingw

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 21
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 12.11.11 22:14. Заголовок: Сыроежка пишет: К т..


Сыроежка пишет:

 цитата:
К тому же я знаю Clipper на уровне исходных кодов


Интересно. У вас есть исходные коды clippera? Какой версии, если не секрет?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 316
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 12.11.11 23:43. Заголовок: santy пишет: Какой ..


santy пишет:

 цитата:
Какой версии, если не секрет?

Наверное summer 87.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 22
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 13.11.11 19:55. Заголовок: santy пишет: Сыроеж..


santy пишет:

 цитата:
Сыроежка пишет:

цитата:
К тому же я знаю Clipper на уровне исходных кодов


Интересно. У вас есть исходные коды clippera? Какой версии, если не секрет?



В основном это Clipper 5.01 и Clipper 5.2d. Clipper 5.3a я в меньшей степени восстанавливал исходный код, так как не было такой насущной необходимости. Да и, как я уже написал, я уже давно отошел от Clipper. Заглядываю сюда лишь из чувства ностальгии.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 23
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 13.11.11 20:11. Заголовок: Я сейчас снова взгля..


Я сейчас снова взглянул на исходное сообщение темы, и стала ясна причина первого сообщения.

../../../function/bpaint.c: In function 'HB_FUN_SBTNPAINT':
../../../function/bpaint.c:48:12: warning: type of 'PARAMS' defaults to 'int'

Дело в том, что в приведенном вами коде есть такие строки объявления этой функции

CLIPPER SBtnPaint( PARAMS ) // ( hWnd, hBitmaP, lPressed,
// hFont, cText, nPos, nClrText, ClrBack,
// lMouseOver, lOpaque, hBrush, nRows, lW97,
// lAdjust, lMenu, lMenuPress, lFocused,
// nShape, lBorder, lBox, nClip, nClrTo, lHorz, lRound )
#else
HARBOUR HB_FUN_SBTNPAINT( PARAMS )
#endif

Как видите, тип параметр PARAMS не указан. Дело в том, что на самом деле никакие параметры этой функции не передаются. Параметры извлекаются из стека Clipper. Поэтому обычно переменную PARAMS определяют как void с помощью препроцессорной команды #define. Очевидно, что в вашем случае компилятор не видит этого определения PARAMS , а поэтому думает, что это - реальная переменная и присваивает ей тип int.
Чтобы избавиться от этого сообщения, вам нужно включить заголовочный файл, который содержит препроцессорную директиву #define для идентификатора PARAMS

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 317
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 13.11.11 20:19. Заголовок: Сыроежка пишет: К т..


Сыроежка пишет:

 цитата:
К тому же я знаю Clipper на уровне исходных кодов.


Сыроежка пишет:

 цитата:
В основном это Clipper 5.01 и Clipper 5.2d. Clipper 5.3a я в меньшей степени восстанавливал исходный код,


То ВЫ так сказать - компьютерный хулиган , по лицензии это запрещено делать

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2151
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.11.11 14:17. Заголовок: Сыроежка пишет: Увы..


Сыроежка пишет:

 цитата:
Увы, на самом деле это многие не знают! Думают, что Clipper был написан на С, а не С++. То есть не знают, что исходный код Clipper писался с использованием классов и объектов.



Это же легко проверить. Достаточно задать поиск текста *.cpp в каталоге clipper\lib
В 5.2 модулей, написанных на c++, нет вообще.
В 5.3 в dbfcdx.lib есть несколько модулей на c++, относящиехя к flex. Но это, собственно, не сам клиппер.
И... ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 25
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 14.11.11 17:20. Заголовок: Pasha пишет: Это же..


Pasha пишет:

 цитата:
Это же легко проверить. Достаточно задать поиск текста *.cpp в каталоге clipper\lib
В 5.2 модулей, написанных на c++, нет вообще.
В 5.3 в dbfcdx.lib есть несколько модулей на c++, относящиехя к flex. Но это, собственно, не сам клиппер.
И... ?



На мой взгляд это не даст правильного ответа. То, что в этом каталоге, допустим, нет файлов с расширением *.cpp, ни о чем не говорит.
Надо смотреть не этот каталог, а сами модули внутри библиотеки Clipper.lib. Например, драйвер баз данных. Базовый класс описан в модуле wa.obj ( сокращение от слов work areas), а все другие драйверы, как, например, DBF или SDF, являются производными от базового класса, заданного в модуле wa.obj..
Если я не ошибаюсь, то в документации к Clipper 5.02 (в одном из файлов пакета) дается некоторая документация по драйверам баз данных, и как написать свой драйвер базы данных.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2152
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.11.11 17:56. Заголовок: Сыроежка пишет: На ..


Сыроежка пишет:

 цитата:
На мой взгляд это не даст правильного ответа. То, что в этом каталоге, допустим, нет файлов с расширением *.cpp, ни о чем не говорит.
Надо смотреть не этот каталог, а сами модули внутри библиотеки Clipper.lib. Например, драйвер баз данных. Базовый класс описан в модуле wa.obj ( сокращение от слов work areas), а все другие драйверы, как, например, DBF или SDF, являются производными от базового класса, заданного в модуле wa.obj..
Если я не ошибаюсь, то в документации к Clipper 5.02 (в одном из файлов пакета) дается некоторая документация по драйверам баз данных, и как написать свой драйвер базы данных.



Владимир, Вы, похоже, крепко забыли клиппер. Зачем фантазировать, выдумывать C++ в клиппере ?
Такого модуля, wa.obj, нет. Есть модуль workarea. И он написан на C, а не C++. Исходник - D:\CC\DBCMD\WORKAREA.С
И модуль set тоже написан на C. Зачем придумывать то, чего нет, да еще пытаясь при этом запутать ?
Ведь это элементарно проверяется.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 27
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 14.11.11 18:14. Заголовок: Pasha пишет: Владим..


Pasha пишет:

 цитата:
Владимир, Вы, похоже, крепко забыли клиппер. Зачем фантазировать, выдумывать C++ в клиппере ?
Такого модуля, wa.obj, нет. Есть модуль workarea. И он написан на C, а не C++. Исходник - D:\CC\DBCMD\WORKAREA.С
И модуль set тоже написан на C. Зачем придумывать то, чего нет, да еще пытаясь при этом запутать ?
Ведь это элементарно проверяется.




Модуль wa.obj - это значит мною переименованный модуль workarea.obj. То есть я извлек workarea.obj, а затем переименовал его в wa.obj для работы над ним.
Самое забавное, что я даже не смотрел workarea.c, если такой существует! Но тем не менее, глядя на ассемблерный код этого модуля, то там очевидно, что описаны методы и дана структура данных. А другие драйверы вызывают эти методы.

Вполне возможно, что авторы Clipper моделировали объектно-ориентированное программирование С++ на С. Когда я восстанавливал этот модуль я использовал средства объектно-ориентированного программирования TASM 4.1.

Значит это действительно мои фантазии, но тем не менее надо отдать должное, авторы Clipper даже на С писали в объектно-ориентированном стиле.

Мне, вот, только странно, структура SET содержит указатель на саму себя. А это означает, что это объект класса, так как на "физическом" уровне указатель thos включается в структуру.

Наверное они планировали перейти на С++, а потому делали код, в наибольшей степени иметирующий объектный код С++.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2153
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.11.11 19:28. Заголовок: Сыроежка пишет: Нав..


Сыроежка пишет:

 цитата:
Наверное они планировали перейти на С++, а потому делали код, в наибольшей степени иметирующий объектный код С++.



Мнэ.. помимо Ваших выдающихся и уникальных способностей, с которыми Вы нас так квалифицированно ознакомили, Вы еще и телепат.
Для тренировки рекомендую дизассамблировать модуль workarea.obj из харбора, воскликнуть: да здесь явно видно объекты ! Он написан на C++ ! А узнав, что модуль написан таки на C, порассуждать на тему, что разработчики харбора планируют переписать его на C++ :)


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 101
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет