Can not find where to define an identifier..
-
Hello i am a total newbie in C++ and i am learning by tryning to modify an existing code which uses displays. In the original code there are 2 displays showing informations to the user I want to add a third display do i copied the screen2.cpp and screen2.h and renamed them to screen3.cpp and screen3.h Inside the screen3 code i replace all mentions of screen2 by screen3 and i added the screen 3 in the screens.cpp script // User screens MMIRegisterScreen(SCREENID_1, Screen1Enter, Screen1Create, Screen1Update, Screen1Exit); MMIRegisterScreen(SCREENID_2, Screen2Enter, Screen2Create, Screen2Update, Screen2Exit); MMIRegisterScreen(SCREENID_3, Screen3Enter, Screen3Create, Screen3Update, Screen3Exit); My problem is that when i debug i end up with 4 error messages as the Screen3Enter, Screen3Create , Screen3Update and Screen3Exit are not declared This is strange as in the screen3.cpp the functions here above are declared the same way they are declared for the other screen i copied from void Screen3Enter(void) { } void Screen3Create(void) { Thanks for your suggestions
-
Hello i am a total newbie in C++ and i am learning by tryning to modify an existing code which uses displays. In the original code there are 2 displays showing informations to the user I want to add a third display do i copied the screen2.cpp and screen2.h and renamed them to screen3.cpp and screen3.h Inside the screen3 code i replace all mentions of screen2 by screen3 and i added the screen 3 in the screens.cpp script // User screens MMIRegisterScreen(SCREENID_1, Screen1Enter, Screen1Create, Screen1Update, Screen1Exit); MMIRegisterScreen(SCREENID_2, Screen2Enter, Screen2Create, Screen2Update, Screen2Exit); MMIRegisterScreen(SCREENID_3, Screen3Enter, Screen3Create, Screen3Update, Screen3Exit); My problem is that when i debug i end up with 4 error messages as the Screen3Enter, Screen3Create , Screen3Update and Screen3Exit are not declared This is strange as in the screen3.cpp the functions here above are declared the same way they are declared for the other screen i copied from void Screen3Enter(void) { } void Screen3Create(void) { Thanks for your suggestions
-
Hello i am a total newbie in C++ and i am learning by tryning to modify an existing code which uses displays. In the original code there are 2 displays showing informations to the user I want to add a third display do i copied the screen2.cpp and screen2.h and renamed them to screen3.cpp and screen3.h Inside the screen3 code i replace all mentions of screen2 by screen3 and i added the screen 3 in the screens.cpp script // User screens MMIRegisterScreen(SCREENID_1, Screen1Enter, Screen1Create, Screen1Update, Screen1Exit); MMIRegisterScreen(SCREENID_2, Screen2Enter, Screen2Create, Screen2Update, Screen2Exit); MMIRegisterScreen(SCREENID_3, Screen3Enter, Screen3Create, Screen3Update, Screen3Exit); My problem is that when i debug i end up with 4 error messages as the Screen3Enter, Screen3Create , Screen3Update and Screen3Exit are not declared This is strange as in the screen3.cpp the functions here above are declared the same way they are declared for the other screen i copied from void Screen3Enter(void) { } void Screen3Create(void) { Thanks for your suggestions
You have to find where
Screen2Enter, Screen2Create, Screen2Update, Screen2Exit
are declared (and where they are defined) and do something similar to what you've already done: make the brand new
Screen3Enter, Screen3Create, Screen3Update, Screen3Exit
copying and renaming. Unfortunately the process could go on deeper and deeper.
"In testa che avete, Signor di Ceprano?" -- Rigoletto
-
You have to find where
Screen2Enter, Screen2Create, Screen2Update, Screen2Exit
are declared (and where they are defined) and do something similar to what you've already done: make the brand new
Screen3Enter, Screen3Create, Screen3Update, Screen3Exit
copying and renaming. Unfortunately the process could go on deeper and deeper.
"In testa che avete, Signor di Ceprano?" -- Rigoletto
Thanks the functions are defined in the script of the screen I am wondering if they should be declared somewhere else ? void Screen3Enter(void) { } void Screen3Create(void) { // Setup default keys ScreensSetupDefaultKeys();
-
No one here can guess what this code is doing, or what it is supposed to do. And trying to learn C++ by modifying someone else's code is not a great idea.
OK thanks but i have no time to learn from scratch I have an existing code doing more or less what i expect on the displays and am trying to make it look how i want.
-
OK thanks but i have no time to learn from scratch I have an existing code doing more or less what i expect on the displays and am trying to make it look how i want.
Carbonkevlar13 wrote:
i have no time to learn from scratch
Then you are going to need a lot of luck, and will probably get very frustrated. Looking at the few lines of code you did show suggests that it is a Windows GUI application, so that is another subject you will need to learn.
-
Thanks the functions are defined in the script of the screen I am wondering if they should be declared somewhere else ? void Screen3Enter(void) { } void Screen3Create(void) { // Setup default keys ScreensSetupDefaultKeys();
In
C++
there is no script. There are, instead, header files (*.h
) and source files (usually*.cpp
or*.cc
). You should put the function declarations, e.g.void Screen3Enter();
in header files, while the function definitions, e.g.
void Screen3Enter()
{
// some useful code here
}should be written in source files.
"In testa che avete, Signor di Ceprano?" -- Rigoletto
-
In
C++
there is no script. There are, instead, header files (*.h
) and source files (usually*.cpp
or*.cc
). You should put the function declarations, e.g.void Screen3Enter();
in header files, while the function definitions, e.g.
void Screen3Enter()
{
// some useful code here
}should be written in source files.
"In testa che avete, Signor di Ceprano?" -- Rigoletto
Thanks i already have these declarations inside screens3.cpp void Screen3Enter(void) void Screen3Create(void) void Screen3Update(void) void Screen3Exit(void) when i am inside screens3.cpp there is a "No issues found" message at the bottom of the screen but when i launch the simulation i have these 4 error messages C2065 'Screen3Enter' undeclared identifier from the screens.cpp source referring to the following line MMIRegisterScreen(SCREENID_3, Screen3Enter, Screen3Create, Screen3Update, Screen3Exit); Thanks for trying to help me
-
Thanks i already have these declarations inside screens3.cpp void Screen3Enter(void) void Screen3Create(void) void Screen3Update(void) void Screen3Exit(void) when i am inside screens3.cpp there is a "No issues found" message at the bottom of the screen but when i launch the simulation i have these 4 error messages C2065 'Screen3Enter' undeclared identifier from the screens.cpp source referring to the following line MMIRegisterScreen(SCREENID_3, Screen3Enter, Screen3Create, Screen3Update, Screen3Exit); Thanks for trying to help me
Put those declarations inside the screens3.h header file. For instance:
// screens3.h
#ifndef _SCREENS3_
#define _SCREENS3_
void Screen3Enter(void);
void Screen3Create(void);
void Screen3Update(void);
void Screen3Exit(void);
#endifthen put
#include "screens3.h"
in every source file that needs them (e.g. screens.cpp)
"In testa che avete, Signor di Ceprano?" -- Rigoletto
-
Put those declarations inside the screens3.h header file. For instance:
// screens3.h
#ifndef _SCREENS3_
#define _SCREENS3_
void Screen3Enter(void);
void Screen3Create(void);
void Screen3Update(void);
void Screen3Exit(void);
#endifthen put
#include "screens3.h"
in every source file that needs them (e.g. screens.cpp)
"In testa che avete, Signor di Ceprano?" -- Rigoletto
I added #include "screens3.h" in different source files although it was not for the other screens When i launched the simulator there was an error message saying "cannot open source file screen3.h" I tried to retype MMIRegisterScreen instead of copying it and when i started to type the first function (screen3Enter) it proposed different functions to me but none for the screen 3 although they qre declared inside the screen3.cpp I deleted the screen3Enter function and retyped it hoping to see it appear in the list of proposed functions for the MMURefusterScreen but still it was not in the list
-
Thanks the functions are defined in the script of the screen I am wondering if they should be declared somewhere else ? void Screen3Enter(void) { } void Screen3Create(void) { // Setup default keys ScreensSetupDefaultKeys();
-
I added #include "screens3.h" in different source files although it was not for the other screens When i launched the simulator there was an error message saying "cannot open source file screen3.h" I tried to retype MMIRegisterScreen instead of copying it and when i started to type the first function (screen3Enter) it proposed different functions to me but none for the screen 3 although they qre declared inside the screen3.cpp I deleted the screen3Enter function and retyped it hoping to see it appear in the list of proposed functions for the MMURefusterScreen but still it was not in the list
-
Quote:
I added #include "screens3.h" in different source
Quote:
there was an error message saying "cannot open source file screen3.h"
can you spot the difference?
"In testa che avete, Signor di Ceprano?" -- Rigoletto
yes i removed the s from screens3 but no change finally what i did is modify a fourth screen already programmed with a gauge to benefit from the declarations and it works.. I still do not understand why it did not work with my screen. Thanks for your help !
-
yes i removed the s from screens3 but no change finally what i did is modify a fourth screen already programmed with a gauge to benefit from the declarations and it works.. I still do not understand why it did not work with my screen. Thanks for your help !
-
yes i removed the s from screens3 but no change finally what i did is modify a fourth screen already programmed with a gauge to benefit from the declarations and it works.. I still do not understand why it did not work with my screen. Thanks for your help !