|
How did u know it is not getting any message?
Come online at:-
jubinc@skype
|
|
|
|
|
because i override PreTranslateMessage function, and set a break point in it ,run the applicatioin, it can not stop on the break point
|
|
|
|
|
do you have a msn id ? if you has, could you add my msn id to your friend list?
my msn id is : kiluar@hotmail.com
it will be very pleasure to be your friend!
|
|
|
|
|
Dear All,
I have a list of VC++ projects. I need to compile those files in a command line.
I want to do that cmd line exe.
How ca n do this ?
Kindly help me in this.
|
|
|
|
|
you need to make a make file and then open a Build Environment window and use nmake makefile .
If you think you can than you can, if you think you can't you are right.
|
|
|
|
|
use CL.exe for compiling the files from command line.
u can also msdev.exe from command line to build the whole project.
nave
|
|
|
|
|
I want to do this by coding..
Can anybody help me...
|
|
|
|
|
what do u mean???
what u want is to compile a file from another exe, u can use ShellExecute() or CreateProcess()function to run the cl.exe from the code.
nave
|
|
|
|
|
|
Hi, all,
just got 2 questions about the use of method SetWindowOrg:
void CCoordinateTestView::OnDraw(CDC* pDC)<br />
{<br />
pDC->SetMapMode (MM_TEXT);<br />
pDC->SetWindowOrg (100,100); <br />
pDC->Rectangle(CRect(100, 100, 300, 300));<br />
}
1.
I find that
pDC->SetWindowOrg (100,100);
actually has the same effect with
pDC->SetViewportOrg(-100,-100);
So either of them can take place of the other. They're essentially equivalent. Is that right?
2.
The literal meaning of SetWindowOrg, as I guess, is to set maybe the left-top position when a window (like in SingleDoc) is created. That is, every time I instantiate a window, it's position should be fixed. But the fact is not so. Then why is it named Set "Window" Org? What does this "Window" refer to?
Maybe my questions look a litte strange.
Thanks a lot for any comments!
-- modified at 1:21 Wednesday 24th January, 2007
Jeffrey
|
|
|
|
|
1) Yes. Generally you use one or the other.
2) This blurb from the SDK may help...
"This function (along with SetViewportExtEx and SetWindowExtEx) helps define the mapping from the
logical coordinate space (also known as a window) to the device coordinate space (the viewport)."
Check out coordinate spaces and transforms in the SDK
|
|
|
|
|
Thank you a lot, Mark.
Jeffrey
|
|
|
|
|
Hi all,
we al know the preffered load address of any proj is 0x00400000 and DLL is 0x10000000. now if the OS is unable to use this address it relocates the project.
now i have a need to use the Rva+Base address of all the methods available in a class within a project. One method is reading the map file but say if u don't have the address available so relocation takes place hence the safest way is to dynamicaly obtain it
hence i want to know is there any way of obtaining the base address or the load address of a process. if at all you feel this is not a viable solution then can i obtain the current address from the mangled names like ?show@disp@@QAEXXZ for a public method show belonging to class disp.
undname just gives the resolved name but its of no use in callin a function. so can you people just help me out
for a better idea u can refer
1)Mangled Name[^]
2)Private Access[^]
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
I can't really understand what you're getting at but this code may help:
#include "stdafx.h"
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HMODULE hMod = GetModuleHandle("kernel32.dll");
ULONG_PTR AddressLoaded = reinterpret_cast<ULONG_PTR>(hMod);
PIMAGE_DOS_HEADER pDos = reinterpret_cast< PIMAGE_DOS_HEADER>(AddressLoaded);
PIMAGE_NT_HEADERS pHeaders = reinterpret_cast< PIMAGE_NT_HEADERS>(AddressLoaded+(pDos->e_lfanew));
ULONG_PTR PreferredBaseAddress = pHeaders->OptionalHeader.ImageBase;
return 0;
}
Steve
|
|
|
|
|
Well i'll make myself clearer
#include <iostream>
using namespace std;
class pvt
{
private:
int shouvik,raj;
void sum();
public:
float sdprivate;
pvt(){}
};
void pvt::sum()
{
cout<<endl<<"pvt sum";
}
typedef void(*funcs)();
int main()
{
pvt p;
funcs i;
i = (funcs)0x00401190;
_asm
{
call i
}
i();
return 0;
}
the 0x00401190 what you see is the addres of the private method sum(). I need to access private methods directly and hence I need to know the address of the project its loading.
I'm having a set of classes which I cannot alter(no friend/virtual) as its a critical software and it might contain a private method. I'm to access and know the characteristics of the method to use it in my project. Hence as per my first post i need to know the load address so that I can call the method even if it's not loaded in 0x00400000. hope I clarify your doubt..
Sorry for a km long post;)
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
Why do you want this? This is a wierd way to go about doing things.
Steve
|
|
|
|
|
That's because no other way can i bypass the private method access in C++(perfectly non malicious intention). Read my previous posts in this forum titled private access and as well the links in the first post. I think you will get a better idea
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
Firstly, .EXEs are not relocated as they are the first module loaded and thus always get loaded at their preferred base address. Even if this wasn’t true, or you were working with a DLL, the code I gave earlier can help you. Translate your address into an offset by subtracting the preferred base address from it then add this to the actual base address.
Finally a disclaimer: what you are doing is perverse and I don’t approve of it.
Steve
|
|
|
|
|
Stephen Hewitt wrote: Finally a disclaimer: what you are doing is perverse and I don’t approve of it
well thhis has been a blow in all forums i went.
Ok fine, you mean to say that even if the preferred load adddres is not empty i'm deemed to get my .EXE running there. This might lift a lot of load
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
shouvik.d wrote: i();
if ur going to call a member function of a class like this.. u need to pass the "this" parameter also. Isn't it?
nave
|
|
|
|
|
Exactly...u're correct. I's actually experimenting for past many days and yesterday night ended up like this. Slowly i'll escalate it to OO paradigm. currently my problem is regarding my post only
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
1 simple doubt.. why cant u change the private to public?
nave
|
|
|
|
|
Naveen R wrote: why cant u change the private to public
Read my first post. I said I can't change 1 byte in the source classes
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
Sorry naveen
Read this
Proj details[^]
There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing.
Oscar Wilde (1854-1900)
Regards...
Shouvik
|
|
|
|
|
i am not sure
Suppose ur class have a public function. U can get the address of that function at the runtime. The private function will be also at some address near to it. By adding some value to the address of the public function u can get the address of private function.
nave
|
|
|
|