|
Just a quick question. When the exe is built as Multithreaded, should the dll's also be multithreaded or does it not matter?
|
|
|
|
|
all modules should be in parallel
Kuphryn
|
|
|
|
|
Yes, they should be. For such things as the C-Runtime library (the library that contains the implementation for things such as fopen and errno), there are slight differences in how some things are done. For example, in a single threaded CRTL DLL, memory management probably isn't locked so two threads don't try to allocate memory at the same time (due to the threads sharing the same core memory allocation tables). Even simple things such as errno and strtok are implemented differently in a single threaded CRTL.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
It depends. If you’re not sure just make all of them multithreaded.
If the main .EXE is multithreaded but only makes calls to a DLL using one of these threads and the DLL is single threaded itself then it need not be compiled with the multithreaded libraries.
Steve
|
|
|
|
|
Tell me if what I say below makes sense and is possible.
There is a program (matlab) that makes plots. Currently (as far as I can work it) it can either just display the plot or save it to the hardive. Well I want to display the plot on my separate application. Here are two ways I have done it - also, please note, the graph is real time data so it is refreshed every millisecond or so. When I was generating the graphs as displays (ie not save image to HD) I would - in my external app - take a screenshot of the plot and display it on my app. This was fast enough, etc but I doesn't work if the app is minimized or covered up. So, then I went towards the save image to HD method, this worked great, except it was kinda slow, especially if you're running it on a laptop harddrive.
So, currently both my solutions have their limitations. Here is my question. Ignoring whether the fact matlab even has the functionality to do this, I would like to save the plot to memory! Does this make sense? I just want to save the bytes somewhere in the RAM! Then I would like to read it in my external app and construct an image out of it. So, I guess serialize the image to memory then deserialize it to an image. Is this feasible?
Can anybody else think of an efficient way of gettting this plot from matlab?
P.S. The plot is hosted in a SunAwtCanvas (thanks to spy++)
/\ |_ E X E GG
|
|
|
|
|
Actually, I just found a function in matlab that lets you save the plot to the clipboard! So, I guess that's the easy way out...
/\ |_ E X E GG
|
|
|
|
|
Fundamental? Not to C or CPP development. Your question sounds like greek to me, I'm not the moderator of this forum, but I would think that posting Matlab questions here is stretching it a bit! I always viewed MatLab as 'Basic on Steroids', maybe I am a bit harsh here, but I do not think that you're in the right forum here, and that you may get better advice in a Matlab forum!
best of luck
LateNightsInNewry
|
|
|
|
|
typedef UpdateHandler* UpdateHandlerPtr;
I saw this code in a project file but I couldn't find what the definition of UpdateHandler is. It is not defined anywhere. Only thing I found on UpdateHandler is the code below
What does the syntax below do?
typedef void UpdateHandler(ObjectRootPtr, const RTI::AttributeHandleValuePairSet&);
|
|
|
|
|
Jay03 wrote: typedef void UpdateHandler(ObjectRootPtr, const RTI::AttributeHandleValuePairSet&);
That is the definition of UpdateHandler. This syntax is creating a function pointer. For more information, look up callback functions and function pointers.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Isn't it a declaration? It's interesting - I wonder how the compiler parsed out the fact that it is not typedef'ing void?
A cynic is a man who, when he smells flowers, looks around for a coffin. -H.L. Mencken
|
|
|
|
|
The problem is that function pointer syntax is bizarre (sorry guys it is). In this example you are typdefing a function pointer that returns void and two parameters (ObjectRootPtr, const RTI::AttributeHandleValuePairSet&) to the name UpdateHandler. It does look wierd, but it works.
On those occasions I need function pointers, I always have to look at an example because I can never quite remember it.
|
|
|
|
|
And it's going to show up on one of the awful employment tests that they give us.
A cynic is a man who, when he smells flowers, looks around for a coffin. -H.L. Mencken
|
|
|
|
|
From experience, I can tell you that it will if you ever apply to Amazon.com. Just an FYI.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Thanks,
This brought some clarity on function pointer to me and i think this is a better of doing it. I hope this method is supported in most all compilers.
typedef int FunctPtr(int,int);
....
main
{
FunctPtr *fp = somefunction; //This declaration is clearer that fp variable is a pointer.
fp(...);
}
typedef int (*FuctPtr1)(int, int); //sometimes looks confusing as what is happening.
and
FuctPtr1 c = somefunc;
-- modified at 4:03 Thursday 17th August, 2006
-- modified at 4:04 Thursday 17th August, 2006
-Prakash
|
|
|
|
|
Zac Howland wrote: This syntax is creating a function pointer
Won't it be typedef void UpdateHandlerPtr (ObjectRootPtr, const RTI::AttributeHandleValuePairSet&);
or typedef void (UpdateHandler*) (ObjectRootPtr,const RTI::AttributeHandleValuePairSet&);
|
|
|
|
|
typedef void UpdateHandler(ObjectRootPtr, const RTI::AttributeHandleValuePairSet&);
is syntaxically equivalent to writing
typedef void (*UpdateHandlerPtr)(ObjectRootPtr, const RTI::AttributeHandleValuePairSet&);
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
I Suggest you read the Book by Brian W. Kernighan & Dennis M. Ricthie: the C Programming Language This book is Much maligned, but actually very good! It spells out the Syntax and methods of the C Language, without going into the legalities, like the ANSI standard does! On page 122 of my copy it gives paragraph 5.12- Complicated Declarations. It explains there in lucid details how to read your declaration, and gives the code for a simple program which takes a declaration, and translates it back into 'english'
Success
LateNightsInNewry
|
|
|
|
|
Hello guys,
I am quite new to mfc and it seems there are tons of questions about it and little that I can get out of the documentation provided by microsoft, so hope someone with more exp can answer it for me.
Right now, I have several dialog bar in my app, all have been set according to how I want it to be, except, one thing that confuse me, when I drag one bar, I can't seem to reflect the mouse position onto the other bars, how do I obtain the mouse position while still dragging a dialog bar, from another dialog bar. thx...
LE
|
|
|
|
|
How about using GetCursorPos() which fills out a POINT structure
|
|
|
|
|
I did tried with GetCursorPos(), but fails and it seems that this would be the case,
When a user drag the dialog bar around, the mouse is captured by this bar, so any attempt to have the mouse sent any information to another dialog bar would be impossible.
I have written functions overriding those MouseDown, MouseUp, etc, to call GetCursorPos() but it still fail. Once the mouse is clicked and drag on a bar, these functions will not be called.
I wanted to detect the mouse, while it is dragging a bar, when it enters/over another bar...so the first bar would be dragged around, and the second bar will be the one doing the detection.
|
|
|
|
|
could you derive a class from the dialog bar (since it has the mouse cpatured) and in the MouseMove of the derived class pass the position eith up to the parent and the parent can pass it on to the other dialog bar or directly to the other dialog bar?
cje
|
|
|
|
|
hi again guys,
I have derive my bar class directly from dialogbar, called it dialogcontrol.
Shown here....portion of
//////////////////////////////////////////////////////////////////////////////
class CDialogControl;
typedef CTypedPtrArray <cptrarray, cdialogcontrol*=""> barArray;
class CDialogControl : public CDialogBar
{
// Construction
public:
void DrawWindowText(CString p);
bool AutoResize();
CSize vert ,horz;
virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode);
CDialogControl(); // standard constructor
// m_dialogBarArray theBar;
// Dialog Data
//{{AFX_DATA(CDialogControl)
enum { IDD = IDD_ControlDialog };
CStatic m_Text;
//}}AFX_DATA
//////////////////////////////////////////////////////////////////////////////////////
Also, for the .cpp, I overide those mouse events as normally done...
//----------------------------------------------------------------------------------------
void CDialogControl::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialogBar::OnLButtonDown(nFlags, point);
}
void CDialogControl::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialogBar::OnMouseMove(nFlags, point);
}
void CDialogControl::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialogBar::OnLButtonUp(nFlags, point);
}
//-------------------------------------------------------------------------------------
I tried the method you have mentioned, by "obtaining the mouse position while moving and pass it to the parent", trouble is, when the dialog bar is dragged, the mousemove event do not respond, so whatever operation I put in the OnMouseMove method (same thing for the LButton), it dont compute.
I have found out in some article, it says when the dialogbar is dragged around, the mouse is captured by a CDockContext class and mouse messages such as WM_MOVE, CLICK, etc, is process there, not in the bar itself, so I guess the question I got now is, how do the rest of my dialog bar listens to the mouse events through this cdockcontext...the article do not go on this detail I needed...hopes someone would tell me how. thx for the effort guys, appreciate it alot..
Lucky
|
|
|
|
|
When you derive a class, you do not re-declare the base functionality! That's already in the original class. By re-declaring you override! Strip the guts out of your header, and you stand a better chance!
LateNightsInNewry
|
|
|
|
|
when you say "re-declare the base functionality", did you mean the calcfixed and calcdynamic?
can you explain a bit more..thx
|
|
|
|
|
See GetMessagePos and
GetCursorPos<c doe=""> <br />
<br />
<div class="ForumSig"><font size="2" color="#99ff66"><hr></font><div style="padding: 2px; text-align: left; color: rgba(255, 255, 255, 1); width: 80px"><font size="2" color="#99ff66">WhiteSky<br />
</font></div><hr></div>
|
|
|
|
|