|
glitteringsound wrote: What about GetProcAddress?
Will it return valid functional addresses which were exported by that EXE?
Yes it will. But make sure the function is exported using __declspec(dllexport) or a .DEF file.
glitteringsound wrote: More over all these exported functions will be available in export table?
Yes.
|
|
|
|
|
still after adding __declspec(dllexport) and make all functions of Exe export table, I am not getting valid address
its just throwing again 0x00000 i.e NULL pointer.
typedef (int)(FUNCTION*)(int,int)
FUNCTION fn;
hModule = (HMODULE)LoadLibraryEx((LPCSTR)strexeModule.c_str(),NULL,DONT_RESOLVE_DLL_REFERENCES);
FUNCTION fnPtr = (FUNCTION)::GetProcAddress(hModule,(LPCSTR)strModuleName.c_str());
fn is 0x00000 and in turn expected runtime exception occuring...
modified on Friday, March 19, 2010 6:59 AM
|
|
|
|
|
The function declaration should look something like -
extern "C" __declspec(dllexport) int Func(int, int)
|
|
|
|
|
thnx now its working..
the problem was __stdcall there and extern "C" was'nt there.
|
|
|
|
|
i have localized my application.initially i was loading popup menu as
CMenu popupmenu.loadmenu(IDR_MENU1);
but for localization i have now this
HMENU hmenu2=LoadMenu(hinstance,MAKEINTRESOURCE(IDR_MENU1));
popupmenu.FromHandle(hmenu2);
which is giving access violation exception.what is wrong?
|
|
|
|
|
Check the return value of LoadMenu() function. You can use GetLastError() function to know what exactly went wrong.
|
|
|
|
|
Use LoadMenuIndirect function and specify your menu id ( localized version )in the template parameter
HTH
|
|
|
|
|
I think you want .Attach, not .FromHandle.
Iain.I have now moved to Sweden for love (awwww).
|
|
|
|
|
FromHandle is a static function used to create an object from a handle.
This is the way it has to be called -
CMenu* popup = CMenu::FromHandle(hmenu2);
|
|
|
|
|
.attach is working for me.
|
|
|
|
|
Hi,
Can someone please help me fix the errors I am having with this code.
Thank you.
#include <WinInet.h>
#pragma comment(lib, "wininet.lib")
if (InternetGetConnectedState(INTERNET_CONNECTION_LAN | INTERNET_CONNECTION_MODEM, 0) == FALSE)
{
MessageBox(NULL, "Sorry, no Internet Connection was detected", "iWorld", MB_OK | MB_ICONERROR);
}
Errors:
1. error C2059: syntax error : 'if'
2. error C2143: syntax error : missing ';' before '{'
3. error C2447: '{' : missing function header (old-style formal list?)Andrew McIntyre
|
|
|
|
|
If that's the whole file you appear to be missing a function scope around your if statement.
|
|
|
|
|
Can you help me put in the missing scope as I have been trying to fix it but I just cant. Andrew McIntyre
|
|
|
|
|
|
Yes this is my second attempt as I really want finish the code off.
ThanksAndrew McIntyre
|
|
|
|
|
MrMcIntyre wrote: Yes this is my second attempt as I really want finish the code off.
When are you going to wake up and actually work through some real samples, to get a grounding in the principles of Windows programming? I have told you many times: buy a book or use some of the tutoials here on CodeProject. You are never going to get a working system unless you start with the basics and work form there to the more advanced areas.txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
I need help fixing these errors. Andrew McIntyre
|
|
|
|
|
MrMcIntyre wrote: I need help fixing these errors.
A book will provide you the help you need.
“Follow your bliss.” – Joseph Campbell
|
|
|
|
|
MrMcIntyre wrote: I need help fixing these errors.
I agree; but you are starting from a position of ignorance, and that is not meant as an insult. As I have explained many times, you need to understand the basics before you can produce anything approaching a useful application. The code sample you put in the original question of this thread suggests that you really do not understand how to start writing a program. You seem to be taking disconnected code snippets and trying to make them work without being in a properly constructed programme.
You may not appreciate this, but I am really trying to help you, but you must also try and help yourself. Buy a book on C/C++ and also one on Windows programming. If money is an issue then go and work through some of the samples here on CodeProject, there are lots that will help you.txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
MrMcIntyre wrote: 3. error C2447: '{' : missing function header (old-style formal list?)
This is the big one...
As Richard said, functions are not optional.
This is super basic stuff, which this forum is not going to be able to help you with. A beginner's book will.
If we're wrong, and you've just cut and pasted out stuff and not made a good question post, then feel free to edit.
Iain.
Edited: Typo.I have now moved to Sweden for love (awwww).
|
|
|
|
|
So no one is going to help. Andrew McIntyre
|
|
|
|
|
MrMcIntyre wrote: So no one is going to help.
I wouldn't say that. But spoonfeeding you answers only helps you this once.
OK, I'm nice. Try this:
#include <WinInet.h>
#pragma comment(lib, "wininet.lib")
void This_Is_A_Function ()
{
if (InternetGetConnectedState(INTERNET_CONNECTION_LAN | INTERNET_CONNECTION_MODEM, 0) == FALSE)
{
MessageBox(NULL, "Sorry, no Internet Connection was detected", "iWorld", MB_OK | MB_ICONERROR);
}
}
This might help with the errors you are having... But did not help you get any further than that. If you're most of the way through writing a virtual world simulator, then surely you know how to write and call a function?
So, taking your profile as accurate, I must be misunderstanding your question?
Iain.I have now moved to Sweden for love (awwww).
|
|
|
|
|
I have got I error with the code you provided. The character that is underlined and in bold is stopping me from running the code. Please help.
void Function();
{
if (InternetGetConnectedState(INTERNET_CONNECTION_LAN | INTERNET_CONNECTION_MODEM, 0) == FALSE)
{
MessageBox(NULL, "Sorry, no Internet Connection was detected", "iWorld", MB_OK | MB_ICONERROR);
}
}
Error:
'{' : missing function header (old-style formal list?)
Thank you very much
Andrew McIntyre
|
|
|
|
|
Take a look at the code I wrote:
void This_Is_A_Function ()
{
and the code you wrote:
void Function();
{
and the difference should become clear...
Iain.
I have now moved to Sweden for love (awwww).
|
|
|
|
|
You Don't seem to understand what 'Scope'Means. Maybe you just migrated from QBasic or so...
I'll explain this basic stuff just this once! You Start at File Scope. That's where you declare and define Golbal Variables, and Global Statics. NO ACTION CAN TAKE PLACE THERE! (except assigning Fixed Values to Variables).
Action can only take Place in a Function. Any Statement, (that is things where Action takes Place, susch as c=a+b; if(Something)doSomething(), has to take place inside a Function. A function is a Named Global Variable to which a list of Actions is attached. it is declared and may also defined in the standard way, but it is distinguished as a function because it is followed by (...)
For instance:
int A; declares a Variable of type integer, named 'A'
int A=10; does the same, but also gives it the value 10, (defines it)
int A(); declares a Function Variable Named 'A'
int A(){.....} does the same, but also defines what the function does, by the code included by the brackets. That Code is at Scope Level1 (File Scope being Level 0). This is the plase where the If, When and Whatever Code goes. (As you have in your File). The Scope level can be further increased, by nesting more {...} pairs inside it, but That's a prety advanced subject from where you are now, Save to say, You're NOT allowed to write another function inside the body of a function. (That is Different in languages susch as say Pascal). Try itin C or CPP, and you get plenty of error messages,the compiler will choke.
Functions can only be called from Other functions, and you cannot start a Function in File Scope. So, the phylosophical question arrives, 'How does it all Start'Afteral, in QBasic, it starts with the first line of Code.
That's where a Special function comes in. (Mostly) every C Program starts with a function called 'main()' Some programs start with differently named programs, and in some cases the definition of the main() program is more involved, but again, those are pretty advanced subjects from where you are now.
But, if you want to write a basic program, include all your first actions inside a function called main().
If you try this with the above snippet (I did not try it, I must admit), it will almost certainly NOT work.
The Service 'InternetGetConnectedState'requires a complicated environment around it. This again, is a very advanced subject from where you are now.
Instead of this, why don't you replace it with 'printf("Hello World");'and then build up to more difficult (and more Usefull Cases).
Unfortunately, we in the Code project cannot 'Donate'Knowledge. You have to gain it yourself, and I hope I pointed you in the right direction.
Bram van Kampen
|
|
|
|