Design orientated 'C' question
- From: Robby <Robby@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 26 Mar 2006 14:44:50 -0800
Hi,
Please consider the following code:
Globals.h
=================================================
//Declaration of structure
struct tagIdRoomIndex
{
int iRoomNumber;
TCHAR *szRoomName;
};
=================================================
WndProc_CW1.cpp
==================================================
#include <windows.h>
#include "Globals.h"
//Function declaration
void L1_txtDISPLAY_ArSt2MEMB( HDC, struct tagIdRoomIndex RIndex[] );
//Declaration of an array of structures
tagIdRoomIndex RIndex[] =
{
1 ,TEXT("ABC"),
2 ,TEXT("DEF"),
3 ,TEXT("GHI"),
4 ,TEXT("JKL"),
};
LRESULT CALLBACK WndProc_CW1 (HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch(message)
{
WM_PAINT:
F1( hdc,RIndex); //Calling function
break;
}
//Other code....
}
==================================================
LIB1_FUNCTIONS.cpp (Function implementations)
==================================================
#include <windows.h>
//#include "Globals.h" //Already included in WndProc.cpp
F1(HDC hdc,struct tagIdRoomIndex RIndex[])
{
//Other code ...
//Errors point to the < RIndex[i].iRoomNumber)); > part of line below
TextOut (hdc,0,0,szBuffer,
wsprintf(szBuffer,TEXT("%d"),RIndex[i].iRoomNumber));
}
==================================================
This code compiles OKAY if I include the following line of code in the
function implementation file called LIB1_FUNCTIONS.cpp
#include "Globals.h"
However if I don't include "Globals.h" I get several errors. Here are 2 of
them:
c:\_DTS_PROGRAMMING\vc++\MY_APPS_LAB\APPLICATION_1\LIB1_FUNCTIONS.cpp(74) :
error C2036: 'tagIdRoomIndex []' : unknown size
c:\_DTS_PROGRAMMING\vc++\MY_APPS_LAB\APPLICATION_1\LIB1_FUNCTIONS.cpp(74) :
error C2027: use of undefined type 'tagIdRoomIndex'
My question is, when I am passing the array of structures by the calling
function:
F1(hdc,RIndex);
Am I not passing the array and the structure. I have tried the following
ways to pass the array of structures in the calling function:
F1( hdc,RIndex); //Calling function
OR
F1( hdc,tagIdRoomIndex RIndex); //Calling function
And I always get errors.....
I find it redundant if I have to include the "Globals.h" once in WndProc_CW1
and once again in LIB1_FUNCTIONS.cpp
I don't mind, I can include it twice! *I could live with this* However Isn't
this bad coding habits?
As far as where my declarations take place, I believe that declaring a
structure in a header would not really be a bad idea, right...I mean, I have
seen it in book samples!
But then again, they were not books that showed serious examples under the
context dealing with structuring of programming.
I would appreciate all feedback on this issue... Thankyou all.
All suggestions are appreciated
--
Best regards
Robert
.
- Follow-Ups:
- Re: Design orientated 'C' question
- From: David Wilkinson
- RE: Design orientated 'C' question
- From: Robby
- Re: Design orientated 'C' question
- Prev by Date: Re: can someone please help me with making this class
- Next by Date: RE: [ASAP]: Exporting CString in DLL
- Previous by thread: winheap download?
- Next by thread: RE: Design orientated 'C' question
- Index(es):
Relevant Pages
|