|
Hmm, there are a couple things that i can think of anyways.
If you have the DLL working in both projects already with shared memory, you can either poll a variable in your c++ code (a byte set to 0 for no-change or haschange). You can do this as little as once a second or in a tight loop depending on your needs. Not generally a good idea though, so i recommend:
Sending a windows message with PostMessage/SendMessage.
PostMessage is will return as soon as the message is dispatched, sendmessage waits for recipt confermation. Only use sendmessage for intra-process for deadlock reasons. So your left with PostMessage.
you can PostMessage an address in the DLL, or simply use the fact that the message has been sent to check pre-defined areas in the DLL. Either way is a good way of going.
Post/sendMessage can only send two 32-bit numbers, so you cant send a string. You could try packeting through the message pump, but thats just plain silly.
// Rock
|
|
|
|
|
There are some other (more efficient) methods too: Events, Pipes, Mailslots, etc.
Simplest solution is to prepare the data and raise an event. The receiving DLL will WaitForSingleObject/WaitForMultipleObjects on that event. And then requests/reads the data.
No polling, no SendMessage/PostMessage. Additionally you can secure the communication by using object level security.
At the same time you gain also real synchronization between sender/receiver.
|
|
|
|
|
Thanks for your kind help, I got it to work correctly
|
|
|
|
|
Hi,
I've allowed my MDI application to have a web browser by using the CHtmlView class. A problem I am having is that when a web page launches a seperate window it is started outside my application in Internet Explorer, which isn't so much of a problem. The major problem is that if I log in to my account on this site and then an extenal window is launched it loses it's cookie and says the session has timed out. Do I need to set a cookies directory or something?
Thanks
|
|
|
|
|
anyone? please????
|
|
|
|
|
Can someone tell me if a problem i seem to be having(if it is a problem) is a problem? When i
Allocate and reAllocate and the memory grows in size, i can't downsize the allocated memory when it's no longer needed.
Meaning...If i start at 8 bytes and it grows to 32...no matter how i call
ReAllocate, even if i specify the size as 0 it stays at the last size According to GlobalSize anyways...
Is this a problem...?
TIA
"An expert is someone who has made all the mistakes in thier field" - Niels Bohr
|
|
|
|
|
According to MSDN, GlobalRealloc should not be used, for reasons of speed as much as anything, unless you're doing something with DDE or the clipboard.
Generally speaking ( assuming you're not using DDE or the clipboard ), you should prefer the C++ memory management functions unless you're programming in C.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
I have dialog base application(MFC).
I want my dialog be hidden.when I use:
showwindow(SW_HIDE);
nothing happend??
I also use this in InitInstanc():
CDlg dlg;
m_pMainWnd = &dlg;
m_pMainWnd->ShowWindow(SW_HIDE);
but run time error happen???
|
|
|
|
|
The above code creates an instance of a dialog box, but does not initialise it. You can't show or hide a window that has not been created.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
There's an article on CP describing how to DoModal() on a dialog and have it hide immediately.
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
Jon Hulatt wrote:
Sorry to dissapoint you all with my lack of a witty or poignant signature.
lol
Put quotes around it and you're there...;)
(sorry - I just couldn't resist it!)
Andy Metcalfe - Sonardyne International Ltd
Trouble with resource IDs? Try the Resource ID Organiser Add-In for Visual C++
"I would be careful in separating your wierdness, a good quirky weirdness, from the disturbed wierdness of people who take pleasure from PVC sheep with fruit repositories."
- Paul Watson
|
|
|
|
|
Would u please tell me the link?
Thanks a lot
|
|
|
|
|
I don't know if Jon was referring to this post of mine, but anyway there you'll find how to have your dialog hidden on startup.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
|
Why would you want to? compilation of file order is irrelevant!?!
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
The order maybe bases on your head files' order.;P
|
|
|
|
|
Hello,
I have a MDI app. and in the status bar I have a progress control.. The problem I am having is when ever a long function is taking place my app freezes until the function is finished (because of the progress control). If I remove the progress control everything is fast and smooth.. How can I create a progress control in the status bar with out killing my application performance? Here is a sample of the code I use to create the progress control.
void CMainFrame::DownloadProgress(long nProgress, long nProgressMax)
{
RECT MyRect;
m_wndStatusBar.GetItemRect(1, &MyRect);
if (m_bCreate == FALSE)
{
m_Progress.Create(PBS_SMOOTH | WS_VISIBLE | WS_CHILD
, MyRect, &m_wndStatusBar , 1);
m_Progress.SetRange(nProgress,nProgressMax);
m_Progress.SetStep(1);
m_bCreate = TRUE;
}
for (int i = nProgress; i < nProgressMax; i++)
{
m_Progress.StepIt();
}
}
Any pointers?
Thanks,
Rob
|
|
|
|
|
It sounds like you're doing everything in one thread, no? If so, read the VC forum FAQ (link at the top of the page) that addresses your question.
--Mike--
"Why you keep calling me Jesús? I look Puerto Rican to you?"
-- Samuel L. Jackson in Die Hard 3
My really out-of-date homepage
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan.
|
|
|
|
|
You were correct, I am in a single thread.. Thanks for the post, everything works great.
Rob
|
|
|
|
|
Could anyone help me with the following expressions?
n5-=7+2/3*10
and also
f2=10.0-18.0/-3.0*2.5e-1
Geoffrey A Overley
|
|
|
|
|
Did you try writing a small program to see what results you would get?
Jon Sagara
What about ?
|
|
|
|
|
ok. saying "n5 -=" is equivalent to saying "n5=n5-". the rest of it is down to operator precedence. see "operator presecence" in MSDN.
but, you can make that expression clearer by writing it like this:
n5=n5- 7 + (2 / (3 *10)) ;
why? because in VC++, / has higher precedence that +
the second expression:
f2= 10.0 - (18.0 / (-3.0 * 2.5e-1));
In both cases, i suspect you're getting a different answer than you intended, due to operator precedence. It's good practise to always specify precedence with ()'s.
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
Jon Hulatt wrote:
n5=n5- 7 + (2 / (3 *10)) ;
This is wrong. It evaluates as I said in the lounge - 2 gets divided by 3 and the result multiplied by 10, so that part comes to zero ( because 2 and 3 are not floats ), but if it gets made 2.0 and 3.0, you get 6.666(10 * .66666), not 0.0666 (2/30). / and * have equal precedence, left to right.
So the correct way to use brackets to show order of operation is
7 + ((2/3)*10)
and the 2 and 3 should be floats in order to get an answer other than 7.
Also, are you recommending not using -= here, or am I misreading you ?
Jon Hulatt wrote:
f2= 10.0 - (18.0 / (-3.0 * 2.5e-1));
Again, this is wrong - put it into a console application and see for yourself. The result is 11.5, not 34 as your bracketing would evaluate to.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
That'll teach me to read the doc's more carefully. I forgot that * and / had equal precedence, in left-to-right order.
I wasn't recommending not using -= at all. from the guys original post it wasn't clear exactly what he was having trouble with.
Anyway, my incorrect answer to the question highlights why it's a good idea to always enforce your own precedence using ()'s. Especially if you use different languages frequently where precedence varies.
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
Jon Hulatt wrote:
Anyway, my incorrect answer to the question highlights why it's a good idea to always enforce your own precedence using ()'s. Especially if you use different languages frequently where precedence varies.
Absolutely - I use a lot of brackets especially in the case mentioned, where a multiply happens after a divide. It's always better to have brackets show what you assume will happen, just in case your assumption is wrong.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|