• Viernes 1 de Noviembre de 2024, 06:24

Autor Tema:  CFsoFileSystemObject  (Leído 2406 veces)

pepinliria

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
CFsoFileSystemObject
« en: Martes 8 de Junio de 2010, 14:27 »
0
Hola a todos. Mirad, me he descargado este wrapper para poder manejar archivos y carpetas:
w w w.codeguru.com/cpp/w-p/files/folderdirectorymaintenance/print.php/c11473

He cambiado la ruta de mi scrrun.dll como dice y aun asi, me salen los siguientes errores:

Código: Text
  1. Compiling...
  2. CFileSystemObject.cpp
  3. C:Archivos de programaMicrosoft Visual StudioVC98ATLINCLUDEatltrace.h(48) : error C2833: 'operator DWORD_PTR' is not a recognized operator or type
  4. C:Archivos de programaMicrosoft Visual StudioVC98ATLINCLUDEatltrace.h(48) : error C2059: syntax error : 'newline'
  5. C:Archivos de programaMicrosoft Visual StudioVC98ATLINCLUDEatltrace.h(48) : error C2238: unexpected token(s) preceding ';'
  6. C:Archivos de programaMicrosoft Visual StudioVC98ATLINCLUDEatltrace.h(276) : error C2833: 'operator DWORD_PTR' is not a recognized operator or type
  7. C:Archivos de programaMicrosoft Visual StudioVC98ATLINCLUDEatltrace.h(277) : fatal error C1903: unable to recover from previous error(s); stopping compilation
  8. Error executing cl.exe.
  9.  
  10. Leo compresor de imagenes.exe - 5 error(s), 0 warning(s)
  11.  

¿Alguien sabe a que puede deberse por favor?

Saludos y gracias de antemano.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: CFsoFileSystemObject
« Respuesta #1 en: Martes 8 de Junio de 2010, 22:13 »
0
Fácil: el compilador no sabe qué es DWORD_PTR, así que lo más seguro es que te falte algún fichero cabecera... como, quizás, Windows.h
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

pepinliria

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: CFsoFileSystemObject
« Respuesta #2 en: Martes 8 de Junio de 2010, 22:26 »
0
Muchas gracias por responder rFog. Eso es lo que he encontrado buscando por google en muchos sitios, pero ni con esas se soluciona.
Igualmente, recurri a esas clases porque lo que quiero es "traducir" esta funcion que hice en visual basic 6.0 a visual c++:

Código: Visual Basic
  1. Public Function comprobarCarpeta(carp As String) As Boolean  ' Comprueba si el directorio elegido contiene imágenes
  2. On Error GoTo ControlError
  3.    
  4.     Dim oFSO As New Scripting.FileSystemObject
  5.     Dim oFile As Scripting.File
  6.     Dim oCarpeta As Scripting.Folder
  7.    
  8.     Set oCarpeta = oFSO.GetFolder(carp)
  9.    
  10.     For Each oFile In oCarpeta.Files
  11.         If Right(oFile.Name, 4) = ".bmp" Or Right(oFile.Name, 4) = ".jpg" Or Right(oFile.Name, 4) = ".gif" Or Right(oFile.Name, 4) = ".dib" Then
  12.             Set oFSO = Nothing
  13.             Set oCarpeta = Nothing
  14.             Set oFile = Nothing
  15.             comprobarCarpeta = True
  16.             Exit Function
  17.         End If
  18.     Next
  19.    
  20.     ComprobarCarpeta = False
  21.    
  22. Exit Function
  23. ControlError:
  24.     Set oCarpeta = Nothing
  25.     Set oFSO = Nothing
  26.     Set oFile = Nothing
  27.     ComprobarCarpeta = False
  28.    
  29.     If Err.Number <> 5 Then
  30.         MsgBox "Error número: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Comprobar carpeta"
  31.     End If
  32. End Function
  33.  

Asi que si alguien conoce otra forma de hacerlo igualmente me sirve. Saludos y de nuevo gracias rfog.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: CFsoFileSystemObject
« Respuesta #3 en: Martes 8 de Junio de 2010, 23:02 »
0
Buff, no me pongas VB que no tengo ni idea, aunque lo que parece que está haciendo el código que pones es unar un objeto de scripting...

De lo otro, te falta alguna inclusión, o más bien todas. Me he bajado el código que dices y por lo que veo necesita integrarse en un proyecto con ATL y creado con el asistente de Visual Studio... En stdafx.h tienes que tener las inclusiones adecuadas, si no no te funcionará.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

pepinliria

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: CFsoFileSystemObject
« Respuesta #4 en: Miércoles 9 de Junio de 2010, 00:04 »
0
Gracias de nuevo rFog. En ese codigo de vb lo que hago, que es lo que quiero en vc++, es comprobar si una carpeta contiene imagenes jpg, bmp o gif. Para ello recurro al scripting object y compruebo que al menos uno de los archivos que contiene la carpeta tenga la extension que busco. No se si habra otra forma de hacer eso en vc++.
Mi proyecto es MFC creado con el asistente, asi que por lo que dices debe de ser problema de que hay que integrarlo en uno con ATL. Si no hay forma de hacerlo estoy por tirar la toalla o hacer alguna chapuza, rollo crear una dll en visual basic con la funcion e importarla a vc++ o algo asi.

Saludos y muchas gracias.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: CFsoFileSystemObject
« Respuesta #5 en: Miércoles 9 de Junio de 2010, 08:42 »
0
Si empezáramos por el principio...

La forma en que lo quieres hacer es una burrada salvaje, porque Win32 tiene una forma directa sencilla: FindFirstFile/FindNextFile:

http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

pepinliria

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: CFsoFileSystemObject
« Respuesta #6 en: Miércoles 9 de Junio de 2010, 21:48 »
0
Muchisimas gracias rFog, funciona a la perfeccion para mi problema.