|
You still working on that, lol.
To be honest, I didn't touch that part of my code yet, I'm still working on my class hierarchy.
I was thinking to use ShellExec() with the "runas" flag, change the security settings and store them into a file, which I believe cacls is able to do. This should, in theory, allow the origional settings to be replaced once complete. But like I said, I didn't try this yet and probably won't for another week or so.
If you manage to do it using another method, I would be interested to see how.
Waldermort
|
|
|
|
|
hi
i have establish a connection to remote computer by FTP and how to search file on remote computer in a particular directory and as soon as i found file i want to bring that file in my computer and search again for next file
plaese help me
thank u in advance
malik
|
|
|
|
|
If you are using MFC you could look into the CFtpFileFind class which is based on the CFileFind class
|
|
|
|
|
So exactly which part are you having trouble with?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hello to all,
right now i am doing a programm such that files selected by user will be uploaded on the server, now while uploading the files i want to invoke a progress bar dialog which will show the number of files uploaded and time left for uploading, through progress bar and this should be done without disturbing the process of uploading files. how it can be done? can anybody help me plz.
Thanks and Regards,
Anay Kulkarni
|
|
|
|
|
Put the progress control on a dialog, and show the dialog using a different thread. In mfc, you can use wroker thread.
|
|
|
|
|
NishantB++ wrote: and show the dialog in a different thread.
I would suggest the opposite: do the real work in a separate thread (in this case, the upload of the files) and regularly send messages with the current status to the progress dialog (which is in the main thread).
|
|
|
|
|
Thats also good , But it may a bit hard to implement (depends on the file upload code).
Anyway will it make any difference ?
|
|
|
|
|
NishantB++ wrote: Anyway will it make any difference ?
Yes, in your case, the progress dialog won't be a modal dialog (althought you call DoModal) because it is started in a separate thread. So, the user will still be able to interract with the main UI during the file upload, which is in general what you don't want.
Also, you still need to send messages (or find another way to communicate between the threads) because your dialog isn't aware of the current status of the upload. So, it doesn't make a difference.
|
|
|
|
|
Cedric Moonen wrote:Yes, in your case, the progress dialog won't be a modal dialog.
This is not correct. The dialog box will be modal. I have just checked it.
Cedric Moonen wrote:
Also, you still need to send messages
This case apply in both cases, whether you put the progress dialog in thread or the file upload code in thred.
The dialog box always need the current progress, which it doesnot have.
|
|
|
|
|
NishantB++ wrote: This is not correct. The dialog box will be modal. I have just checked it.
How did you check it ? Did you start a new thread, and in that thread you created a modal dialog and then checked if you could work with the main UI ?
|
|
|
|
|
Yes, I did the same.
Here is the code -
void CtestdlgDlg::OnBnClickedOk()
{
AfxBeginThread (MyControllingFunction, NULL);
}
UINT __cdecl MyControllingFunction( LPVOID pParam )
{
CMyDlg dlg;
dlg.DoModal ();
return 0;
}
|
|
|
|
|
What happen if you click on the ok button of your test dialog (not the one created in the thread but the one that was created originally) ?
|
|
|
|
|
The thread dialog pops up and now you are unable to click on the original dialog (Main Dlg).I mean, it shows the modal behaviour.
|
|
|
|
|
A simple modeless dialog with a few static controls and a progress control would suffice.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I want to find the value of checkbox wother it is checked or unchecked.
Which function to use.
I kope GetDlgItemText() will not work.
Dhiraj Kumar Saini
|
|
|
|
|
CButton::GetCheck
Maxwell Chen
|
|
|
|
|
In addition to the MFC suggestion already provided, you can also send the control a BM_GETCHECK or BM_SETCHECK message.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hello Friends,
I am facing the problem of memory leak. In one of the application I am taking dynamic global object. And when I try to delete then in my WinMain() function before return 0; statement but it gives me assertion errror.
I am using somewhat like this;
<br />
myclass *obj = new myclass();<br />
<br />
INT WINAPI WinMain( ....)<br />
{<br />
delete obj;
return 0;<br />
<br />
}
the error is like this:
Debug assertion failed.
expression _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) is invalid.
So I am using somewhat like this
INT WINAPI WinMain( ....)<br />
{<br />
delete (void *)obj;
return 0;<br />
<br />
}
Now my question is.
Now will there be any memory leak in the programme or not ???
|
|
|
|
|
I guess yes. The type info is corrupted.
Maxwell Chen
|
|
|
|
|
use auto_ptr...
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Don't overabuse auto_ptr: you don't need to wrap every pointer into a smart pointer when it is not required.
|
|
|
|
|
There is probably something wrong in your destructor. Use your debugger to see exactly what is happening (check if the pointers are valid and so on).
|
|
|
|
|
The memory leak control implemented on the CRT overloads the new and delete operators to add some extra memory to contain some signatures that are tracked by a global data structure.
At end, is something is wrong between this structure and the related allocated memory a warning is reported.
In your case your obj pointer is also a global data. But since the initialization order of global data is not predictable (in the sense that it depends on the order the linker links the modules) probably your "new " call happens before the tracking structure is properly initialized (hence, it isn't tracked).
But the delete is. Hence the misleading and the resulting report.
Try this:
class myhandle
{
myclass* p;
public:
myhandle() :p(new myclass) {}
~myhandle() { delete p; }
myclass* operator->() const { return p; }
};
myhandle thehandle;
INT WINAPI WinMain( ....)
{
myhandle->do_something_with_myclass(...)
return 0;
}
Now allocation and deallocation are wrapped in ctor / dtor.
When thehandle is created the compiler will place an "atexit" to invoke the destructor.
Since the order of destruction is the inverse of the order of construction, you're so granted that either both new and delete are tracked or none of them is. Both case are coherent.
<edit>
I see just now ThatsAlok writing "use auto_ptr".
In fact std::auto_ptr behave just like myhandle in respect to construction / destruction.
</edit>
2 bugs found.
> recompile ...
65534 bugs found.
|
|
|
|
|
Your program is not causing any assertion, but the following is. May be you are doing something like this -
class myclass
{
public:
char Ary[200];
char *p;
myclass()
{
p = new char[1000];
}
~myclass()
{
delete []p;
}
};
myclass *obj = new myclass();
myclass *obj2 = new myclass();
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
delete obj2; //not getting error here.
obj = obj2;
delete obj; //getting error here.
return 0;
}
|
|
|
|