|
I know about PE file format.
But the thing is PE(Exe) don't contain any export directories and export tables at all for their exports. I think I need to parse .text(Executable code section)for getting the Win32 EXE functions.
as converting Win32 Exe to DLL also not an easy task at all.
Regards
Usman
|
|
|
|
|
I think , it will be better to convert it to dll rather than exporting from the exe. It is rare scenario, which i dont like.
Величие не Бога может быть недооценена.
|
|
|
|
|
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
|
|
|
|