First of all genuine thanks to all that contributed to my previous queery. It was really helpful, and moved things along.
I wrote a method: MkRvaPrt() that takes an rva, and maps it successfully to the file location, rather than to the memory location where the object would be after using LoadLibrary();
Sections in a PE File are used where a block of binary data is mapped to a file location other than the offset in the file.
What the MkRvaPtr() function does is, it checks whether the virtual address is within the ranges of any of the Section Headers, (irrespective of name), and, if so calculates the adjustment, and returns a pointer into the file. If it does not point into a section, it returns the rva offset into the File.
This all works smooth, but sets the stage to several questions.:-
Sometimes, the rva found, already points at the required data, at other occasions, it has to be converted with MkRvaPtr.
I need to use MkRvaPtr to get the name of each Import Module, but the list of "PtrsToImportNames" needs no such translation.
Does this table consist of relative offsets to itself? If so, How was I to know!
Write a program that determines a student's grade. It reads three test scores(between 0 and 100) and calls a function that calculates and returns a student's grade based on the following rules:
A. If the average score is 90% or more, the grade is A.
B. If the average score is 70% or more and less than 90%, it checks the third score. If the third score is more than 90%, the grade is A; otherwise, the grade is B.
and it continues...
The program's main is to contain only call statements. At least three subfunctions are required: one to read scores, one to determine the grade, and one to print the results.
This is what I have so far but it will not run for me. I am not allowed to use global declarations
You don't show what you have so far, so we can't really give you any explicit help.
But ... if you can't use global declarations, then you need to use local variables and parameter passing. That means you write your functions to accept the data they are to work on, and return values to the caller.
int sum (int* data, int count)
int total = 0;
for (i = 0; i < count; i++)
total += *data++;
for (i = 0; i <5; i++)
data[i] = i + 1;
result = sum(data, 5);
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
This requires to use variables to hold the scores and the grade. If you are not allowed to use global variables you must declare them in your main() function and pass them to the functions:
int score1, score2, score2;
ReadScores(&score1, &score2, &score3);
grade = GetGrade(score1, score2, score3);
The program's main is to contain only call statements.
I would read that in the sense of that it should not contain any operations but that variable declarations, assignment, and the mandatory return statement are allowed.
After thinking about it a while I found a solution that does not use any variables in main():
Then ReadScores() must return a structure containing the data (which may be optionally dynamically allocated) that is passed to GetGrade() (which can free allocated memory) which returns the grade that is passed to the Print() function.
Ah, it is that time of the year again. This looks suspiciously like an examination project. There are various reasons why this forum does not do these. For one, most people on this forum have already passed their exams, while many others earned their feathers trough self study and hard graft. Furthermore we would not like to contribute to the creation of qualified software engineers who mis the basic concepts.(as you seem to do).
You don't actually show what you have. (maybe you don't know how to, if so, follow the posting guidelines on this site.)
I converted a linux code to vc++ MFC app(VS2012), compiler generating this error on compilation:-
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\cstdio(39): error C2039: 'fclose' : is not a member of '`global namespace''
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\cstdio(39): error C2873: 'fclose' : symbol cannot be used in a using-declaration.
Though have tried several setting changes, but this error is upsetting.
Any help would be highly appreciated.
This may occur when the source file is compiled as C.
If it is a plain C file (.c) you should not include cstdio but stdio.h.
If it is a C++ file (or should be compiled as such), set the appropriate option in the project settings (I have no VS21012 here but it should be at "C/C++ - Advanced" - "Compile As") to compile all files as C++, or rename source files to .cpp.
Code does not have any issue...VS 2012 IDE setting has...
Even I posted same problem in several boards..a programmer suggested that I should make a simple program on Visual C++ 2012 IDE, with <cstdio>. I made a simple app with only <cstdio>..(library/header...namespace as documentation says of microsoft). Again same error on compilation...
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cstdio(39): error C2039: 'fclose' : is not a member of '`global namespace''
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cstdio(39): error C2873: 'fclose' : symbol cannot be used in a using-declaration
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========..
Am i missing some setting..?
For a 2000maH stack maximum trickle charge rate is 66mA which is well within range of your solar panels. You can't charge any faster using a simple LM317T circuit otherwise you will damage the batteries.