|
|
yes that's what I thought, so I tried renaming strings to str1 and str2 - that didn't help. I guess I really need to manually delete all build/intermedate files since rebuild + clean didn't help.
|
|
|
|
|
Not sure about issue #1. The KB article pointed to in the other link is specifically talking about C# keywords, not managed C++, but it might not matter. Does this cause a run time issue or is this more of a curiosity type question?
Issue #2 sounds like it could be related to a mismatch between the .pdb file and the source code. I have seen issues like this that do sometimes survive rebuilds. Have you tried exiting Visual Studio and manually deleting all of the bin/lib/obj files and folders, and then rebuilding?
|
|
|
|
|
even with "clean" + "rebuild solution"? You seen this before?
Thanks
|
|
|
|
|
Yes, even with "clean" + "rebuild". The "clean" doesn't do a full clean where everything except source code files is deleted. Most of the time, it is enough...but every so often it isn't.
|
|
|
|
|
hey hi all... i made a c++ program in which i need to detect USB device inserted event... but my windowProc function is not getting called.. i don't know whats wrong with the program.... i also tried to check the error by using GetLastError() but i got nothing.. code goes like this
#ifdef WINVER
#undef WINVER
#endif
#define WINVER 0x0501
#include
#include
#include
#include
#include
DEFINE_GUID(GUID_DEVINTERFACE_VOLUME, 0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
// don't know if this is the correct GUID for USB device interface... i got it from MSDN website....
#define guid GUID_DEVINTERFACE_VOLUME
using namespace std;
HDEVNOTIFY RegisterDeviceNotificationA(
HANDLE hRecipient,
LPVOID NotificationFilter,
DWORD Flags
);
#define RegisterDeviceNotification RegisterDeviceNotificationA
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // device-change event
LPARAM lParam // event-specific data
);
int main( )
{
HWND hwnd = FindWindow( "ConsoleWindowClass", NULL);
cout<<hwnd<<endl; to="" check="" if="" im="" able="" get="" hwnd="" or="" not......
dev_broadcast_deviceinterface="" notificationfilter;
zeromemory(="" ¬ificationfilter,="" sizeof(notificationfilter)="" );
notificationfilter.dbcc_size="sizeof(DEV_BROADCAST_DEVICEINTERFACE);
NotificationFilter.dbcc_devicetype" =="" dbt_devtyp_deviceinterface;
notificationfilter.dbcc_classguid="guid;
HDEVNOTIFY" hdevnotify;
hdevnotify="RegisterDeviceNotification(" hwnd,="" device_notify_window_handle);
cout<<hdevnotify<<endl;="" the="" value
if(="" !hdevnotify="" )
{
cout<<"registration="" of="" device="" notification="" failed"<<endl;
}
else
{
cout<<"registration="" complete"<<endl;
}
dword="" dword;
dword="GetLastError(" );
cout<<dword<<endl;="" for="" any="" error="" any....
while(1)
{
sleep(1000);
}
return="" 0;
}
lresult="" callback="" windowproc(="" uint="" umsg,="" wparam="" wparam,="" lparam="" )
{
cout<<"windowproc="" called"<<endl;="" its="" getting="" called="" not.......
if(="" umsg="=" wm_devicechange="" )
{
cout<<"device="" change"<<endl;
}
return="" defwindowproc(hwnd,umsg,wparam,lparam);="" call="" window="" api="" function="" defwindowproc()="" which
="" provides="" default="" message="" processing="" messages="" that="" were="" not="" processed="" by="" this="" window.
}
output="" is
0x290392="" hwnd
0x245d08="" hdevnotify
registration="" complete
0="" getlasterror()
and="" nothing="" is="" happening="" when="" inserting="" usb.....nyone="" knw="" about="" this
bye="" have="" a="" nice="" day.....
bye="" day.....=""
<div="" class="ForumSig">bye have a nice day.....
|
|
|
|
|
You seem to be directing the notification to send a WM_DEVICECHANGE message to a console window that you didn't create and have not sublcassed. It looks like the window receives the message and then ignores it because it has nothing to do with it...
A better idea would be to create your own top level window and add WM_DEVICECHANGE to the messages being handled on that window message loop.
See the MSDN documentation[^]
|
|
|
|
|
thanx for reply....
i know its not getting any message... coz i checked it with spy++.. its a software which checks all messages sent to a window by windows.... its showing a message send when im use winMain() istead of main().... also i dont want to create a gui.. i want this to run in background...and to receive the message i have created that windowProc() function but thats not getting called??? what to do???
bye have a nice day.....
|
|
|
|
|
Some applications have an invisible window so they can get WM messages...
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
thats y im asking.....how to get message frm windows n how to register for device notification????
bye have a nice day.....
|
|
|
|
|
You can search the entire Internet with Google, or just CodeProject with the search
facility on top on most CP pages. That will turn up a bunch of good articles like this one[^], showing you how to override WndProc and get messages.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
i knw... but my window in not getting any message... i checked it with Spy++.... even if i code WndProc(..)... nothing is going to happen because my console window is not getting message from windows...may b some error in RegisterDeviceNotification(...)>.... but i don't knw whats wrong???
bye have a nice day.....
|
|
|
|
|
AFAIK a console window is not a regular window, you may have trouble overriding its WndProc.
Why can't you do it as shown by other people?
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Make your own window with CreateWindowEx[^] rather than trying to use an existing console window and see if that works...
|
|
|
|
|
yaa its working.. thnx..
bye have a nice day.....
|
|
|
|
|
when to use what?
Thanks!!
|
|
|
|
|
You use each type when you need to use them. Value types are usually simple types such as int, double, etc. Ref (reference) types are more complex types such as XmlDocument, FileInfo, etc. So, the decision when to use a value or ref type depends on your current needs. However, values types naturally use less resources and are easier to manage.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Thanks...
Getting a bit confused with error c3149 - I understand MSDN doc, but not sure if the following is the same as problem described in c3149 doc. Why wouldn't compiler let me just pass-in a parameter by value?
<br />
c:\...\utilities\Tokenizer.h(10) : error C3149: 'System::String' : cannot use this type here without a top-level '^'<br />
Here's the simple class:
<br />
public ref class CTokenizer<br />
{<br />
public:<br />
CTokenizer(void);<br />
<br />
static ArrayList Tokenize(String strInput);<br />
<br />
};
Of course, this fixed it:
<br />
public ref class CTokenizer<br />
{<br />
public:<br />
CTokenizer(void);<br />
<br />
static ArrayList Tokenize(String^ strInput);<br />
<br />
};<br />
What's the reason behind compiler not letting us to pass in a String param by value? Also just realised String implemented: String.Split Method (String[], StringSplitOptions)
Thanks
|
|
|
|
|
First of all, many ref types in the .NET Framework don't have a copy constructor or assignment operator. Specifically, a String is immutable and is not allowed in this situation. array<T> , also, cannot be coded with stack semantics.
-- modified at 7:35 Friday 14th September, 2007
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Hi there!
How do we call these methods from dotnet? Is there any dotnet wrapper?
InternetOpenUrlA
HttpQueryInfoA
InternetReadFile
FormatMessage
Thanks!!
|
|
|
|
|
|
If there are two mouses(A,B) pluged in a computer, I wonder how to distinguish A from B.
plz help me
|
|
|
|
|
The two mice send the same signal. I doubt it's possible to work out which is which.
Also, I suspect you meant to ask this in the Visual C++ forum.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
Ok Thnak you very much.
|
|
|
|
|
Charles of Korea wrote: I wonder how to distinguish A from B.
Make sure they are different colors?
Gary
|
|
|
|