|
Hi,
I have this VC++ application through which i invoke help files by pressing F1 key. But when i modified the help files(both .cnt and .hlp through ROBOHELP)and included these new help files, F1 is no longer working though i can see Table of Contents. Am i missing any mapping somewhere?? Please suggest.
Thanks,
Aparna
|
|
|
|
|
Had those changes something to do with the structure of the help? Maybe you made a change that allows you to see the table of contents, but made a problem with the indexation of the direct access to a part of the help.
I hope you understand what I try to mean
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
Hi,
Thanks for the reply!!
The application is actually an installable.Its installed in the machine...Now I just added a bit of text to some part of the Contents and recompiled the help files and then copied the new files in program files->application folder.Should i be compiling the program too??
Thanks,
Aparna
|
|
|
|
|
I am not sure, but a try will not damage you, won't it? I was just suggesting something that I thought about. I have not much knowledge about the help files. I will start coding them soon, but I have never used it yet.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
Hi,
First of all, sorry if it is longer than needed. I want to explain me well.
After reading NSIS docu. I have made 3 different installators to test.
One is following this schema[^] I just changed/edited what the autor of that script tells.
Another one with the NSIS-Wizzard.
And another one trying my own script.
All worked installing/uninstalling files, but all of them give me an error with the association of the extension/documents with my application. (After every installation I run 2 different registry cleaners and search through registry to try to have it clean from my application/extensions/documents).
I some time ago asked[^] about associating application with extension and David Crow gave me following answer:
<br />
HKCR\.fs = Nelek.Document<br />
HKCR\Nelek.Document\shell\open\command = NELEK.EXE %1<br />
HKCR\Nelek.Document\shell\open\ddeexec = [open("%1")]<br />
HKCR\Nelek.Document\shell\open\ddeexec\application = NELEK<br />
HKCR\Nelek.Document = Nelek Document <br />
After executing my installator. I have checked the registry and I had following. NOTE: Nelek = FPS (the name of my app)
<code>HKCR\.fs = FPS.Document</code>
HKCR\.fs\ShellNew -> (Standard) REG_SZ (Value not given)
HKCR\.fs\ShellNew -> NullFile REG_SZ
;
HKCR\Applications\FPS.exe\shell\...
HKCR\FPS.Document-> (Standard) REG_SZ FuzzyProjektierungsSystem
HKCR\FPS.Document\DefaultIcon-> (Standard) REG_SZ C:\PROGRA~1\FPS\FPSII.exe,1
HKCR\FPS.Document\shell\open\command -> (Standard) REG_SZ C:\PROGRA~1\FPS\FPSII.exe /dde
<code>HKCR\FPS.Document\shell\open\ddeexec-> [open("%1")]</code>
HKCR\FPS.Document\shell\...
;
;
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.fs -> Empty
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.fs\OpenWithList->a REG_SZ FPSII.exe
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.fs\OpenWithList->b REG_SZ FPS.exe (An old version, it wont be used at all)
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.fs\OpenWithList->MRU REG_SZ ab
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.fs\OpenWithProgids->FPS.Document REG_NONE (Binary value of the length NULL)
;
;
HKLM\SOFTWARE\Classes\.fs->(Standard) REG_SZ FPS.Document
HKLM\SOFTWARE\Classes\Applications\FPSII.exe\shell\... "open, print, printto" with same values as above
HKLM\SOFTWARE\Classes\FPS.Document\... The same as above in HKCR\FPS.Document
And the problem I have is: After a installation, I look for a file made with my program (extension *.fs) I double click on it and all is ok JUST ONCE (the first time I do it). When I close the programm and try double click on a *.fs file, It comes a ErrorDialog with the following text (translating from german, sorry if the message sounds different):
<br />
"PATH_AND_FILENAME.fs" could not be found. Ensure that the name was correctly given and repeat the operation. Click on "Start" and on "Search" option to look for files<br />
After closing this dialog, my programm opens itself but without document, and when I close the programm I get the Windows Dialog that the programm has found an error and must be closed with "Send Report to windows", "not send" and "Debug" buttons.
Clicking in Debug, the VStudio opens, gives me "Not contempled Assertion in FPSII.exe (MFC42.DLL):0xC00000005: Access violation" and jumps to the following line of code:
73DC8F5A cmp dword ptr [eax+10h],5
I think this is due to the Release version.
The main question is: Why the hell is working the first time after an installation and pissing me off up to the second time?
and, about the registry entries...
Question 1: FuzzyProjektierungsSystem is what I gave into wizard long time ago, when I created the project. I guess it was not a good idea, should I change it? if yes... how? Or just, create a new project, create the classes and copy paste all code into them?
Question 2:
David told me "NELEK.EXE" so in relative path, and what I have (with the 3 installs from NSIS) in the registry is in absolute path. Is it an important difference? Should I try to change it in the NSIS script? (a bit info about if change is needed would be nice, 3 different versions do it in that way)
Question 3:
Which is the function of David's answer missing line? Must I include it?
OFFTOPIC: Damned installations, and this is with a tool that most people recommends. I don't want to think about if I should make my own installator :S
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
I'm using VS6.0.
I was going through the code which was written nearly 3 years before. I have seen one statement like said in the subject
DWORD dw='pp';
I was not aware that is a valid statement.
And still I'm not clear what will be the value of dw. I calculated if it is equivalent to ('p'<<8 + 'p') but no success.
Can some kindly clarify me on whether two characters in single cotes is valid in C/C++ or it is valid only in VC++. If valid in VC++, how would the value is calculated for the literal in two cotes.
regards,
Pratap
|
|
|
|
|
'pp' is not a valid character, but AFAIK, it is understood as if it were the first character written solely : 'p'
so, you DWORD contains the ascii code of 'p', chis is 112 (0x00000070)
|
|
|
|
|
No!
The DWORD value is coming as 28784 in my machine
|
|
|
|
|
so, that is 0x7070... strange, but quite logical if we know that 'p' is 0x70
|
|
|
|
|
I'm sorry There was a mistake in calculating the value of 0x7070 in decimal format.
The value is 0x7070 only!!
Thanks a lot for your support!!
could you kindly specify that the statement DWORD dw='pp'; is valid in all platforms!!
I'm googling for it, but no success!!
|
|
|
|
|
toxcct wrote: 'pp' is not a valid character,
it is a valid (though discouraged) multicharacter constant , see [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Sorry for replying after so many days.. it was Deevali in India and I was in vacation.
Thanks a lot for the link. It was quite helpful.
Pratap
|
|
|
|
|
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Raj Prathap wrote: was not aware that is a valid statement.
It is a valid statement.
Raj Prathap wrote: And still I'm not clear what will be the value of dw.
DWORD is four bytes long. The higher two bytes will be 0 and the lower two bytes will be the value 'p'. Like 0x00007070. And if it was 'pa' then value would be 0x00007061. Also upto 4 characters are possible. For example dw = 'abcd' means 0x61626364.
Raj Prathap wrote: I calculated if it is equivalent to ('p'<<8 + 'p') but no success.
The problem caused with your code is the precedence of operators. Try
DWORD dw = ( 'p' << 8 ) + 'a';
- NS -
|
|
|
|
|
Hi!
If you wanna know the Correct answer, then first respond to this.
Come online at:-
jubinc@skype
|
|
|
|
|
Raj Prathap wrote: DWORD dw='pp';
I was not aware that is a valid statement.
It is, because 'pp' is treated as an int , and since it is being assigned to a DWORD , all is well. Had you tried to assign it to a char instead, one of the letters (I can't recall which way it works) would have been dropped.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
in my app i want to execute a batch file, and want to read the console output from that batch file.
how to do that ?
|
|
|
|
|
IO redirection might help you.
in command prompt, if abcd.bat is the batch file then I'd gove the command abcd.bat >output.txt
hope that was helpful.
|
|
|
|
|
It is possible to read the output console buffer as input using the ordinary Win32 Console API. I don't have the code here but it can definitely be done without redirection. If you can wrap your head around the highly confusing MSDN documentation on the Console API you'll have your answer.
Nothing is exactly what it seems but everything with seems can be unpicked.
|
|
|
|
|
Are you wanting something like this or this?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I want to do something like this:
char *str = new char[n];
Here n can be vary at runtime.
So anybody tell me how can i do this without new operator?
Manish Patel
|
|
|
|
|
Use
char *str = malloc(n*sizeof(char));
if str is local, then
foo(int n)
{
char str[n];
}
is also valid in vc6.0
Regards,
Pratap
|
|
|
|
|
std::string text(n);
const char* str = &text[0];
Remember the const , though.
Almost the same is possible with the MFC CString.
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|
|
to get the char* string of a std::string, you can use the std::string::c_str() function for that
|
|
|
|
|
You are of course right.
I had changed my post from using std::vector<char> to std::string .
I obviously did it without thinking too much
Let's think the unthinkable, let's do the undoable, let's prepare to grapple with the ineffable itself, and see if we may not eff it after all. Douglas Adams, "Dirk Gently's Holistic Detective Agency"
|
|
|
|