|
When a breakpoint is on an illegal line, VC will try to move the breakpoint to the next legal line. If there's no legal next line, the breakpoint is disabled.
A line can be considered illegal if it doesn't contain a complete statement, for example, you have a multi-line if condition, or an assignment that is formatted into multiple lines, and you try to set the breakpoint on anything other than the first line. It will also be considered illegal if the source file isn't included in any of the modules loaded on startup.
To add modules to debug on startup, you can go to Project > Settings > Debug tab > Additional DLLs category, and add the modules you want loaded at startup.
VC 7.x is better in this respect, IIRC; if there's a breakpoint set in a module that isn't listed to be loaded at startup, the debugger simply marks the breakpoint with a '?' symbol in the source, then tries to set it when the module loads. I can't remember what happens if this fails.
Another reason this can fail is if the debugger crashes before the workspace is saved. Breakpoint locations are saved in the workspace options file (Workspace.opt in VC6, or .vco in eMbedded Visual C++), which is saved when you save the workspace. If the debugger crashes between saving the workspace and making changes to the source, or you change the source outside the IDE, the breakpoints remain on the line number that they were set on, even if the code's moved, when you next open the workspace. Breakpoints set in the Disassembly window are saved relative to the module base address, IIRC.
For more information on debugging with VC 6.0, read John Robbins' Debugging Applications[^]. This is the first edition; the new book only covers VS.NET. Unfortunately it's out of print.
--
Mike Dimmick
|
|
|
|
|
Break points must be set on lines that "will produce" some assembly code. For example, you can't set a breakpoint on a variable declaration:
int Value; //You cannot set a break point here
But if you assign some value to this variable, it will work (in assembly code, you will have an instruction that loads some registers)
int Value = 0; //You can set a breakpoint here
So, look if you breakpoint is set on a valid line !
Hope this helps
|
|
|
|
|
The other two have mentioned about setting a breakpoint on an invalid line, but if you've put a condition on the breakpoint that the debugger can not understand, then it will disable the breakpoint as well. Check this too.
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"
|
|
|
|
|
Thanks all very much
But i want give more restrict trouble reference, since all suggest not helped. When i begin execute my progect, to appear message ...exe file doesnot contain debugging information and further break pointers failed. My project have Win32Debug flag. But i also have custom make file, maby trouble here. Also i want underline what break pointers failed wherever i placed it in my source file althought from recent time all work fine.
Sorry for bad eanglesh.
|
|
|
|
|
Hi !
Where I was working before, we had Together as CASE Tool. Where I'm working now, they cannot afford it, so I'm wondering if someone here knows about a good CASE Tool (I'm don't need a full-featured app), which is either free or cheap !
Thank you for your suggestions !
Jerome
|
|
|
|
|
There's one called ProxyDesigner somewhere on CP (in the free tools section I think), but it may not be good enough for what you want.
Poseidon[^] can be downloaded free, but it does run under Java, so may be a bit slow.
I'm sure there are others. Just google for them
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"
|
|
|
|
|
Together is written in Java too, so speed should not be the issue. The bigger problem with Poseidon is that its UML model is too strictly tied to the Java language, so it doesn't always fit C++ programming very smoothly.
Also, CASE is useless without round-trips and Poseidon only supports this for Java.
|
|
|
|
|
Cool. I was just giving a couple of examples to get him started
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"
|
|
|
|
|
Enterprise Architect. It's built by an Australian company. I have used it both in my current and previous job and it is a very solid tool and quite affordable too (only $95 US for a single licence):
http://www.sparxsystems.com.au/
|
|
|
|
|
Hi
Does any1 know how to display images in the column headers of
a CListView
thanks
simon
|
|
|
|
|
Similar to item images for a list control. Set an image list for the header control, and set the image index using CHeaderCtrl::SetItem() .
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"
|
|
|
|
|
there is a strange thing happening when trying to serialize a COleDateTime member variable of a class.
In fact, i 'm writting:
if (ar.IsStoring()) { // storing
ar << start_date.m_dt;
ar << start_date.m_status;
}
else { // loading
ar >> start_date.m_dt;
ar >> start_date.m_status; // this line does not compile!!!!
}
the commented line does not compile!!!
any ideas why?
thanks for your time
|
|
|
|
|
You can't serialize an enumerated type like that. You can just write the whole COleDateTime object in one go:
ar << start_date; Hope this helps,
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"
|
|
|
|
|
hi,
What is your opinion about the expand 'any suitable' function inline ?
Will that cause any problem ? why does the compiler issue warnings while compiling with that option ?
regards.....
Hari Krishnan
|
|
|
|
|
'Any suitable' basically means that the compiler gets to look at every function you wrote and decide whether to inline it. Basically it tries to see whether the cost of inlining the function is more or less than the cost of not doing so - if less, it will probably inline it.
The problem will likely be that your code size will be very large. Most references actually recommend trying to minimize code size in the general case, because more code = more working set = more page faults, typically. A page fault can swamp any benefit you might get from code that would be faster if it had all been in RAM at the same time.
As for the warnings, I have no idea, since I've never used this option. Post a list of the warnings!
--
Mike Dimmick
|
|
|
|
|
thanks.
i better try to minimize code size
Hari Krishnan
|
|
|
|
|
Hi All
i have been given the following code which is used to
Indicate the sort order in list control control, by the
use of up and down arrows (common windows feature)
this works fine for a list control, but i cant get it to work with
a list view, first off i get an error with CHeaderCtrl* HeaderCtrl = GetHeaderCtrl();
saying its an undeclared identifier
has ne1 ne ideas
thanks
si
private:
int m_CurrentSortItem;
bool m_SortAscending;
Constructor -
m_CurrentSortItem = 0;
m_SortAscending = true;
Override Create then after Create is called -
HDITEM HeaderItem;
HeaderItem.mask = HDI_FORMAT | HDI_BITMAP;
CHeaderCtrl* HeaderCtrl = GetHeaderCtrl();
HeaderCtrl->GetItem(m_CurrentSortItem, &HeaderItem);
if (HeaderItem.hbm != 0) {
DeleteObject(HeaderItem.hbm);
HeaderItem.hbm = 0;
}
HeaderItem.fmt |= HDF_BITMAP | HDF_BITMAP_ON_RIGHT;
HeaderItem.hbm = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(m_SortAscending ? IDB_UP : IDB_DOWN), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS);
HeaderCtrl->SetItem(m_CurrentSortItem, &HeaderItem);
Finally -
void OnLvnColumnclick(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<lpnmlistview>(pNMHDR);
HDITEM HeaderItem;
HeaderItem.mask = HDI_FORMAT | HDI_BITMAP;
CHeaderCtrl* HeaderCtrl = GetHeaderCtrl();
HeaderCtrl->GetItem(pNMLV->iSubItem, &HeaderItem);
if (HeaderItem.hbm != 0) {
DeleteObject(HeaderItem.hbm);
HeaderItem.hbm = 0;
}
HeaderItem.fmt |= HDF_BITMAP | HDF_BITMAP_ON_RIGHT;
m_SortAscending = (m_CurrentSortItem != pNMLV->iSubItem) ? true : !m_SortAscending;
HeaderItem.hbm = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(m_SortAscending ? IDB_UP : IDB_DOWN), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS);
HeaderCtrl->SetItem(pNMLV->iSubItem, &HeaderItem);
if (m_CurrentSortItem != pNMLV->iSubItem) {
HeaderCtrl->GetItem(m_CurrentSortItem, &HeaderItem);
HeaderItem.fmt &= ~(HDF_BITMAP | HDF_BITMAP_ON_RIGHT);
if (HeaderItem.hbm != 0) {
DeleteObject(HeaderItem.hbm);
HeaderItem.hbm = 0;
}
HeaderCtrl->SetItem(m_CurrentSortItem, &HeaderItem);
m_CurrentSortItem = pNMLV->iSubItem;
}
SortItems(SortFunc, (DWORD_PTR)this);
*pResult = 0;
}
|
|
|
|
|
CListView is not derived from CListCtrl . You have to use GetListCtrl() to get a reference to the list control, and then use that to get the header, etc.
CListCtrl &list = GetListCtrl();
list.GetHeaderCtrl(); Hope this helps,
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"
|
|
|
|
|
Hi y'all!
Can anyone tell me how to create a Win32 DLL that will use a Dialog Box inside its code??
|
|
|
|
|
In VC++ just create a simple DLL, and inside the DLL create the window as usual with CreateWindow() , everything will work fine
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hi
Dont forget use AFX_MANAGE_STATE(AfxGetStaticModuleState())
before invoking dialog box see MSDN
|
|
|
|
|
real_space_monkey wrote:
AFX_MANAGE_STATE(AfxGetStaticModuleState())
Not for a Win32 DLL
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"
|
|
|
|
|
It's only necessary in a MFC DLL.
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hi All
does any1 know how you get the little arrows, showing the direction
of the sort when you click on a cloumn with a list control
you get an up arrow and a down arrow
the ones you see in, say windows explorer
using OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult)
can ne1 point me in the right direction
thanks
si
|
|
|
|
|
If you're targetting WinXP only, the HDF_SORTUP /HDF_SORTDOWN styles for items in the header control enable the sort arrows. They won't appear on any OS less than WinXP though.
You would set this in OnColumnClick() as you said.
For OSs before WinXP, you'll have to subclass the header control and handle the WM_PAINT message to do it yourself, or use custom draw.
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"
|
|
|
|