|
|
|
Another way would be to store your application related information in the registry or in an ini file.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Mohanraj D wrote: error C2065: 'str' : undeclared identifier
The error message tells it all. You have failed to declare str . Should be:
CString str = "data; But that does nothing to solve your original problem. Before calling DoModal() , you need to populate some variable that belongs to your datatransfer class (e.g., array, list, vector). You can either do this by accessing the variable directly, or implement some sort of "setter" method. Then in the OnInitDiaog() method of datatransfer , populate the listbox with the data.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
You can use like this code(If we suppose first dialog is CMain) on the target:
CMain* m_Main=(CMain*)GetParent();
m_main->m_Litsbox
|
|
|
|
|
I wrote a short code to write the status of my program to a file, but when debug in that code, I realize that fwrite function still increase its file pointer but when I read that file by fread function, I can't read that value. This is my code:
// TODO: Add your control notification handler code here
//write config file
FILE *fout = fopen( "config.pcm", "wb" );
if ( fout )
{
//write the time of power function
fwrite( &m_uTime, sizeof( int ), 1, fout );
unsigned long temp;
//write tasks
//number of day task
temp = m_alltasks.size();
fwrite( &temp, sizeof( long ), 1, fout );
for ( int i = 0; i < m_alltasks.size(); i++ )
{
//date
fwrite( &m_alltasks[i].date, sizeof( MYDATE ), 1, fout );
//number of notes in that day
temp = m_alltasks[i].tasks.size();
fwrite( &temp, sizeof( long ), 1, fout );
//notes
for ( int j = 0; j < m_alltasks[i].tasks.size(); j++ )
{
fwrite( &m_alltasks[i].tasks[j], sizeof( TASK ), 1, fout );
}
}
//how many hotkeys have been defined
temp = m_hkArr.size();
fwrite( &temp, sizeof( long ), 1, fout );
//write the list of hotkeys
for ( int i = 0; i < temp; i++ )
fwrite( &m_hkArr[i], sizeof( HOTKEY ), 1, fout );
fclose( fout );
}
else
{
MessageBox( _T( "Can't write config file" ), _T( "Warning" ) );
OnCancel();
}
//unregister hotkeys
for ( int i = 0; i < m_hkArr.size(); i++ )
{
UnregisterHotKey( m_hWnd, m_hkArr[i].id );
GlobalDeleteAtom( m_hkArr[i].id );
}
OnCancel();
They all work except for the code I bolded ( file pointer still increase, but the file is not change )... Help me plz >.<...
|
|
|
|
|
How did you check the file was not actually written?
How did you define m_hkArr ?
How was HOTKEY defined?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
I do it on Visual Studio 2005 SP1. I added config.pcm into my solution. After I had run my program, if config.pcm changed the content, then Visual Studio would ask you to update the content of that file. When I debug, I see the file pointer increase, but after I closed fout, VS didn't ask me to update the content -> the content hadn't been modified. m_hkArr is vector <hotkey> m_hkArr. The structure of struct HOTKEY:
struct HOTKEY
{
BOOL isCtrl;
UINT c;
TCHAR szPath[256];
int id; //id of this hot key
};
This struct is self-identified Hotkey . I just check for Ctrl or Alt is press with the key. id is the ID of the hotkey, return value of GlobalAddAtom. The code I have posted just a bit of my code
|
|
|
|
|
Are you sure you're writing to the same file that is open by Visual Studio?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
yes, When I change the config of my program, so, it have to write in the config.pcm. All the configurations of my program are written on config.pcm except for the hotkeys ( the bolded code )
|
|
|
|
|
How can you see the file pointer advancing? How many HOTKEY items did you successfully write (i.e. Did you check temp value? Did you check fwrite return value?)?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
when debuging, just watch for the file pointer, so, I can see fout increase the value, I write 1 or 2 HOTKEY to try, but the content no change. When I read the file, the value is 0 >.<
|
|
|
|
|
Cadimi wrote: I write 1 or 2 HOTKEY to try
But then do you close the file?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
as you can see in the code, I closed it, and before closed it, I fflush( fout ) carefully
|
|
|
|
|
Yes, I saw the code, anyway I was referring to you debugging actions (i.e. I didn't know if you stopped the program after few write operations).
The reason behind my questions is I cannot believe fwrite silently failing, it never happened to me.
Can't you isolate the failing piece of the writing routine and run it in a simpler context (for instance another, adhoc, project)?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
thanks for your help, that's the worse thing I've ever met >.<
|
|
|
|
|
Cadimi wrote: FILE *fout = fopen( "config.pcm", "wb" );
Are you using a relative path?
What is the value of temp ?
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
temp is the number of hotkeys, its value is the size of the vector contain my HOTKEY struct
|
|
|
|
|
Cadimi wrote: temp is the number of hotkeys, its value is the size of the vector contain my HOTKEY struct
I know what it represents. I asked what its value was (at the time of writing to the file).
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I tried a simple example, its value at that time is 1
|
|
|
|
|
Ok, what do the two subsequent calls to fwrite() return?
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I just watch the file pointer, it increase the value equal to the size I've requested to write on file
|
|
|
|
|
But what do the two subsequent calls to fwrite() return?
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I've found my problem ... It happened when I ust CFileDialog in another code, select a path, then the default directory change too => write file at another place => can't read. Thanks for your help
|
|
|
|
|
Cadimi wrote: ...can't read.
Which is why I was asking if fopen() was failing.
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|