|
MyView wrote: error C2065: 'ConvertStringSecurityDescriptorToSecurityDescriptor' : undeclared identifier
Can you post us the code piece where this function has been used ?
MyView wrote: I am using this for setting full access permissions to a directory while its creation. Earlier you have sent me a sample code for setting full access permissions. But it is not working in my machine. Can I have any sample code for setting full access permission for a folder.
Are you getting any error?
Regards,
Rane
|
|
|
|
|
BOOL CreateMyDACL(SECURITY_ATTRIBUTES * pSA)
{
// Define the SDDL for the DACL. This example sets
// the following access:
// Built-in guests are denied all access.
// Anonymous logon is denied all access.
// Authenticated users are allowed
// read/write/execute access.
// Administrators are allowed full control.
// Modify these values as needed to generate the proper
// DACL for your application.
TCHAR * szSD = TEXT("D:") // Discretionary ACL
TEXT("(A;OICI;GA;;;WD)"); // Allow full control
// to Everyone
if (NULL == pSA)
return FALSE;
return ConvertStringSecurityDescriptorToSecurityDescriptor(
szSD,
SDDL_REVISION_1,
&(pSA->lpSecurityDescriptor),
NULL);
}
SetWorkingDir(void)
{
LPSTR lpszTmp;
char szTmp[_MAX_PATH];
// Get local working dir
lstrcpy(szTmp, s_szCopyAppDir);
lpszTmp = AnsiPrev(szTmp, &szTmp[ lstrlen(szTmp) ]);
if(*lpszTmp == '\\') {
*lpszTmp = 0;
}
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = FALSE;
sa.lpSecurityDescriptor = NULL;
// Call function to set the DACL. The DACL
// is set in the SECURITY_ATTRIBUTES
// lpSecurityDescriptor member.
if (!CreateMyDACL(&sa))
{
// Error encountered; generate message and exit.
printf("Failed CreateMyDACL\n");
exit(1);
}
// Use the updated SECURITY_ATTRIBUTES to specify
// security attributes for securable objects.
// This example uses security attributes during
// creation of a new directory.
if (0 == ::CreateDirectory(TEXT("D:\\TestFolder\\Venkat"), &sa))
{
exit(1);
}
// Free the memory allocated for the SECURITY_DESCRIPTOR.
if (NULL != LocalFree(sa.lpSecurityDescriptor))
{
// Error encountered; generate message and exit.
printf("Failed LocalFree\n");
exit(1);
}
// Create directory
// CreateDirectory(szTmp, NULL);
SetAppDir(szTmp);
}
error C2065: 'ConvertStringSecurityDescriptorToSecurityDescriptor' : undeclared identifier
|
|
|
|
|
Did you look at the link and try solution suggested on that forum?
Regards,
Sandip.
|
|
|
|
|
Ya.. it says _WIN32_WINNT>=0X500 .. I put it in projectsettings->preprocessor definitions.. Its still not working. Can I know anywhere else it has to be included.
|
|
|
|
|
Just try adding
#define _WIN32_WINNT 0x0500
in header file. (may be you can add it in stdafx.h)
Regards,
Sandip.
|
|
|
|
|
|
All the forums say same thing.
make sure you define that macro before you include sddl.h
Regards,
Sandip.
|
|
|
|
|
Thanks.. Sandip.. It worked..
Thanks a lot..
|
|
|
|
|
You are Welcome
I am glad it helped.
Regards,
Sandip.
|
|
|
|
|
Here's a piece of MSDN remark about PostThreadMessage():
-----------------------------------------------------------------------------
Messages sent by PostThreadMessage are not associated with a window. As a general rule, messages that are not associated with a window cannot be dispatched by the DispatchMessage function. Therefore, if the recipient thread is in a modal loop (as used by MessageBox or DialogBox), the messages will be lost. To intercept thread messages while in a modal loop, use a thread-specific hook.
My questions are:
----------------------
1) What's modal loop?
2) Why a given message will be lost in such a condition?
3) Which thread-specific hook should I use to catch such a messages?
Thanx
|
|
|
|
|
1) a modal loop means the program is currently in a state hold by a modal dialog...
2) don't know, but if they documented so, I believe we can trust them
3) don't they give more infos or example ?
|
|
|
|
|
OK, this is point of argument between me and this other student at university.
#include
#include <stdio.h>
#include <unistd.h>
int main()
{
int i;
i = 0;
while(i<3)
{
pid_t pid = fork();
if(pid == 0)
{
printf("Parent Value = %d\n", i);
}
else
{
printf("Child_%d Value = %d\n",pid, i);
}
i++;
}
}
</unistd.h></stdio.h>
What exactly is happening here?
The argument being the starting location of the newly created process.
|
|
|
|
|
Mustafa Ismail Mustafa wrote: The argument being the starting location of the newly created process.
UNIX man (see, for instance [^]) isn't enough, is it?
BTW there's also a Linux forum [^] at CodeProject.
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
[My articles]
|
|
|
|
|
Thank you, you've set me on the right path.
Solved
|
|
|
|
|
You're welcome.
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
[My articles]
|
|
|
|
|
Hi
Do you know any good project or article for writing a Equation Solver Parser,
I've written some math parser already, but this one is more complicated
Please help
www.logicsims.ir
|
|
|
|
|
I know CodeProject [^]
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
[My articles]
|
|
|
|
|
|
try muParser.. i love it.. just do googling...
|
|
|
|
|
Looks interesting, thank you for signaling.
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
[My articles]
|
|
|
|
|
thanks but that's a formula parser, but I want a c++ equation solver parser
www.logicsims.ir
|
|
|
|
|
Ups, I didn't notice ...sorry...
|
|
|
|
|
Hello,
I have an MFC "windows explorer style" application, which consists of a slitter window, the right pane of which displays a CFrameWnd that may display one of several CFormViews. I've noticed a particular behaviour that this application exhibits - if someone could explain this to me, or at least tell me what the name of this phenomenon is, perhaps I could solve a particular subtle though annoying usability issue.
I fake being able to tab between views (panes of a splitter window) by calling SetFocus on a pointer to the view in the right pane from the left view, and the view in the left frame from the right view. Whenever I spawn a modal dialog, whatever widget happens to have focus in the CFormView at that time will subsequently get the focus *first* when the entire CFormView goes out of focus and subsequently goes back into focus through a call to SetFocus(), even though it may not be the first in the tab order.
If, for example, a row of a CListCtrl is focused, when I SetFocus to the other view, focus won't go back to the CListCtrl when I once again give focus to the CListCtrl's parent (the row will remain grey) - it will go to the first widget of the tab order. If, however, I spawn a modal dialog while the row of the CListCtrl is focused, and subsequently SetFocus somewhere else, when I once again give the CListCtrl's parent view focus(also through SetFocus() ), focus immediately goes to the CListCtrl, bypassing all the other widgets that are earlier in the tab order.
I think that there is some other concept related to, but distinct from focus in play here - the widget that has focus at the time of the modal dialog's spawning gets "Activation" or something like that, causing focus to return to it rather than the first widget in the tab order of the parent View.
There is a blog post that I think touches on these issues:
http://blogs.msdn.com/oldnewthing/archive/2004/08/02/205624.aspx[^]
The solution the author proposes (for modeless dialogs rather than CFormViews) is to send the WM_NEXTDLGCTL message. CFormView doesn't have a handler for this message, so this doesn't apply here.
What is the name of this "Activation" I have described? How can I prevent this "Activation" from occuring, so that focus always goes to the first widget in the tab order?
If one of you could offer help, that would certainly be appreciated, because I'm really at my wit's end!
Thanks,
Sternocera
|
|
|
|
|
--- core.h
typedef struct COLOREDVERTEX
{
D3DXVECTOR3 positon;
DWORD color;
}ColoredVertex;
-- guiObject2D.h
class guiObject2D{
ColoredVertex rect;
};
i get errors
Error 1 error C2146: syntax error : missing ';' before identifier 'rect' \guiObject2D.h 8 <br />
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int \guiObject2D.h 8 <br />
Error 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int \guiObject2D.h 8
also i right click over ColoredVertex, on the context menu "Go to definition", i get "The symbol 'ColoredVertex' is not defined"
what must i do?
|
|
|
|
|
Possibly core.h isn't included before guiObject2D.h .
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
[My articles]
|
|
|
|