SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: dhararon en Viernes 31 de Octubre de 2008, 17:55

Título: duda con _SECURITY_ATTRIBUTES
Publicado por: dhararon en Viernes 31 de Octubre de 2008, 17:55
Hola amigos, aqui con ustedes nuevamente, tengo un problema, quiero utilizar

CreateFiles(), pero al momento de compilar marca como que no esta especificada la struct de SECURITY_ATTRIBUTES, asi que investigue pero no se como emplear esta estructura
Código: Text
  1.  
  2. typedef struct _SECURITY_ATTRIBUTES { // sa
  3.     DWORD  nLength;
  4.     LPVOID lpSecurityDescriptor;
  5.     BOOL   bInheritHandle;
  6. } SECURITY_ATTRIBUTES;
  7.  

lo que yo hice fue:

Código: Text
  1. char *seg;
  2. bool are=true;
  3. seg =struct {5000,NULL,are}SECURITY_ATTRIBUTES;
  4.  
  5.  
Pero me marca error,  se que estoy mal en omo se emplea la struct, pero casi no uso ese codigo y no recuerdo como tiene que estar.

Gracias por ayudarme.
Título: Re: duda con _SECURITY_ATTRIBUTES
Publicado por: Eternal Idol en Viernes 31 de Octubre de 2008, 18:15
Lo que tenes que pasar es un LPSECURITY_ATTRIBUTES es decir un puntero a esa estructura (LP=LONG POINTER), la mayoria de las veces se pasa simplemente 0  :lol:

Sino hay dos formas de hacerlo, con una variable estatica:
SECURITY_ATTRIBUTES fAttr;
CreateFile(fName, fAcess, fShare, &fAttr, fCreation, fFlags, 0);

O con memoria dinamica:
LPSECURITY_ATTRIBUTES fAttr = new SECURITY_ATTRIBUTES; //o malloc de sizeof(SECURITY_ATTRIBUTES)
CreateFile(fName, fAccess, fShare, fAttr, fCreation, fFlags, 0);
delete fAttr; //o free


Obviamente tenes que darle los valores correspondientes a los miembros de la estructura si la pasas.