Witam
Chcę przekazać do funkcji w zewnętrznym pliku wskaźnik do TForm i TComponent (utworzonych wcześniej) aby porównać parę argumentów z nich, jednak przy próbie kompilacji dostaję
[C++ Warning] wallCheck.cpp(12): W8054 Style of function definition is now obsolete
[C++ Error] wallCheck.cpp(14): E2288 Pointer to structure required on left side of -> or ->*
[C++ Error] wallCheck.cpp(14): E2288 Pointer to structure required on left side of -> or ->*
Nie rozumiem dlaczego, do funkcji przekazałem Form1, który jest wskaźnikiem na formę pierwszą oraz ball, który wskazuje na obiekt klasy TImage dziedziczącej od TComponent, więc chyba można na tym użyć "->"?
Zapewne gdzieś coś pomyliłem, tylko nie mogę znaleźć gdzie.
(fragmenty z plików:)
//main.h
#include "wallCheck.h";
[...]
class TForm1 : public TForm
{
__published:
TImage *ball;
[...]
}
//main.cpp
wallCheck(Form1,ball,TOLERANCJA);
//wallCheck.h
#ifndef wallCheckH
#define wallCheckH
#include <Classes.hpp> //załączyłem je wszystkie dla pewności
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
const int WALL_NONE=0;
const int WALL_TOP=1;
const int WALL_BOT=2;
const int WALL_LEFT=3;
const int WALL_RIGHT=4;
const int wallCheck(TForm*,TComponent*,int);
#endif
//wallCheck.cpp
#pragma hdrstop
#include "wallCheck.h"
wallCheck(form,comp,tol) //warning z kompilatora
{
if(form->Left+tol>=comp->Left) // 2 errory
return WALL_LEFT;
else
return WALL_NONE;
}
#pragma package(smart_init)
Używam buildera 6