|
cedric moonen wrote:
Or you can typedef this outside of your class (in the header file):
typedef CMap<....> MyMap
and return this typedef:
MyMap getMap();
But the type of the map (template arguments) must be explicitly specified in every case, isn't that so ? I mean, you can't return a pointer to a CMap instantation that has none of the template parameters defined ?
I believe the error the asker was having is due to the lack of template arguments.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
yes of course, you need to define the template arguments of the CMap you will return. And this is logical: you cannot work with a map without knowing what's inside...
So you need to return a CMap with template parameters defined (and that is more clear using a typedef so you won't have a return type too long )
|
|
|
|
|
Hello Friends,
I am using CListView on which I had some images. Based on a boolean value for each Image, I am changing the text color. For Example, If the boolean value is true then the text color would be red else it would be COLOR_WINDOWTEXT.
I am doing this in OnCustomDraw which is shown as below:
case CDDS_ITEMPREPAINT:
CListCtrl& listCtrl = GetListCtrl();
if( found )
{
pNMLVCUSTOMDRAW->clrText = RGB(255,0,0);
listCtrl.Update(pNMLVCUSTOMDRAW->nmcd.dwItemSpec);
}
else
{
pNMLVCUSTOMDRAW->clrText = GetSysColor(COLOR_WINDOWTEXT);
listCtrl.Update(pNMLVCUSTOMDRAW->nmcd.dwItemSpec);
}
*pResult = 0;
break;
I am using as above methodology and its flickerig and I have close the application by going through the task manager.
Please tell me the solution.
Thanks in advance.
Neelesh K J Jain.
|
|
|
|
|
don't call Update()
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
SELECT * FROM User WHERE Clue > 0
0 rows returned
|
|
|
|
|
hi
did anybody try the serial communication vc++ source code at http://www.orglerelectronic.com/visualc01.htm
I´m trying to modify this code so I can access the USB port (COM5) but I don´t know what to change... ( I have tryed the obvious chages like COM1 -->COM5 etc, but no result.
|
|
|
|
|
doneirik wrote:
so I can access the USB port (COM5)
Errr.. what do you mean by accessing USB port through COM5 ?? Do you mean that you have an USB-To-Serial adapter ? Because you cannot access USB port like a com port, this is completely different... The only case when you can do that is when the USB is used like a virtual com port (so when you use an USB-To-Serial adapter).
|
|
|
|
|
hi
Well actually now I´m working with an USB-Serial adapter, however I will also need to accessthe USB without the adapter.
My boss told me I could treat the USB like a normal COM port (because of drivers ?)Is that completely wrong?
|
|
|
|
|
I'm not entirely sure if your boss is right or wrong because I don't know the configuration of your computer systems.
The USB is a bus that resides in the computer. The low-level drivers (supplied by Microsoft) allow the bus to enumerate and identify a piece of hardware and then send a request to the registry to find the correct function driver for the device by using the vendor and product IDs returned by the USB Descriptors. This is how the bus works in a nutshell.
Your computer systems might have a pseudo-device driver that emulates a COM port. When this driver is loaded, it opens a handle to the low-level bus drivers and then creates a virtual COM port device. After this, passing a USB packet into the COM port is routed directly to the low-level drivers and thus into the bus. Needless to say, an errorneous packet might cause misbehaviour on the system. This is probably what your boss had in mind. You should ask him for clarification, though.
When this pseudo-device driver is not in use, all devices attached to the bus are represented by device objects. For each hardware device object that has a suitable function driver available and loaded, a driver object also exists. Additionally, possible filter driver objects may exist. You can use the WinObj object viewer (Google for it) to view all hardware device objects, driver objects and other object currently existing in your system. The same program can be used to obtain a valid name for a driver/device object. If you are operating on kernel mode, you can use this low-level name to open a handle into the driver/device. In user mode, only the symbolic link names, and a restricted list of device names, are available due to security restrictions imposed by Windows NT/2000/XP framework.
You can view all these through WinObj. The symbolic names can be found in the 'GLOBAL??' subtree. Actual device names can be found from 'Device' subtree. For reference, try looking for a normal COM port. You can find it lying around there somewhere. "\Device\Serial0" is COM1 for me.
From this list (Global??), you can even identify your USB device by looking at the vendor and product IDs. To get a rough idea who's device you're looking at, you can use the Linux-USB group's list, which is "somewhat" regularly updated. It can be found here[^]. All USB devices are listed in form "USB#Vid_xxxx&Pid_xxxx&MI_xx#.....". The first is the vendor ID, the next the product ID. The last one I'm not sure of.
Remember that a device might have multiple entries in WinObj's GLOBAL?? subtree. The one we are interested in is \Device\USBPDO-X which refers to a physical device object in the USB bus. Opening a handle to this device allows you to read/write from as if reading/writing a file. Security restrictions might apply, though. You can view these through WinObj as well. If you can't view the properties of an object, you don't have enough priviledges. Looking at the security tab, you can see which users have rights to read/write/modify a device.
For an example, Logitech has a vendor ID of 046d hex. I have the Logitech MX500 optical mouse attached, and it's product ID is c025 hex. Both of these are from Linux-USB list. Thus, in "GLOBAL??" I have an entry "USB#Vid_046d&Pid_c025 etc" which is a symbolink link to "\DEVICE\USBPDO-5". This is the physical device object for my MX500. Opening it's properties, I can see that in user mode, I only have 'query state' priviledge, allowing me to request status information about the device. If I was logged in as an administrator, I could also 'delete' the object, which means the device was logically detached from the bus. The bus would, however, soon re-detect the device, re-load the drivers and re-create the device objects.
I can't, in user mode, read or write from the device. For that purpose, I would need to write a kernel-mode program. This program should create a virtual device, say USB MX500 mouse, open the device handle for USBPDO-5, and route the commands sent to the virtual device to the physical device and back. A crude hack, I'd call it, but it would fill it's purpose
Well, that was a huge reply. Hope it's informative. I'm in consideration of writing an article about this matter, but my current thesis work is a priority.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
USB is more like a socket - it has it's own protocol stack etc.
When using a USB<->serial adaptor the device driver, protocol stack and adaptor are invisible so you simply see the Windows Com port.
Working directly with USB is a totally different topic !
Elaine
The tigress is here
|
|
|
|
|
thanks everybody
doneirik
|
|
|
|
|
Hi All,
I am getting error of Debug Assertion failed in my VC++ 6.0 application
Program : My Exe name
File:list_s.cpp
Line:451
When I searched for this file it is present in the src folder of the VC++ mfc installation on my machine.Location is "C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC" But this file is not present in the machine which is runnning the application.
My program exe is compiled in Debug mode.
the program extensively writes log files on the disk and CPU usage is high when the program is running.
Will it be related to memory allocation?
I am thinking so because the line 451 contains code
"ASSERT(AfxIsValidAddress(m_pNodeHead, sizeof(CNode)));"
Can anyone help me to rectify the error?
Thanks in Advance
Regards
Shailaja
|
|
|
|
|
Is the bug reproductible ? I mean, the bug appear each time you're doing some specific actions ? Or is it totaly random ?
If the bug is reproductible, you can use the debugger (F5 to start and F9 to set breakpoints) and try to localize the bug in your code.
|
|
|
|
|
thanks for promp reply.
The bug comes abruptly mostly when the load on the application is more.
The application is comunicating with remote PC for communication requests sent by that remote machine and it is also sending the requests as well as response to the remote machine.
and it writes log of every send and receive operation.
when number of requests received go high that time the problem is occuring.
|
|
|
|
|
I Think you are using the List Class in your program and during some memory operation it is failing .
give me you app if possible i will try to sort out bug
-----------------------------
"I Think this Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
i am trying to send the file to your email id but no success.
mail is bounced
|
|
|
|
|
Which Email address Mine
alok#efextra.com
-----------------------------
"I Think this Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
hi everybody,
i have a little problem (maybe very easy to solve for some), but i can't find out how to solve it.
it is about tab controls (CTabCtrl ) and the way to set controls in it.
actually, i have many texts (CStatic ) which i would like to appear only depending on the selected tab. I cannot "attach" my static texts with the Tab control directly in the dialog editor, so how could i do ?
I only found that i initialize the tab control in OnInitDialog() (dialog-based application) ; and TCN_SELCHANGE overload allow me to catch a tab selection change.
thanks in advance for your answers.
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
See the following on http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_core_using_ctabctrl.asp[^]
Using CTabCtrl
A "tab control" is analogous to the dividers in a notebook or the labeled folders in a file cabinet. Use the tab control, represented by class CTabCtrl, to show multiple pages of information or controls to a user, one at a time, in a format that suggests a peer or logical relationship between each page.
What do you want to know more about?
Tab Controls and Property Sheets
Tab Control Examples
Tabs and Tab Control Attributes
Making Owner-Drawn Tabs
Working with a Tab Control
Creating the Tab Control
Adding Tabs to a Tab Control
Processing Tab Control Notification Messages
SkyWalker
|
|
|
|
|
you need to create pages for each tab.
Those pages are CPropertySheet. You can create dialogs, one for each tab, in the resource editor, and create the pages when you create the CTabCtrl.
when the dialog receives a TCN_SELCHANGE, you simply have to show/hide the appropriate propertysheet.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
If you just need a Tab control on your dialog, then you can use a CPropertySheet instead (just look at the MSDN to see how to use it): you will suply a dialog resource for each PropertyPage inside of it.
Otherwise, if your Tab control is included in an existing dialog (with other controls,...), take a look at this article: http://www.codeproject.com/tabctrl/ctabctrlssl.asp[^]
Hope this helps
|
|
|
|
|
Hi!
I m a beginner in VC++. I just started working on a project in VC++ 6.0. I am developing an SDI application. I am using template class :
CTypedPtrList <coblist, cmytype*=""> m_MyList;
in the document to get all values from database.
I populate the list in the initial update function of VIEW.
class CMyType : public CObject
{
HTREEITEM hti;
CString sName;
CString sID;
int nCount;
};
CMyType *pNT = new CMyType();
GetDocument()->m_myListofNodes.AddTail(pNT);
On closing the application, I get following error:
ERROR # 1
/////////////////////////////////////////////////////////////
MySystem - Untitled: MySystem.exe - Application Error
//////////////////////////////////////////////////////////////
The instruction at "0x10213035" refrenced memory at "0x00000015".
The memory could not be "read".
Click on OK to terminate the program.
/////////////////////////////////////////////////////////////////
If i try to delete the item from list, then window pops up saying that tell this problem to Microsoft.
ERROR#2
////////////////////////////////////////////////////////////
"MySystem MFC Application has encountered a problem and needs to close. We are sorry for the inconvenience."
On pressing DONT SEND, it gives the ERROR # 1.
If application is run in Debug mode, then it gives
ERROR # 3
///////////////////////////////////////////////////////////////
Unhandled exception in MySystem.exe (MSVCRTD.DLL):0xC0000005 Access violation
By pressing OK, it takes me to CBHEAP.C file at:
// unlink entry from list
pPrev->pEntryPrev->pEntryNext = pPrev->pEntryNext;
pPrev->pEntryNext->pEntryPrev = pPrev->pEntryPrev;
...
I really dont know whats going on ...
It will be really pleasant if any one can help me out.
Thnx
|
|
|
|
|
I want to not save the directory browse in a cfiledialog.
To do this I use the OFN_NOCHANGEDIR flag as it is said everywhere.
That doesn't work (
The directory is saved in spite of the OFN_NOCHANGEDIR flag.
Does anyone know this problem? How can I solve it?
Thanks for your help
Forest
|
|
|
|
|
how do u get the arrow key events in a window??what is the handler uses this??
|
|
|
|
|
Trap Window WM_KEYDOWN Message and check nChar (in mfc) and wParam( in Win32api) for these code
VK_LEFT or 25 --> LEFT ARROW key
VK_UP or 26 -->UP ARROW key
VK_RIGHT or 27 -->RIGHT ARROW key
VK_DOWN or 28 --> DOWN ARROW key
-----------------------------
"I Think this Will Help"
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
Hi,
we have an active x controls for webcam interface and i need to create a DLL with VC and use the same in a 3rd party application.
i.e i need to control the webcam through DLL
During creation of the DLL i dont have any issues, while calling the function from a console application - am getting windows assertion failed error..?
Can anyone guide me the settings if i need to make any inorder to control the dll which has activex in it..
Thanks in advance,
Pramod.
|
|
|
|