|
Hi
I am working in vc++. I have a library(dll) and a Test application(.exe) which uses this .lib file. I have a function(Thread function) in the dll which has to insert data into a circular linked list . This linked list should be accessible in the test application, and the test application should simultaneously be able to take the inserted data in the dll from the linked list and display in list ctrl.
The linked list should be used as a global interface between the test application and the library. As such, both modules should have a pointer to this linked list.
How can I do this? Can anyone please guide me? I never worked with this kind of application.
Thanks in anticipation of information.
Madhavi.
|
|
|
|
|
Hi,
You can use "Memory Map Files" - Share Memory
Look out for API "CreateFileMapping","MapViewOfFile","OpenFileMapping" etc.
It might will help you !
Regards,
Vishal
|
|
|
|
|
In your dll, just add a function that will return a pointer to the linked list.
One thing really important is that every memory that has been allocated by the dll (with new), must also be destroyed inside the dll, and all the memory that has been allocated by the exe must be destroyed by the exe.
Hope this helps
|
|
|
|
|
Hi guys ,
the other day i was developing a game(the snake game, as in Nokia cellphones) in a dialog based application.
I encountered a serious problem , when i wasn't able to track the keyoard events for the arrow keys(VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN). I have used all possible means, like
OnKeyDown()
and OnChar()
but there is no result .
Can anyone tell me where i am going wrong.
Thanx in advance.;)
AslFunky
|
|
|
|
|
Hint: Handle PreTranslateMessage(MSG* pMsg) filter the message WM_KEYDOWN
ARSALAN MALIK
|
|
|
|
|
Thankx for replying.
I think i am understanding what you are talking about.
I have checked the MSDN and it has three versions of PreTranslateMessage(), namely:
CWinApp, CWinThread and CWnd.
It certainly cannot be CWinThread. Which of the remaining two should I handle? I hope it is the CWinApp!
Can i do it as:
BOOL bHandleNow = FALSE;
switch (lpmsg->message)
{
case WM_KEYDOWN:
switch (lpmsg->wParam)
{
case VK_UP:
case VK_DOWN:
case VK_LEFT:
case VK_RIGHT:
bHandleNow = TRUE;
break;
}
if (bHandleNow)
OnKeyDown(lpmsg->wParam, LOWORD(lpmsg
->lParam), HIWORD(lpmsg->lParam));
break;
}
return bHandleNow;
Please, it would be a lot of help.
Thanx in advance;)!
AslFunky
|
|
|
|
|
For dialog based MFC application, add PreTranslateMessage as virtual function from class menu.
ARSALAN MALIK
|
|
|
|
|
Oh, you got it all wrong.
What i meant was, which class's PreTranslateMessage() should i override, since PreTranslateMessage() is a virtual function in three classes.
Anyway, i have got the answer, we must override the CWnd class's function.
Thanx a lot for helping me out.
That was a real relief
/--------\
|AslFunky|
\--------/
|
|
|
|
|
maybe u dont get the keyz coz u have some other (control or) window on ut dialog box......
that can be the reason,have u tried SetFocus()???
hope that helpz.....
happy programmin.....
cheerz.....
|
|
|
|
|
Hi,
thanx for replying.
Yes, i have tried using SetFocus(), but that doesn't work.
Anyway, Arsalan Malik has given the right solution. We must override the virtual function PreTranslateMessage() of the CWnd class.
In this code we have to return a TRUE for the keydown messages if they are VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT. These are stored in the HIWORD and LOWORD of the message of the lpMsg paramater.
Please refer to MSDN if you cannot get this. It is quite clear there.
Thanx anyway.
Bye
/--------\
|AslFunky|
\--------/
|
|
|
|
|
hi,everyone.
i create a static library (mystalib.lib)which contains dialog resources,
and i use this library in an application, but i don't know how to use the dialogs in the library properly:
i specify the mystalib.res file in the project setting->link-> object/modules, and the complier reports a warning:
the mystalib.res already specifed,additional resource file ignored
but the result is that mystalib.res has been linked to the final executable ,and the resource of my application is igored,so my application can't start.
what's the reason for that , and how to link the mystalib.lib with my application properly?
Thanks.
|
|
|
|
|
Any body please tell whats the difference between keyword and reserved word
and also tell that if,else,while are keywords or reserved words
Please reply thanx
ihtesham
|
|
|
|
|
|
Hello.
Is it possible to know the place where cursor is placed in vscroll from WM_NCLBUTTONDOWN.
Thanks.
-Freehawk
|
|
|
|
|
2 solutions:
1. call GetCursorPos()in your WM_VSCROLL handler, you'll get the point in screen coordinate.
2. Inherit CScrollBar in MFC, handle messages involved some mouse actions within the new class. And then declare a control variable with type you just defined for your scroll.
|
|
|
|
|
Hello everyone:
I have a tree window, before scroll to the last line, I want to delete the tree and re-install it, and then scroll. For to do it, I want to get WM_VCSROLL before OnVScroll() is called.
1.I tryed to get the msg in PreTranslateMessage, but WM_VSCROLL is not sent into the function.
2.I tryed to get the msg in WinProc, but I cannot.
How to get it? Thank you.
-Freehawk
|
|
|
|
|
WinProc? You program in WIN32?
Did you mean DefWindowProc()?
Anyway, that's not important.
I guess this problem is because your message is sent to another window. Under the MFC framework, all messages would be sent to DefWindowProc( ) if their message handler are not defined (Ex: user defiend messages ). So your problem sounds quite strange...;P
( In Win32, you need to define all message handlers if you want to do something when these messages are sent. Otherwise, DefWindowProc( ) would be called. )
In addition, in Visual Studio you can use a tool Spy++ to "SPY" any message in your window.
I hope that will help. Good luck!;)
|
|
|
|
|
hi all,
I have created a exe using MFC. Now I want to execute it when starting the Windows...
If any one know that please reply me ..
Thanks in advance..
|
|
|
|
|
Just make a shortcut in the start>programs>startup
<italic>Work hard and a bit of luck is the key to success. You don`t need to be genius, to be rich.
|
|
|
|
|
Add path (string value) of your exe to following location in registry:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
ARSALAN MALIK
|
|
|
|
|
Add path of your exe to following location in registry:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Regards,
Vishal
|
|
|
|
|
Looking for code to create / control a color palette similar to Corel's color toolbar controls.
Thanks in advance
Tony Teveris
Gerber Scientific Products
Senior Software Engineer
Phone: 860 648 8151
Fax: 860 648 8214
83 Gerber Road West
South Windsor, CT 06074
|
|
|
|
|
|
How do I do exponents in C++? If ^ is XOR...
|
|
|
|
|
Use the pow() function.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|