|
I've not done help in a very long time, but I seem to recall the need for a .hpj file, a .hm file, and a .rtf file. The Help Compiler will compile these into a .hlp file.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"We will be known forever by the tracks we leave." - Native American Proverb
|
|
|
|
|
David,
i must agree that the Help Workshop documentation is not very clear when you don't know where to start for a .hlp file.
could you please point out some good tutorials/articles to create one's first compiled help file ?
TOXCCT >>> GEII power
[VisualCalc 3.0 updated ][Flags Beginner's Guide new! ]
|
|
|
|
|
toxcct wrote: could you please point out some good tutorials/articles to create one's first compiled help file ?
I'd start with Google, using some good keywords.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"We will be known forever by the tracks we leave." - Native American Proverb
|
|
|
|
|
Microsoft changed from the dedicated Help file format (generated from RTF using the Help Compiler, hpj file, etc) about the time of Visual Studio 6, I think. All Help is done using the HTML help system these days, I am told.
Having said that, I wrote a Help file a year or two back using the old methods (which I was familiar with), because it was easier than learning about the new HTML Help system.
As far as I remember, VS6 supported traditional HLP, but you could add support for HTML help.
|
|
|
|
|
i don't want to create a html help file.could u suggest the procedure to create a rtf file. i know we have to add some footnotes and symbols and save it as a rtf file amd then compile it using help workshop.i want to know how to add footnotes and create a rtf document
Thanks
|
|
|
|
|
You can use any text editor (even Notepad) to create an RTF file, but that is a real pain in the butt. I recommend that you ignore any reference that tells you to write stuff like " {\rtf1\ansi\deff0 " - you can do this and work with raw RTF but there is no need to!
One easy way to make RTF files is to use MS Word (or other common word processors) since "Save As" allows you to save files in RTF format.
In Word 2000, creating footnotes is done by Insert menu / Footnote. In the Footnote dialog box, select Custom Mark, and use the "#" (Context name), "$" (Topic name), "k" (keyword), etc as the marking symbol.
If you do a Google search for "authoring winhelp help", you should get a zillion references. For a start, look at the following:
http://www.geocities.com/Area51/6793/helpsurv.htm[^]
http://www.samspublishing.com/library/content.asp?b=Visual_C_PlusPlus&seqNum=285&rl=1[^]
|
|
|
|
|
Thanks for your response.I have created the rtf file and compiled it in help workshop of visual studion to get hlp file. could you please give me the code to call this hlp file in vc++ application.i am looking for the solution desparately
Thank You
|
|
|
|
|
I can't help you directly with C++ - I use C, a real man's programming language! But this code should work, anyway.
Here is an extract from my main window procedure, where I handle the messages:
LONG WINAPI MainWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_KEYDOWN:
switch(wParam)
{
case VK_F1:
WinHelp(hWndPrimary, ".\\helpFileName.hlp", HELP_FINDER, 0);
break;
|
|
|
|
|
what is hwndprimary in this code?
|
|
|
|
|
It would have been a lot quicker for you if you looked up WinHelp in the MSDN help, to see what parameters it takes. This way you had to wait 12 hours for an answer.
Anyway, my application opens multiple windows, and hWndPrimary is the Handle to the Primary (i.e. main) Window.
|
|
|
|
|
|
the link u gave is good. i have used the same procedure to create help files in VisualBasic application. can i use the same method in vc++ too? i want to display the help when f1 is pressed.whats the code to do this?
Thank You
|
|
|
|
|
Please refer to the next page in the link.
Maxwell Chen
|
|
|
|
|
The help given in MSDN or Microsoft website isn't clear.could you please tell me the procedure to create the word document and also the code to add it to the application.
Thank You
|
|
|
|
|
Please listen to my idea.
I created a client/server model in UDP. Now its a one-way thing. The server keeps "recvfrom" and the client keeps "sendto". its ok. but now I wanna make it Two-way.
In the server,shall I create another sock in a separate thread? that makes the "sendto" part.
And similarly , create another sock in client to make the "recvfrom" ??
Server ````````````````````` Client
<br />
1.sender -------------------> 1. Receiver.<br />
2.Receiver <------------------ 2. Sender.<br />
Is this a good design? or should I make it like...
<br />
1.Sender/Receiver <------------------> 1.Receiver/Sender<br />
If you say , the latter is the right method, also tell me how'd I do that?
|
|
|
|
|
Helo guys! I am working on a project where I have to get addresses from user interation and then get ahead wih my job. And the addresses I retrive are of the form:
d:\Somefolder\Somfile.something
And _unlink does not work on adresses of these kinds. I have to change it to something that looks like this:
D:\\Somefolder\\Somefile.something
Only then everything works fine.
Can somebody comment.
By the way I am using VS 2002
Abhishek
|
|
|
|
|
That's because the character '\' is an escape character. To specify you want the '\' character, you need to duplicate it.
|
|
|
|
|
I've created a hook using SetWindowsHookEx() which through the use of WH_SHELL has been able to monitor the creation of all windows.
I've also been trying to use this hook to monitor destruction of windows through the use of HSHELL_WINDOWDESTROYED. The documentation claims that the hook will be called prior to the window being destroyed. It also claims the WPARAM parameter will contain an HWND to the window about to be destroyed. My problem is that the WPARAM is NULL every time my hook gets called and in no way the HWND to the window. Is there something i'm missing?
A side note: HSHELL_WINDOWCREATED and HSHELL_WINDOWDESTROYED is never called by certain windows such as that of a console application however HSHELL_WINDOWACTIVATED is called by the console programs. I've been using this to 'detect' the creation of the console windows. The window is automatically activated when it launches. I still have no method for detecting console application termination.
|
|
|
|
|
plz tell me how to find the username of a system,i m working in console application using winsock header file.
|
|
|
|
|
|
Hi!
what is the smallest pointer address?
I think a pointer is never 1,2 (or 3)
to example :
void DrawDFText( LPSTR a) <br />
<br />
UINT i = (UINT) a;<br />
<br />
if ( i > 2 ) {<br />
TCHAR szBuf[180];<br />
wsprintf(szBuf, "address:%d ", a ); <br />
OutputDebugString( szBuf );<br />
return;<br />
};<br />
if ( i == 1 ) dothat1;<br />
if ( i == 2 ) dothat2;
it's right?
Regards!
Frigyes
|
|
|
|
|
Hi
Theoretically there is no smallest address a pointer can point to. In windows and c++ there is. But there is no need to know that value since you should never test against it. If you get a pointer like "LPSTR pStr" you should only check that its "!= NULL". Any thing else and you should assume that it’s a valid pointer. Its to job of the person giving you the pointer to be sure he gives you a valid one.
Also since this is c++ you really shouldnt use char arrays. Either use STL std::string or MFC CString when you need strings.
If you really want to know about how windows handles the memory and how pointers in it work. I can recomend the following book "Programming Applications for Microsoft Windows" by Jeffrey Richter[^]
Magnus
|
|
|
|
|
Hi Magnus!
many thanks for your answer!
> ... there is no need to know that value since you should never test it
but I must test it,
if I call my Drawtext procedure with 1 should start BeginPaint,
if I call with 2 should start EndPaint,
if NULL it's a error,
otherwise should be draw the text from the pointer,
(the procedure is a DLL procedure, and I can't use too many parameters)
can be the address from one pointer 1 or 2 ?
void __declspec(dllexport) DrawDFText( LPSTR a)<br />
{ ... }<br />
<br />
<br />
and call like:<br />
<br />
DrawDFText(1);<br />
<br />
DrawDFText("line1");<br />
DrawDFText("line2");<br />
...<br />
DrawDFText(2);
Regards!
Frigyes
|
|
|
|
|
Frigyes Nagy wrote: DrawDFText(1);
DrawDFText("line1");
DrawDFText("line2");
...
DrawDFText(2)
This is SO bad !!!
Why don't you create a function BeginPaint, EndPaint to do that explicitly ?
Frigyes Nagy wrote: the procedure is a DLL procedure, and I can't use too many parameter
Huh ?
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Hi!
I know, this is not really pretty, but it's works, and I never find any pointer address less then 1000.
(this is one DLL for my DATAFLEX program, I don't like to export 3 procs, if I can make the same work with a ugly one)
Regards
and sorry my english
Frigyes
|
|
|
|