|
You need to set the WINVER macro to a higer version. If you are using VC 6. the windows version is set to 0x0400. This is because MS thinks that you must know what platform you are targetting if you wan't to use functions that are not supported by previous versions of windows.
See here[^] for more information about windows versions and the marcos associated with it.
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|
|
so, I have an .exe-file on my USB-stick(I wrote this exe.-file myself). now I need a command for another application. this application has to search where is USB-stick (A: or C: or D: or F with my .exe-file. Because the location of it is different at all users. at me for example the location is F: , at my friend E: . and then this .exe-file must run automaticaly...
thank you
|
|
|
|
|
If the file is always in a constant location on the volume, you could just iterate through each volume, tack on the path and file, until you find it.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hi !
I have created a menu on the fly. Now I want to catch messages when an item is selected from menu. How do i do it. I am doing it by catching WM_MENUCOMMAND but I get undeclared error. I defined it my cpp file with the value of 0x0126 which i checked in winuser.h . Still I dont catch any msg.
Can some1 explain me the mechanism and why do i I get this compile error when I use WM_MENUCOMMAND while on the other hand WM_COMMAND or WM_MENUSELECT can be used without any prob. ?
Regards
|
|
|
|
|
|
|
I'm using a control derived from CHtmlView and I'd like to detect if a page hasn't been loaded properly because it doesn't exist. Concretely, I want to open a local folder (like explorer does) using CHtmlView::Navigate2. All works fine if the folder exists but, if it doesn't, I can't detect it.
There's an OnDocumentComplete fired when the navigation has been done succesfully but there isn't a way to know if the page haven't been loaded (almost in VC++6).
Any idea?
Thanks in advance,
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
See OnDownloadComplete, which according to MSDN is fired when "a navigation operation finished, was halted, or failed."
See also OnNavigateError, which is fired "if navigation to a hyperlink fails."
Hope that helps,
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Jose Lamas Rios wrote:
See OnDownloadComplete
OnDownloadComplete maybe it's fired, a part that for when it's ok, when it receives a 404 error code but not when you are requesting a local folder and it doesn't exist ... strange
Jose Lamas Rios wrote:
See also OnNavigateError
Yep!! But for MFC7 and I need it for MFC42.
I've finally solved by setting a Timer when OnBeforeNavigate it's fired and asking for the status (GetBusy) at OnTimer ... it's not as clean as I'd like but it works.
Thanks,
Marc Soleda
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
Using VS7..
class A
{
int answer = 42;
}
"only const static integral data members can be initialized inside a class or struct"
class B
{
static const int answer = 42;
}
But..
class C
{
static const float answer = 42.0f;
}
The msdn help page for error C2864 mentions nothing about floats not being able to be initialised like this - a quick bit of googling makes this look like it's a VC7 compiler bug.
Can anyone shed any light on this?
--
Help me! I'm turning into a grapefruit!
Buzzwords!
|
|
|
|
|
I think the answer in in the error message:
"only const static integral data members can be initialized inside a class or struct"
I always thought that integral type meant one defined by the compiler, char , int , float etc, but perhaps someone thinks it means data members that can hold integral (ie no floating point) values...
[Edit]
this forum conversation[^] is of the opinion that the standard does not allow floating point constants in a class.
[/Edit]
|
|
|
|
|
Graham Bradshaw wrote:
I always thought that integral type meant one defined by the compiler, char, int, float etc, but perhaps someone thinks it means data members that can hold integral (ie no floating point) values...
Indeed. From MSDN C/C++ Language Reference - Fundamental Types[^]:
"Fundamental types in C++ are divided into three categories: integral, floating, and void. Integral types are capable of handling whole numbers. Floating types are capable of specifying values that may have fractional parts."
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
|
Hi,
I get a path like "C:\folder" in my program. And I want to use it in a function which needs "C:\\folder". I wanted to use CString::Insert() function, but I got the error message 'new line in constant' when I use this: "\"
How can I insert a \ in a string?
Thanks in advance
caykahve
|
|
|
|
|
'\' are used for escape characters. If you want that in a string, you need to add another extra \: "C:\\folder".
But as I see your error, I think this is due to the fact that you forgot to 'close' your string (you probably forgot the ")
Hope this helps.
|
|
|
|
|
I don't know how deep the first path exactly.
To be more precise, i can add my code here:
int i=0;<br />
while( PFPath.Find("\",i)!=-1 )<br />
{ <br />
PFPath.Insert(i,(CString)".\");<br />
i+=2; <br />
}<br />
// Here I want to have PFPath as "C:\\folder1\\folder2"
|
|
|
|
|
Replace all "\" by "\\".
In this line:
PFPath.Insert(i,(CString)".\");
Why is it a ".\" ?? Why do you insert a '.' ?
|
|
|
|
|
I already tried replacing the "\" with "\\". the program can be compiled, but the result is erroneous:
Then i have at the beginning of the snippet PFPath: "C:\folder1\folder2" and
PFPath: "\" at the end of the snippet.
I don't have '.' normally, it was "\". It's a typo that occurred during copying here to the messageboard.
|
|
|
|
|
caykahve wrote:
// Here I have PFPath as "C:\folder1\folder2"
int i=0;
while( PFPath.Find("\",i)!=-1 )
{
PFPath.Insert(i,(CString)".\");
i+=2;
}
// Here I want to have PFPath as "C:\\folder1\\folder2"
Ok, another problem is here: the find function returns the starting position of the substring found in the string. So, when you insert the new character, it will insert it at the position 'i' that is left the same (so 0 in the first case). You must take the value returned by Find() and insert the new char there.
|
|
|
|
|
OK, you are right. But still the insert function does not work properly. Here is the changed code snippet:
int i=0; <br />
i = PFPath.Find("\\",i);<br />
while( i>-1 )<br />
{ <br />
CString found;<br />
found.Format("Backslash found at index: %d",i);<br />
MessageBox(found);<br />
<br />
PFPath.Insert(i,(CString)"\\"); <br />
MessageBox(PFPath);<br />
i += 2;<br />
i = PFPath.Find("\\",i); <br />
}<br />
if(i==-1)<br />
MessageBox("not found");<br />
MessageBox(PFPath);
Output:
Backslash found at index: 2
C:\folder1
\
not found
\
|
|
|
|
|
If C:\folder is something that you typed at a command prompt or in some text box, there is no need to replace one backslash with two. This is user input, which differs from string literals in your code. Whatever function is using the folder name will work correctly.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
C:\folder is actually is not a user input, it is
SHGetSpecialFolderPath(NULL,PFPath.GetBuffer(_MAX_PATH), CSIDL_PROGRAM_FILES, FALSE);<br />
and it gets "C:\Program Files" exactly.
I add something at the end of this string and then i try to use it in
<br />
CString WholePath = PFPath + (CString)"\\....\\file.exe;<br />
SHELLEXECUTEINFO shellInfo;<br />
...<br />
shellInfo.lpFile = WholePath;<br />
::ShellExecuteEx(&shellInfo);
If I do not use double slash, I get the error: "The program cannot find the file specified"
That's why I need double slash.
Why is it so hard to insert the required character in to a string I don't understand.
Is there some other way to obtain "C:\\Program Files"?
|
|
|
|
|
You are still have a bit confused. There is no need to change PFPath , and the string literal being appended to it is fine (because it contains the necessary double backslashes). You don't need to insert anything additional. The variable WholePath contains what it needs to.
caykahve wrote:
If I do not use double slash, I get the error: "The program cannot find the file specified"
Rightly so. But the code snippet you've shown does have a double backslash so I don't see the problem.
caykahve wrote:
Is there some other way to obtain "C:\\Program Files"?
Why, when you are already doing it correctly?
If you tried to access a file using code like:
"c:\program files\some_folder\mydata\file.dat" not only would the compiler complain about illegal escape characters (e.g., \p and \s and \m make no sense, but \f does), it would have interpreted that as
"c:rogram filesome_folderydata\file.dat" hence the file not being found.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hello,
I'm trying to develope a software to capture video from a webcam and sending it through internet.
The primary need is to view through the camera in my building, through the internet, from somewhere else.
I have the knowledge about how to program using CSocket in VC++.
Can any body tell me how to achieve this, please?
Or can you suggest any helpful link or something else?
Thank you.
|
|
|
|
|
Nishad S wrote:
The primary need is to view through the camera in my building, through the internet, from somewhere else.
This Will help you:-
http://www.codeproject.com/internet/shoonyaintntbrdcast.asp[^]
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|