You can use [winim](https://github.com/khchen/winim) and 
[winstr](https://khchen.github.io/winim/winstr.html) .

Example: 
    
    
    import winim/lean
    
    var ffd: WIN32_FIND_DATA
    var hFind = FindFirstFile("*.*", ffd)
    if hFind != INVALID_HANDLE_VALUE:
      defer:
        FindClose(hFind)
      
      while true:
        block method1:
          var buffer = T(MAX_PATH)
          # buffer maybe wstring or mstring depends on -d:useWinAnsi
          
          buffer << ffd.cFileName
          # copy cFileName to buffer
          
          buffer.nullTerminate
          # set corrent length of buffer
          
          echo buffer
        
        block method2:
          echo (%$ffd.cFileName).nullTerminated
          # `$` for array cause ambiguous call since 0.2.0, use %$ instead
        
        if FindNextFile(hFind, &ffd) == 0: break
    
    
    
    Run

Reply via email to