Hi, thanks for all the help I got so far ... NIM is a treasure :)
Ok, now I am stuck at a CONVERSION from a WideCString string to a string in NIM. I know I have to use cast to link to the address of the CString, however ... I get errors ... Here is my code with comments: import winlean, nimpy proc findFirstFile(a: string, b: var WIN32_FIND_DATA): Handle = result = findFirstFileW(newWideCString(a), b) proc findNextFileW*(hFindFile: Handle, lpFindFileData: var WIN32_FIND_DATA): int32 {.stdcall, dynlib: "kernel32", importc: "FindNextFileW", sideEffect.} template getFilename(f: untyped): untyped = $cast[WideCString](addr(f.cAlternateFileName[0])) proc test*(file: string): WIN32_FIND_DATA {.exportpy.} = var FileInfo: WIN32_FIND_DATA var Handle = findFirstFile(file, FileInfo) #[ tried THIS: echo FileInfo.cAlternateFileName ==> ERROR MSG Error: type mismatch: got <array[0..259, Utf16Char]> but expected one of: proc echo(x: varargs[typed, `$`]) first type mismatch at position: 1 required type for x: varargs[typed] but expression 'FileInfo.cAlternateFileName' is of type: array[0..259, Utf16Char] expression: echo FileInfo.cAlternateFileName tried THIS: echo getFilename(FileInfo) ==> ERROR MSG Error: type mismatch: got <Utf16Char> but expected one of: proc unknownTypeCompileError() first type mismatch at position: 1 extra argument given expression: unknownTypeCompileError(v) ]# result = FileInfo Run