|
I was looking at the task manager to see if I was leaking anything in my app. I saw GDI Objects increment when I did stuff. But it didn't decrement as much as it increment when I undid the previous operation.
I quickly created a WTL application using the WTL wizard, executed it and opened the about box. It didn't decrement fully either.
So, my question is; should I worry or is Windows garbage collecting GDI objects for later disposal?
--
...Coca Cola, sometimes war...
|
|
|
|
|
Hi Jörgen,
I'm afraid I can't answer your question, but a tool I find very helpfull for finding leaks and even more so for code profiling is Glowcode at www.glowcode.com[^] Prety sure they have a trial version.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
I visited their web site, and they mention they are better and faster than Boundschecker. Do you know how true that claim is?
--
...Coca Cola, sometimes war...
|
|
|
|
|
Jörgen Sigvardsson wrote:
I visited their web site, and they mention they are better and faster than Boundschecker. Do you know how true that claim is?
I haven't used BC in quite some time so I can't comment. GC has been around for a long time and gets better with each release. My main use is its profiling which from memory BC didn't (doesn't) have. I find this alone is invaluable for quickly finding cpu intensive code.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
I also do a lot of COM stuff, and I can't find any references to COM instrumentation.
--
...Coca Cola, sometimes war...
|
|
|
|
|
Jörgen Sigvardsson wrote:
I also do a lot of COM stuff, and I can't find any references to COM instrumentation.
I don't know. Don't do much COM. Try the trial version.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
the GDI objects often occurs, when I forgen to destroy a font, or to select back some items to a DC.
|
|
|
|
|
Depends, if the GDI count climbs to a certain level, and then stays there, I wouldn't worry about it. If it keeps on climbing then you definitely have a GDI leak that you have to deal with or your app will eventually crash.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
Uh huh. I will get right on it tomorrow. After some afterthought on my way home from the office, I think I know where the leak is.
--
...Coca Cola, sometimes war...
|
|
|
|
|
I need to store function pointers with same return type and arguments, but from different classes, in a stl map, like this:
<br />
void(classA::*)(istringstream&)<br />
and
<br />
void(classB::*)(istringstream&)<br />
in the same map (in another class, classC).
is this possible? If so, how is it done?
|
|
|
|
|
|
Does anyone know what determines the LOGFONT values received by the EnumFontFamExProc callback function (for TrueType fonts). At least on my test system, it is not affected by current dpi settings. It's easy to calculate the point size for the values received but I do not appreciate any patterns. For example, some fonts have values that are related to 24 point and others to 12 point.
Are they values embedded in the *.ttf file?...perhaps related to a master glyph size?
|
|
|
|
|
is there a way to format the string?
when I have multiple lines of names like this:
abc defg
abcde fghij
i have been trying to make them line up vertically but couldn't.
Any advice is appreciated
|
|
|
|
|
Maybe try using tab characters (encoded in source using '\t')...
abc\tdefg
abcde\tfghij
You can set the tab width using the
BOOL SetTabStops( int nTabStops, LPINT rgTabStops );
function of CListBox. See MSDN for more.
Best regards,
Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
(doesn't work on NT)
|
|
|
|
|
A quick fix would be to set the listbox control's font to a monospaced one. You may also want to consider using a CListCtrl.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
I guess the title says it all:
If I have a resizable window, how can I make it refuse to resize (that is, the cursor can move but it doesn't change the window size) if a window woulde become too small? I know how to detect the last thing, but not how to stop resizing.
|
|
|
|
|
Handle WM_SIZING and check the lParam value. If the RECT gets too large or small, change it accordingly.
--
Andrew.
|
|
|
|
|
Handle the WM_GETMINMAXINFO message (CWnd::OnGetMinMaxInfo()).
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
Most books tell us how to work with an existing database using Visual C++. Using ODBC or ADO you must set not only database provider, but also a data source. But how can I create new database connecting to different database providers, for example MS SQL Server, MS Access or MySQL?
Salaris
|
|
|
|
|
For MySQL:
m_pDB->Execute("CREATE DATABASE newDatabase;");
m_pDB->Execute("use newDatabase;");
// m_pDB is an CDaoDatabase connection
Ivan Cachicatari
www.latindevelopers.com
|
|
|
|
|
I have used the adox class found at http://www.codeproject.com/database/caaadoxclass.asp[^] to create access databases.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
Hi again,
>I need to pass to CDaoDatabase::Open(lpszName,
> bExclusive , bReadOnly, lpszConnect) as lpszName
> and lpszConnect ?
You need connect to mysql server, and necessarily select an database. In this one case you can use the data base 'test' installed by default.
To connect use this (need mySQL ODBC 3.51 driver):
CString strConnect = _T("Driver={mySQL ODBC 3.51 Driver};Server=MyRemoteHost;"
"Port=3306;Option=4;Database=MyDatabase;Uid=MyUsername;Pwd=MyPassword;");
m_pDB->Open(NULL,FALSE,FALSE, strConnect);
Ivan Cachicatari
www.latindevelopers.com
|
|
|
|
|
hai,
i am using directx for previewing video from a webcam.but i am not able to store it in my harddisk.how could i do that using directx in vc++.if anybody had done this before,please send the code if possible or give me the guidelines to do so. i am using icapturegraphbuilder2 for previewing the video .if any body can help me ,please help me. my email id is jomuttada@yahoo.com
thank you
jo
Programmer in VB, VC
|
|
|
|
|
I'm trying to translate virtual key codes into strings. I've found that one can translate the virtual key code into a scan code, and then convert the scan code into a string using GetKeyNameText() . GetKeyNameText() works 90% of the time as I'd like. The other 10% confuses the user. For instance, Insert is translated into NUM 0 and Delete into NUM DECIMAL.
I can understand why as scan codes are the "ultimate truth". Since there may be more than one scan code per virtual key (there are two deletes on the keyboard since the AT-model), it has to choose one. I think it chooses the numeric key because of legacy (old XT-keyboards).
Anyway, does anyone know a good way to translate virtual keys into strings? Or do I have to do it manually? ( )
[edit]I think I could specialize the translation for all keys which have doubles. The doubles are those which resides both on the numeric keyboard and the alphanumeric keyboard.[/edit]
(I am going to use the strings in menus to highlight accelerators, if that explains my problem any clearer)
--
...Coca Cola, sometimes war...
|
|
|
|
|
Not that it helps you any, but I think the problem is with your keyboard driver. According to MSDN the driver maintains a list of the key names, and GetKeyNameText gets the names from the driver.
Jörgen Sigvardsson wrote:
For instance, Insert is translated into NUM 0 and Delete into NUM DECIMAL.
On my machine (MS Internet Keyboard, Driver version 5.0.2183.1), Insert is "Insert" and Delete is "Delete". On the number pad, 0 is "Num 0" whether the Num Lock key is on or off, and the . is "Num Del".
I think you could do it manually for your keyboard, but then you will probably run into problems when your users use a different make and/or model of keyboard from what you are using.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|