|
a file descriptor is an unique number managed by the system itself to identify the file opened.
in your code, you don't get it. you get a FILE* (file pointer) to a copy of the opened file mounted in memory
you actually never work directly on the hard disk file, but on its copy into memory
|
|
|
|
|
|
Hi guys
I'm trying to figure out how to make a template class History. This class should be able to record history moves.(for any application). e.g. a history of changed in an editor, or a history of URLs in a web browser etc.
This is what i came up with so far.
<br />
#include < stack ><br />
#include < iostream ><br />
#include < string ><br />
<br />
using namespace std;<br />
<br />
template < typename E > <br />
class history<br />
{<br />
private:<br />
stack < E > back_list; <br />
stack < E > forward_list;<br />
<br />
public:<br />
history();<br />
void add_entry(const E & entry);<br />
E & undo();<br />
E & redo();<br />
bool no_undo();<br />
bool no_redo();<br />
};<br />
<br />
template < typename E ><br />
void history < E >::add_entry(const E & entry)<br />
{<br />
back_list.push(entry);<br />
while(!forward_list.empty())<br />
{<br />
forward_list.pop();<br />
<br />
}<br />
}<br />
<br />
template < typename E > <br />
E & history < E >::undo()<br />
{<br />
E entry;<br />
if(!back_list.empty())<br />
{<br />
entry = back_list.top();<br />
back_list.pop();<br />
forward_list.push(entry);<br />
<br />
}<br />
<br />
return(entry);<br />
}<br />
<br />
template < typename E > <br />
E & history < E >::redo()<br />
{<br />
E entry;<br />
if(!forward_list.empty())<br />
{<br />
entry = forward_list.top();<br />
forward_list.pop();<br />
back_list.push(entry);<br />
}<br />
return(entry);<br />
}<br />
<br />
template < typename E > <br />
bool history < E >::no_undo()<br />
{<br />
if(back_list.empty())<br />
return(1);<br />
else return (0);<br />
}<br />
<br />
template < typename E > <br />
bool history < E >::no_redo()<br />
{<br />
if(forward_list.empty())<br />
return (1);<br />
else return (0);<br />
}<br />
<br />
<br />
<br />
void main()<br />
{<br />
history <int> his;<br />
his.add_entry(2);<br />
int out;<br />
out = his.undo();<br />
cout<<out;<br />
<br />
}<br />
<br />
I get no compilation errors but as soon as i try to run it i get:
<br />
Linking...<br />
history.obj : error LNK2001: unresolved external symbol "public: __thiscall history<int>::history<int>(void)" (??0?$history@H@@QAE@XZ)<br />
Debug/history.exe : fatal error LNK1120: 1 unresolved externals<br />
Error executing link.exe.<br />
<br />
history.exe - 2 error(s), 0 warning(s)<br />
Any ideas of i'm doing wrong?
It's the first time i'm using template so i'll appreciate any help.
Thank in advance.
-- modified at 4:43 Friday 2nd March, 2007
|
|
|
|
|
you don't define a constructor for you class maybe, no ?
also next time, please use the <pre></pre> tags, and replace the < and > with < and >
|
|
|
|
|
Hi toxcct
Thanks for helping me. Sorry about my post it was missing all the <parts>.
U r right i don't define a constructor. Think thats why i get the errors?
The default constructor history() won't do the job?
Thanks again toxcct
|
|
|
|
|
antonaras wrote: Think thats why i get the errors?
yes, that's exactly what the error message talks about :
unresolved external symbol "public: __thiscall <code>history<int>::history<int></code>(void)"
|
|
|
|
|
antonaras wrote: public:
history();
Yes, you have forgot to define this c'tor.
|
|
|
|
|
I'm so stubit guys.
You were right i forgot to define the constructor outside the class.
It works fine now cheers everyone.
Appreciate ur help
|
|
|
|
|
I am working on list view control.I want to add a combo box as a sub item in the list viw control. I have used the view type as report. Any suggestion is welcome.
|
|
|
|
|
|
|
Dear all,
Now I doing a thesis about industrial robot, in which I want to send data from PC to robot controller via RS232 cable, notice that robot controller is used protocol 3964R Siemens so any body know how to write a program by C++ or VC++ please show me. I had to access many website to find a communication program however, I just support for RS232 standard not for 3964R Thank for your help.
|
|
|
|
|
Hi,
How can I change the height of a dropdown/droplist combo box (not the height of the dropped listbox)? It is automatically set by the font size.
Thank you.
- NS -
|
|
|
|
|
Have a look at CComboBox::SetItemHeight .
If you want to increase dropped height, you need to increase reactangle heigh bounding it, i.e. reactangle you have mentioned while creating combobox, or use MoveWindow to mention increased height.
|
|
|
|
|
No... I mean the height of the combo box window.
- NS -
|
|
|
|
|
As mentioned in first post, you need to increase height or rest for combo box.
RECT rc;
m_comboCtrl.GetClientRect(&rc);
rc.bottom +=20;
m_comboCtrl.MoveWindow(&rc);
|
|
|
|
|
The height of the ComboBox Ctrl, that is the combo box window is fixed by the font szie. Only if the font size is changed the heigth is increased/decreased. If we call MoveWindow or SetWindowPos, only the position or width ( not height ) is changed. I tried to increase the height in the OnWindowPosChanging ( in the derived class from the CComboBox ), but failed.
Hope you got what i really want.
- NS -
|
|
|
|
|
NS17 wrote: The height of the ComboBox Ctrl, that is the combo box window is fixed by the font szie.
Do you mean item height ?
NS17 wrote: If we call MoveWindow or SetWindowPos, only the position or width ( not height ) is changed.
No, You can increase height ,too. Have you tried code sample given.
To increase item height, you need to use API mentioned in first reply.
And to increase droped height , you need to use method said in second reply.
If you are saying some thing different from this, then I'm not able to understand it.
|
|
|
|
|
prasad_som wrote: To increase item height, you need to use API mentioned in first reply.
And to increase droped height , you need to use method said in second reply.
Not both. I mean the height of the combbox itself. How will I say?
Ok... the window which contains the dropdown button. Hope you got it now...
- NS -
|
|
|
|
|
NS17 wrote: window which contains the dropdown button
Do you mean, button like control having arrow on it ?
I dont know , if it is possible. Why you needed it ?
|
|
|
|
|
prasad_som wrote: Do you mean, button
like control having arrow on it ?
Not just that button only. I need to increase/decrease the height of the combobox ctrl (includes the mentioned dropdown button)
- NS -
|
|
|
|
|
As mentioned earlier,I've no idea, if its possible.
And why you needed it ?
Browse through combo-box[^] section on CP. See , if you get any pointer.
|
|
|
|
|
OK... Thank you. This is part of customization.
- NS -
|
|
|
|
|
NS17 wrote: How will I say?
Heh, having a tough time??;P
|
|
|
|
|
M... I think CP should have a feature for specifying images. Then my need can be shown pictorially.
- NS -
|
|
|
|