|
Hi
It sounds like you've got more dangling references elsewhere that haven't been fixed.
In this case, you can try to isolate the functionality in your code, by trying to exercising only certain parts of your application between a startup-shutdown cycle - this way you might discover which part(s) of your app is causing the problem(s). If you can, even try to disable parts of your application by commenting it out and re-building for test.
Trace all threads in your app too, making sure they all close properly.
Good luck
Martin
|
|
|
|
|
Hi!
thanks for your suggestion.seems to me very practical approach.but the problem is where to isolate that.there are so many applications lieing around.if i give you very brief example by just explaining the scenario:
1. mainapp1
2. mainapp2
both kics off following OLE Servers
1. OLEServer1, which Kicks off OLEServer2 ( this is the server which most of the time come up with XP dialog showing nonresponsive program click End ).
though we proved that disabling the OLEServer2 completely solve the problem and error never happend. but my sneaking suspicion is its not the OLEServer2 who is causing its MainAPP1/MainApp2 or OLEServer1, which instantiating OLEServer2 causing the dangling pointer.
Where do you think problem lies?and how to isolate this.
thanks in advance.
|
|
|
|
|
Going on your hunch, I'd say you should look at OLEServer1's use of OLEServer2 - might be that it's not releasing a reference.
If you suspect that it's a COM reference, you can change reference access to use smart pointers, if you're not already - also provided it's worth the change (I don't know how many such cases there are).
If you're using ATL, you can turn on _ATL_DEBUG_REFCOUNT, _ATL_DEBUG_INTERFACES, but these trace to the debug output window, so if you're turning the machine off, output is lost (unless you find a way to stop powering down).
Also play around with stopping the 2 apps by hand (and checking with the Task Manager to see if they're still running). Play around with the order in which the 2 apps are stopped.
Martin
|
|
|
|
|
Hello,
Who can help me ?
What are differences beetween database and recordbinding ?
Thank you
|
|
|
|
|
Looking for a way to generate unique keys on clients in a network. Currently its done via a request to a server which assigns the keys, but want to move to a system where the client assigns them, to take a load of the server, and to allow for a redesign.
Its a controled network. Looked at GUID's but I'm not satified with the size of the key, and the potential time in creating something so bulky.
Anyone had a similar problem. Thought about a hybrid where a client can request a group of keys in advance as well.
Any ideas welcome.
The reason is that the request latency can be reduced in half by using a client generated key, which is useful, as instead of doing 2 things in sequence, they can then be done in paralel. The first server request does need the key (but does assign the key), and the second needs the key, but lives on a number of different servers. Server aggregation is not an option.
|
|
|
|
|
Hi
The 'pattern' here is choosing whether to have;
a) unique ids generated by a central authority (and relative to itself) -
eg. having an autoincrement id in a database table, or similar -
or...
b) generate unique ids that are absolute
(using UuidCreate/UuidCreatSequential) - can be created anywhere
and doesn't require contacting an authority
Option a) in a distributed environment not only introduces a bottle-neck (consider many clients asking for ids, or even ranges thereof, at the same time), but also in terms of performance cannot compete with client local GUID generation (network time typically cannot compete with local CPU/HW time).
Unless the GUID generation causes a technical barrier, or you require ids with predictable values, I suggest you use it.
Also, you might want to design it such that you can afford to start using GUIDs now, and capitalise on this known, proven feature in your implementation, and at a later stage, if you still find the performance or size of the ids too large, change it to something bespoke without compromising the design. In other words, ids are opaque and of variable size.
HTH
Martin
|
|
|
|
|
Do you know of any platform indepedent versions of UuidCreate & UuidCreatSequential?
Would need to work in a consitent manner across, Windows, Linux & Solaris.
|
|
|
|
|
|
Hello,
i want to increase the height of the header of a listcontrol without affecting other rows.
please help me.........
thanks
|
|
|
|
|
Hi
I've had a look at this, and can see no way - the CHeaderCtrl retrieved from the CListCtrl has facility for only adjusting the width of a column.
You'll have to look at owner-draw.
Martin
|
|
|
|
|
Hi
I´m doing some basic serial communication vith Visual C++ .NET.
Reading from the serial port with the ReadFile command:
BYTE Byte;<br />
ReadFile (hPort, &Byte, 1, &dwBytesTransferred, 0);
I have some problems displaying what I read....With the "cout" command this worked fine:
cout<<Byte;
However, with a Windows Forms Appl. I need to output the readout with
this->Textbox1->Text = Byte;
With this I get an error message, saying "cannot convert from BYTE to String"
How can I convert this BYTE variable in order to make it compatible?`
regards,
doneirik
|
|
|
|
|
Try this:
char buff[3] = "";
sprintf(buff, "%X", Byte); // Display in hex (or choose whatever format you prefer)
this->Textbox1->Text = buff;
Hope it works!
Regards
Mahendra
|
|
|
|
|
|
Hi.
First problem solved and soon I encountered the second.
So at this point my SDI program is able to open a BMP and show it on the screen. In an modal dialogue it is possible to give some borders to only show a part of the actual BMP File...
What I want to do is to save this part in a new file...
One of my books suggest just to change the two used device contexts MemDC and pDC to print from the screen in the memory...
I tried to do it this way but because of my c++ abusing I don't get it to work properly.
This is the line which prints the bmp on the screen. Width, Height, TLCx and TLCy are the variables i can manipulate to show only the important part of the picture...
pDC->BitBlt(0,0,g_Width,g_Height,pMemDC,g_TLCx,g_TLCy,SRCCOPY);
The code i plan to use is something like... make a new bitmap object and fill it with the shown bmp... to do this i use
MemDC.BitBlt(...)
Is this a possible approach for the problem or am I totally wrong ?
Best regards,
Helge.
|
|
|
|
|
Noone ever tried something similar? I am really not sure whow to solve this problem...
Would really appreciate any help...
Helge.
|
|
|
|
|
i am trying to design a client-server application
the code for sending & receiving is as follows
void CSocketDlg::OnBsend()
{
int iLen,iSent;
UpdateData(TRUE);
if (m_strMessage=="")
AfxMessageBox("Please type the name of the file");
else if (m_strMessage!=" ")
{
iLen=m_strMessage.GetLength ();
iSent=m_sConnectSocket.Send (LPCTSTR(m_strMessage),iLen);
if(iSent==SOCKET_ERROR)
{
}
else
{
CFile file(m_strMessage,CFile::modeRead|CFile::typeBinary);
char s[1025];
int totalBytesRead,bytesRead,len,flag=0;
//strcpy(s,"c:\\program files\\microsoft visual studio\\my projects\\Alka.txt");
//len=strlen(s);
totalBytesRead=0;
int length=file.GetLength();
//iSent=m_sConnectSocket.Send (LPCTSTR(s),len);
flag=1;
while(totalBytesRead<=length && iSent != SOCKET_ERROR && flag==1)
{
bytesRead=file.Read(s,1024);
s[bytesRead]='\0';
totalBytesRead+=bytesRead;
//m_ctlSent.AddString (s);
iSent=m_sConnectSocket.Send (LPCTSTR(s),bytesRead);
UpdateData(FALSE);
}
}
}
}
but iam unable to design for multiple requests. application is a MFC Dialog based application
Alka Kashyap
|
|
|
|
|
Hi all:
How can I get debug information through TRACE() or other similar macro in Win32 applications?
I added TRACE() in the source code and also include the "AFX.h".In the project setting I choose the "use MFC in a static library"? But it cannot pass the compilation!
|
|
|
|
|
The nearest equivalent would be to use AllocConsole() and write any debug strings to its handle. I have used this method in the past
If you vote me down, my score will only get lower
|
|
|
|
|
Hi
Including <crtdbg.h> gives you;
_RPT0, _RPT1 .. _RPT4, _ASSERT, et al
These are the primitives of TRACE and ASSERT.
I always use it like so, for example;
_RPT1(_CRT_WARN, "## blah = '%ls'\n", sz);
HTH
Martin
|
|
|
|
|
Have you considered OutputDebugString() ?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Iam getting count(data type is DWORD) in milliseconds .I have to convert into Date and Time format (dd:mm:yy hours:min:sec:milliseconds) and display it in a List view.Iam unable to get a function which serves my purpose in vc++.
|
|
|
|
|
Hi
Have a look at the COleDateTime class
Martin
|
|
|
|
|
Unless this count is the number of milliseconds that have elapsed since a certain period of time, what you are after does not exist. Otherwise, have a look at FileTimeToLocalFileTime() , FileTimeToSystemTime() , LocalFileTimeToFileTime() , et al.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi all,
I got a problem when I use NetUserGetInfo(...), can anyone help me?
There's a Domain and a WorkGroup in LAN, a client in Domain wants to get user info from a server in WorkGroup by NetUserGetInfo(). The client loged in with Domain user ID:"MyName".
When I call NetUserGetInfo, the following cases appear:
Server also has a Local user id: "MyName", but its psw diff from Domain user "MyName":
NetUserGetInfo fail!
Server also has a Local user id: "MyName", and its psw is same with Domain user "MyName":
NetUserGetInfo success!
Server does not have Local user named "MyName":
NetUserGetInfo success!
I'm wondering that how does these take place. Will a domain user ID and a same ID in a workgroup cause any trouble?
thanks a lot.
|
|
|
|
|
I am creating a 2x2 spllitter window in a SDI application.
// OnCreateClient of SDI Frame Window
...
VERIFY(m_wndSplitter.CreateStatic(this, m_rows, m_cols));
...
I want every pane to be of the same size (plus-minus 1 pixel). In
OnSize I do something like:
// OnSize of Frame Window
...
m_wndSplitter.GetClientRect(rect);
int row_height = rect.Height();
int col_width = rect.Width();
row_height /= 2;
col_width /= 2;
m_wndSplitter.SetRowInfo(0, row_height, 100);
m_wndSplitter.SetRowInfo(1, row_height, 100);
m_wndSplitter.SetColumnInfo(0, col_width, 100);
m_wndSplitter.SetColumnInfo(1, col_width, 100);
m_wndSplitter.RecalcLayout();
...
HOWEVER probably due to the "splitting margin" or border
between panes, the pane(0, 0) is larger than the other panes
with a difference of about 11 pixels in size. Other than
"manually" accounting for the border thickness, is there
a better way of making the panes same size.
Thanks in anticipation.
|
|
|
|
|